92 lines
2.7 KiB
PHP
92 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* Asset loader class
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if (!defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
class Palantics_Loader {
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct() {
|
|
// Enqueue frontend scripts
|
|
add_action('wp_enqueue_scripts', array($this, 'enqueue_frontend_scripts'));
|
|
|
|
// Enqueue admin scripts
|
|
add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
|
|
}
|
|
|
|
/**
|
|
* Enqueue frontend scripts
|
|
*/
|
|
public function enqueue_frontend_scripts() {
|
|
// Register main tracking script
|
|
wp_register_script(
|
|
'palantics-tracking-script',
|
|
PALANTICS_PLUGIN_URL . 'assets/js/tracking-script.js',
|
|
array(),
|
|
PALANTICS_PLUGIN_VERSION,
|
|
false
|
|
);
|
|
|
|
// Register class tracking script
|
|
wp_register_script(
|
|
'palantics-class-tracking',
|
|
PALANTICS_PLUGIN_URL . 'assets/js/class-tracking.js',
|
|
array('palantics-tracking-script'),
|
|
PALANTICS_PLUGIN_VERSION,
|
|
true
|
|
);
|
|
|
|
// Get tracking classes from options
|
|
$track_classes = get_option('palantics_tracking_track_classes', '');
|
|
$track_classes_array = array_filter(array_map('trim', explode(',', $track_classes)));
|
|
|
|
// Only enqueue class tracking if we have classes to track
|
|
if (!empty($track_classes_array)) {
|
|
// Add trackClasses as a JavaScript variable
|
|
wp_localize_script(
|
|
'palantics-class-tracking',
|
|
'trackClasses',
|
|
$track_classes_array
|
|
);
|
|
|
|
// Enqueue the script
|
|
wp_enqueue_script('palantics-class-tracking');
|
|
}
|
|
|
|
// Always enqueue the main tracking script
|
|
wp_enqueue_script('palantics-tracking-script');
|
|
|
|
// Add server URL to JavaScript
|
|
$server_url = esc_url(get_option('palantics_tracking_server_url', 't1.palantics.net'));
|
|
wp_add_inline_script(
|
|
'palantics-tracking-script',
|
|
"const server = 'https://" . $server_url . "';",
|
|
'before'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Enqueue admin scripts
|
|
*/
|
|
public function enqueue_admin_scripts($hook) {
|
|
// Only load on our settings page
|
|
if ($hook != 'settings_page_palantics-tracking-settings') {
|
|
return;
|
|
}
|
|
|
|
// Enqueue admin styles
|
|
wp_enqueue_style(
|
|
'palantics-admin-style',
|
|
PALANTICS_PLUGIN_URL . 'assets/css/admin.css',
|
|
array(),
|
|
PALANTICS_PLUGIN_VERSION
|
|
);
|
|
}
|
|
} |