From 3e3bb37b1735cf4cafc7400af6014c8fe61ddc10 Mon Sep 17 00:00:00 2001 From: Matthew Batchelder Date: Fri, 27 Sep 2024 18:38:14 -0400 Subject: [PATCH] Do not attempt to use the asset.php file for cloned assets --- src/Assets/Asset.php | 27 +++++++++++++++++++++++++++ tests/acceptance/EnqueueCSSCest.php | 2 +- tests/acceptance/EnqueueJSCest.php | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/Assets/Asset.php b/src/Assets/Asset.php index 30c367e..caed25f 100644 --- a/src/Assets/Asset.php +++ b/src/Assets/Asset.php @@ -231,6 +231,15 @@ class Asset { */ protected ?string $url = null; + /** + * Whether or not to attempt to load an .asset.php file. + * + * @since 1.3.1 + * + * @var bool + */ + protected bool $use_asset_file = true; + /** * The asset version. * @@ -617,6 +626,7 @@ public function clone_to( string $clone_type, ...$dependencies ) { $path = $this->get_path(); $min_path = $this->get_min_path(); + $clone->use_asset_file( false ); $clone->prefix_asset_directory( $this->should_use_asset_directory_prefix ); if ( $dependencies ) { @@ -1005,6 +1015,10 @@ public function get_version(): string { * @return boolean */ public function has_asset_file(): bool { + if ( ! $this->use_asset_file ) { + return false; + } + $asset_file_path = $this->get_asset_file_path(); if ( empty( $asset_file_path ) ) { @@ -1665,4 +1679,17 @@ public function set_type( string $type ) { public function should_print(): bool { return $this->should_print; } + + /** + * Set whether or not to use an .asset.php file. + * + * @since 1.3.1 + * + * @param boolean $use_asset_file Whether to use an .asset.php file. + * @return self + */ + public function use_asset_file( bool $use_asset_file = true ): self { + $this->use_asset_file = $use_asset_file; + return $this; + } } diff --git a/tests/acceptance/EnqueueCSSCest.php b/tests/acceptance/EnqueueCSSCest.php index 787b7d9..a941f95 100644 --- a/tests/acceptance/EnqueueCSSCest.php +++ b/tests/acceptance/EnqueueCSSCest.php @@ -273,6 +273,6 @@ public function it_should_enqueue_js_when_using_register_with_js( AcceptanceTest $I->amOnPage( '/' ); $I->seeElement( 'link', [ 'href' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.css?ver=12345' ] ); - $I->seeElement( 'script', [ 'src' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.js?ver=12345' ] ); + $I->seeElement( 'script', [ 'src' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.js?ver=1.0.0' ] ); } } diff --git a/tests/acceptance/EnqueueJSCest.php b/tests/acceptance/EnqueueJSCest.php index 5482910..d018b99 100644 --- a/tests/acceptance/EnqueueJSCest.php +++ b/tests/acceptance/EnqueueJSCest.php @@ -300,7 +300,7 @@ public function it_should_enqueue_css_when_using_register_with_css( AcceptanceTe $I->amOnPage( '/' ); - $I->seeElement( 'link', [ 'href' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.css?ver=12345' ] ); + $I->seeElement( 'link', [ 'href' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.css?ver=1.0.0' ] ); $I->seeElement( 'script', [ 'src' => 'http://wordpress.test/wp-content/plugins/assets/tests/_data/build/something.js?ver=12345' ] ); } }