From c8e76b4118ae207ac656245c4318c94b38bd9173 Mon Sep 17 00:00:00 2001 From: Christoffer Jakob Woldbye Romild Date: Wed, 4 Feb 2026 20:55:26 +0100 Subject: [PATCH] - use proper script enqueue system - dashboard link and banner dismiss scripts are now in a single enqueued JS file as per the reviewers request --- admin/class-betterlytics-admin-controller.php | 10 ---- admin/class-betterlytics-admin.php | 52 +++++++++-------- admin/js/betterlytics-admin.js | 57 +++++++++++++++++++ includes/class-betterlytics.php | 2 +- public/class-betterlytics-public.php | 14 ++--- 5 files changed, 94 insertions(+), 41 deletions(-) create mode 100644 admin/js/betterlytics-admin.js diff --git a/admin/class-betterlytics-admin-controller.php b/admin/class-betterlytics-admin-controller.php index cc1c4db..1bd2847 100644 --- a/admin/class-betterlytics-admin-controller.php +++ b/admin/class-betterlytics-admin-controller.php @@ -96,16 +96,6 @@ public function render() { -
diff --git a/admin/class-betterlytics-admin.php b/admin/class-betterlytics-admin.php index eabdffd..52f592c 100644 --- a/admin/class-betterlytics-admin.php +++ b/admin/class-betterlytics-admin.php @@ -71,6 +71,35 @@ public function enqueue_styles( $hook ) { ); } + /** + * Enqueue admin scripts. + * + * @since 1.0.0 + * @param string $hook The current admin page hook. + */ + public function enqueue_scripts( $hook ) { + // Always enqueue - dashboard link script runs on all admin pages. + wp_enqueue_script( + 'betterlytics-admin', + BETTERLYTICS_PLUGIN_URL . 'admin/js/betterlytics-admin.js', + [], + $this->version, + true + ); + + // Only localize with AJAX data on Betterlytics pages where banner may show. + if ( 'settings_page_betterlytics' === $hook ) { + wp_localize_script( + 'betterlytics-admin', + 'betterlyticsAdmin', + [ + 'ajaxUrl' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce( 'betterlytics_admin' ), + ] + ); + } + } + /** * Register plugin settings. * @@ -178,29 +207,6 @@ public function hide_admin_notices() { } } - /** - * Add target="_blank" to dashboard link in admin menu. - * - * @since 1.0.0 - */ - public function dashboard_link_script() { - ?> - - loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' ); + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' ); $this->loader->add_action( 'admin_init', $plugin_admin, 'register_settings' ); $this->loader->add_action( 'admin_head', $plugin_admin, 'hide_admin_notices' ); - $this->loader->add_action( 'admin_print_footer_scripts', $plugin_admin, 'dashboard_link_script' ); $this->loader->add_action( 'wp_ajax_betterlytics_dismiss_setup_banner', $plugin_admin, 'ajax_dismiss_setup_banner' ); } diff --git a/public/class-betterlytics-public.php b/public/class-betterlytics-public.php index 68d0681..0a1ea02 100644 --- a/public/class-betterlytics-public.php +++ b/public/class-betterlytics-public.php @@ -150,13 +150,13 @@ public function enqueue_event_scripts() { return; } - wp_enqueue_script( - 'betterlytics-events', - BETTERLYTICS_PLUGIN_URL . 'public/js/betterlytics-events.js', - [], - $this->version, - true - ); + wp_enqueue_script( + 'betterlytics-events', + BETTERLYTICS_PLUGIN_URL . 'public/js/betterlytics-events.js', + [], + $this->version, + true + ); wp_localize_script( 'betterlytics-events',