mirror of
https://github.com/elementor/hello-theme.git
synced 2026-03-03 12:56:14 +08:00
43 lines
1,008 B
PHP
43 lines
1,008 B
PHP
<?php
|
|
|
|
namespace HelloTheme\Includes;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
class Script {
|
|
|
|
protected string $handle;
|
|
protected array $dependencies;
|
|
|
|
public function __construct( string $handle, array $dependencies = [] ) {
|
|
$this->handle = $handle;
|
|
$this->dependencies = $dependencies;
|
|
}
|
|
|
|
public function enqueue() {
|
|
$asset_path = HELLO_THEME_SCRIPTS_PATH . $this->handle . '.asset.php';
|
|
$asset_url = HELLO_THEME_SCRIPTS_URL;
|
|
|
|
if ( ! file_exists( $asset_path ) ) {
|
|
throw new \Exception( $asset_path . ' - You need to run `npm run build` for the "hello-elementor" first.' );
|
|
}
|
|
|
|
$script_asset = require $asset_path;
|
|
|
|
foreach ( $this->dependencies as $dependency ) {
|
|
$script_asset['dependencies'][] = $dependency;
|
|
}
|
|
|
|
wp_enqueue_script(
|
|
$this->handle,
|
|
$asset_url . "$this->handle.js",
|
|
$script_asset['dependencies'],
|
|
$script_asset['version'],
|
|
true
|
|
);
|
|
|
|
\wp_set_script_translations( $this->handle, 'hello-elementor' );
|
|
}
|
|
}
|