38217-vm/wp-content/themes/Avada/includes/lib/inc/class-fusion-dynamic-js-separate.php
2026-02-05 17:08:59 +03:00

76 lines
1.5 KiB
PHP

<?php
/**
* Dynamic-JS loader - Separate Scripts Method.
*
* @package Fusion-Library
* @since 1.0.0
*/
/**
* Handles enqueueing files dynamically.
*/
final class Fusion_Dynamic_JS_Separate {
/**
* The Fusion_Dynamic_JS object.
*
* @access protected
* @since 1.0.0
* @var object
*/
protected $dynamic_js;
/**
* Constructor.
*
* @access public
* @since 1.0.0
* @param object $dynamic_js An instance of the Fusion_Dynamic_JS object.
*/
public function __construct( $dynamic_js ) {
$this->dynamic_js = $dynamic_js;
$this->enqueue_separate_scripts();
}
/**
* Enqueues separate scripts.
*
* @access public
* @since 1.0.0
*/
public function enqueue_separate_scripts() {
$wp_content_dir = untrailingslashit( wp_normalize_path( WP_CONTENT_DIR ) );
$wp_content_url = content_url();
$scripts = $this->dynamic_js->get_ordered_scripts();
foreach ( $scripts as $script ) {
// Get URL in case we're using path.
if ( 0 !== strpos( $script['url'], 'http' ) ) {
$script['url'] = str_replace( $wp_content_dir, $wp_content_url, wp_normalize_path( $script['url'] ) );
}
// Strip protocols.
$script['url'] = set_url_scheme( $script['url'] );
wp_enqueue_script(
$script['handle'],
$script['url'],
$script['deps'],
$script['ver'],
$script['in_footer']
);
}
$localizations = $this->dynamic_js->get_localizations();
foreach ( $localizations as $l10n ) {
wp_localize_script(
$l10n['handle'],
$l10n['name'],
$l10n['data']
);
}
}
}