From 56e255271d9a92b8f50eb1885ced5f7d25d2e9cd Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 16 May 2026 23:03:14 +0200 Subject: [PATCH 1/6] fix: add missing $in_footer parameter to wp_enqueue/register_script calls --- src/Assets.php | 1 + src/Integrations/FormSubmit.php | 3 ++- src/Integrations/WooCommerce.php | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Assets.php b/src/Assets.php index 8741f83..bd3ccc8 100644 --- a/src/Assets.php +++ b/src/Assets.php @@ -40,6 +40,7 @@ public function maybe_enqueue_cloaked_affiliate_links_assets() { PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-affiliate-links.js', [ 'plausible-analytics' ], filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-affiliate-links.js' ), + true, ); $affiliate_links = Helpers::get_settings()['affiliate_links'] ?? []; diff --git a/src/Integrations/FormSubmit.php b/src/Integrations/FormSubmit.php index d7e46d5..a51bc15 100644 --- a/src/Integrations/FormSubmit.php +++ b/src/Integrations/FormSubmit.php @@ -58,7 +58,8 @@ public function add_js() { 'plausible-form-submit-integration', PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-form-submit-integration.js', [ 'plausible-analytics' ], - filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-form-submit-integration.js' ) + filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-form-submit-integration.js' ), + true ); wp_localize_script( diff --git a/src/Integrations/WooCommerce.php b/src/Integrations/WooCommerce.php index e20c408..ae683eb 100644 --- a/src/Integrations/WooCommerce.php +++ b/src/Integrations/WooCommerce.php @@ -117,7 +117,8 @@ public function add_js() { 'plausible-woocommerce-integration', PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-woocommerce-integration.js', [], - filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-woocommerce-integration.js' ) + filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-woocommerce-integration.js' ), + true ); } From 054cee7bb6e69c94993b4c42db4b413e05b068c4 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 17 May 2026 21:58:06 +0200 Subject: [PATCH 2/6] move to args --- src/Assets.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Assets.php b/src/Assets.php index bd3ccc8..81e5a17 100644 --- a/src/Assets.php +++ b/src/Assets.php @@ -40,7 +40,7 @@ public function maybe_enqueue_cloaked_affiliate_links_assets() { PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-affiliate-links.js', [ 'plausible-analytics' ], filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-affiliate-links.js' ), - true, + [ 'in_footer' => true ], ); $affiliate_links = Helpers::get_settings()['affiliate_links'] ?? []; From f572a3708ec5d21fd915503c0afbf11e7a51efa0 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 17 May 2026 21:58:28 +0200 Subject: [PATCH 3/6] add args --- src/Integrations/WooCommerce.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Integrations/WooCommerce.php b/src/Integrations/WooCommerce.php index ae683eb..02627b0 100644 --- a/src/Integrations/WooCommerce.php +++ b/src/Integrations/WooCommerce.php @@ -118,7 +118,7 @@ public function add_js() { PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-woocommerce-integration.js', [], filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-woocommerce-integration.js' ), - true + [ 'in_footer' => true ], ); } From fe8f08e5fa3987d24e7e3addb59ec26f72aa2aa8 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 17 May 2026 21:58:44 +0200 Subject: [PATCH 4/6] add args --- src/Integrations/FormSubmit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Integrations/FormSubmit.php b/src/Integrations/FormSubmit.php index a51bc15..534a2cd 100644 --- a/src/Integrations/FormSubmit.php +++ b/src/Integrations/FormSubmit.php @@ -59,7 +59,7 @@ public function add_js() { PLAUSIBLE_ANALYTICS_PLUGIN_URL . 'assets/dist/js/plausible-form-submit-integration.js', [ 'plausible-analytics' ], filemtime( PLAUSIBLE_ANALYTICS_PLUGIN_DIR . 'assets/dist/js/plausible-form-submit-integration.js' ), - true + [ 'in_footer' => true ], ); wp_localize_script( From 28ac914cd45f9750777cc9b6130959dd5aa0d2a8 Mon Sep 17 00:00:00 2001 From: Daan van den Bergh <18595395+Dan0sz@users.noreply.github.com> Date: Wed, 10 Jun 2026 14:44:43 +0200 Subject: [PATCH 5/6] Pass tests when code coverage uploading fails. --- .github/workflows/push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 70880ac..4337a1a 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -91,3 +91,4 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} slug: plausible/wordpress + continue-on-error: true From 0cc6432c3dd5352d4351019ff4cab64693c11391 Mon Sep 17 00:00:00 2001 From: Daan van den Bergh <18595395+Dan0sz@users.noreply.github.com> Date: Wed, 10 Jun 2026 14:48:20 +0200 Subject: [PATCH 6/6] Fix test. --- tests/integration/AssetsTest.php | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/tests/integration/AssetsTest.php b/tests/integration/AssetsTest.php index 5efd16f..32944fa 100644 --- a/tests/integration/AssetsTest.php +++ b/tests/integration/AssetsTest.php @@ -10,13 +10,13 @@ class AssetsTest extends TestCase { /** + * @see Assets::maybe_enqueue_cloaked_affiliate_links_assets() * @return void * @throws \Exception - * @see Assets::maybe_enqueue_main_script() */ - public function testEnqueueMainScript() { + public function testEnqueueCloakedAffiliateLinksScript() { try { - add_filter( 'plausible_analytics_settings', [ $this, 'enableAdministratorTracking' ] ); + add_filter( 'plausible_analytics_settings', [ $this, 'enableCloakedAffiliateLinks' ] ); $class = $this->getMockBuilder( Assets::class ) ->disableOriginalConstructor() @@ -29,94 +29,94 @@ public function testEnqueueMainScript() { $class->method( 'get_js_url' ) ->willReturn( 'https://plausible.test/js/plausible.js' ); - wp_set_current_user( 1 ); - $user = wp_get_current_user(); - $user->add_role( 'administrator' ); + ob_start(); $class->maybe_enqueue_main_script(); + $class->maybe_enqueue_cloaked_affiliate_links_assets(); - global $wp_scripts; - $data = $wp_scripts->get_data( 'plausible-analytics', 'after' ); + do_action( 'wp_footer' ); - $this->assertStringContainsString( 'window.plausible', implode( '', $data ) ); - $this->assertStringContainsString( 'plausible.init', implode( '', $data ) ); + $output = ob_get_clean(); + + $this->assertStringContainsString( 'plausible-affiliate-links.js', $output ); + $this->assertStringContainsString( 'const plausibleAffiliateLinks', $output ); } finally { - remove_filter( 'plausible_analytics_settings', [ $this, 'enableAdministratorTracking' ] ); - wp_set_current_user( null ); + remove_filter( 'plausible_analytics_settings', [ $this, 'enableCloakedAffiliateLinks' ] ); } } /** + * @see Assets::maybe_enqueue_four_o_four_script() * @return void * @throws \Exception - * @see Assets::maybe_enqueue_cloaked_affiliate_links_assets() */ - public function testEnqueueCloakedAffiliateLinksScript() { + public function testEnqueueFourOFourScript() { try { - add_filter( 'plausible_analytics_settings', [ $this, 'enableCloakedAffiliateLinks' ] ); + add_filter( 'plausible_analytics_settings', [ $this, 'enableFourOFour' ] ); + add_filter( 'plausible_analytics_is_404', '__return_true' ); $class = $this->getMockBuilder( Assets::class ) ->disableOriginalConstructor() ->onlyMethods( [ 'get_js_url' ] ) ->getMock(); - $this->removeAction( 'wp_enqueue_scripts', 'maybe_enqueue' ); - $this->removeAction( 'wp_enqueue_scripts', 'maybe_enqueue', 11 ); - $class->method( 'get_js_url' ) ->willReturn( 'https://plausible.test/js/plausible.js' ); - ob_start(); - $class->maybe_enqueue_main_script(); - $class->maybe_enqueue_cloaked_affiliate_links_assets(); - - do_action( 'wp_head' ); + $class->maybe_enqueue_four_o_four_script(); - $output = ob_get_clean(); + global $wp_scripts; - $this->assertStringContainsString( 'plausible-affiliate-links.js', $output ); - $this->assertStringContainsString( 'const plausibleAffiliateLinks', $output ); + $this->assertArrayHasKey( 'plausible-analytics', $wp_scripts->registered ); + $this->assertTrue( $this->arrayHasString( '404', $wp_scripts->registered['plausible-analytics']->extra['after'] ) ); } finally { - remove_filter( 'plausible_analytics_settings', [ $this, 'enableCloakedAffiliateLinks' ] ); + remove_filter( 'plausible_analytics_settings', [ $this, 'enableFourOFour' ] ); + remove_filter( 'plausible_analytics_is_404', '__return_true' ); } } /** + * @see Assets::maybe_enqueue_main_script() * @return void * @throws \Exception - * @see Assets::maybe_enqueue_four_o_four_script() */ - public function testEnqueueFourOFourScript() { + public function testEnqueueMainScript() { try { - add_filter( 'plausible_analytics_settings', [ $this, 'enableFourOFour' ] ); - add_filter( 'plausible_analytics_is_404', '__return_true' ); + add_filter( 'plausible_analytics_settings', [ $this, 'enableAdministratorTracking' ] ); $class = $this->getMockBuilder( Assets::class ) ->disableOriginalConstructor() ->onlyMethods( [ 'get_js_url' ] ) ->getMock(); + $this->removeAction( 'wp_enqueue_scripts', 'maybe_enqueue' ); + $this->removeAction( 'wp_enqueue_scripts', 'maybe_enqueue', 11 ); + $class->method( 'get_js_url' ) ->willReturn( 'https://plausible.test/js/plausible.js' ); + wp_set_current_user( 1 ); + $user = wp_get_current_user(); + $user->add_role( 'administrator' ); + $class->maybe_enqueue_main_script(); - $class->maybe_enqueue_four_o_four_script(); global $wp_scripts; + $data = $wp_scripts->get_data( 'plausible-analytics', 'after' ); - $this->assertArrayHasKey( 'plausible-analytics', $wp_scripts->registered ); - $this->assertTrue( $this->arrayHasString( '404', $wp_scripts->registered['plausible-analytics']->extra['after'] ) ); + $this->assertStringContainsString( 'window.plausible', implode( '', $data ) ); + $this->assertStringContainsString( 'plausible.init', implode( '', $data ) ); } finally { - remove_filter( 'plausible_analytics_settings', [ $this, 'enableFourOFour' ] ); - remove_filter( 'plausible_analytics_is_404', '__return_true' ); + remove_filter( 'plausible_analytics_settings', [ $this, 'enableAdministratorTracking' ] ); + wp_set_current_user( null ); } } /** + * @see Assets::maybe_enqueue_query_params_script() * @return void * @throws \Exception - * @see Assets::maybe_enqueue_query_params_script() */ public function testEnqueueQueryParamsScript() { try { @@ -146,9 +146,9 @@ public function testEnqueueQueryParamsScript() { } /** + * @see Assets::maybe_enqueue_search_queries_script() * @return void * @throws \Exception - * @see Assets::maybe_enqueue_search_queries_script() */ public function testEnqueueSearchQueriesScript() { try {