Current File : /home/pacjaorg/wpt.pacja.org/copwordpres/wp-content/plugins/betterdocs/includes/Utils/Enqueue.php
<?php
namespace WPDeveloper\BetterDocs\Utils;

class Enqueue extends Base {
    private $plugin_url;
    private $plugin_path;
    private $version;

    public function __construct( $plugin_url, $plugin_path, $version ) {
        $this->plugin_url  = $plugin_url;
        $this->plugin_path = $plugin_path;
        $this->version     = $version;
    }

    public function enqueue( $handle, $filename, $dependencies = [], $args = null ) {
        $config = $this->asset_config( $filename, $dependencies, $args );
        $this->call_wp_func( 'wp_enqueue', $handle, $config );
    }

    public function register( $handle, $filename, $dependencies = [], $args = null ) {
        $config = $this->asset_config( $filename, $dependencies, $args );
        $this->call_wp_func( 'wp_register', $handle, $config );
    }

    public function localize( $handle, $name, $args ) {
        wp_localize_script( $handle, $name, $args );
    }

    private function call_wp_func( $action, $handle, $config ) {
        call_user_func(
            $action . '_' . $config['type'],
            $handle,
            $config['url'],
            $config['dependencies'],
            $config['version'],
            $config['args']
        );

        // if ( 'script' === $config['type'] && in_array( 'wp-i18n', $config['dependencies'], true ) ) {
        //     wp_set_script_translations( $handle, 'betterdocs' );
        // }
    }

    public function asset_config( $filename, $dependencies = [], $args = null ) {
        $is_js             = preg_match( '/\.js$/', $filename );
        $basename          = preg_replace( '/\.\w+$/', '', $filename );
        $url               = $this->asset_url( $filename );
        $version           = $this->version;
        $asset_config_path = $this->dist_path( $basename . '.asset.php' );

        if ( file_exists( $asset_config_path ) ) {
            $asset_config = require $asset_config_path;

            if ( $is_js ) {
                $dependencies = array_unique( array_merge( $asset_config['dependencies'], $dependencies ) );
            }
            $version = $asset_config['version'];
        }

        return [
            'url'          => $url,
            'dependencies' => $dependencies,
            'version'      => $version,
            'type'         => $is_js ? 'script' : 'style',
            'args'         => null !== $args ? $args : ( $is_js ? true : 'all' )
        ];
    }

    public function asset_url( $filename ) {
        if ( filter_var( $filename, FILTER_VALIDATE_URL ) ) {
            return $filename;
        }

        return esc_url( $this->plugin_url . 'assets/' . $filename );
    }

    public function dist_path( $file ) {
        return path_join( $this->plugin_path, 'assets/' . $file );
    }

    public function icon( $name, $is_admin = false ) {
        $_path = $is_admin ? 'assets/admin/images/' : 'assets/images/';
        return esc_url( $this->plugin_url . $_path . $name . '?v=' . $this->version );
    }
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!