* Add check for when the styles filter is used unexpectedly.

* Changelog
This commit is contained in:
Peter Fabian 2022-09-14 14:52:47 +02:00 committed by GitHub
parent 4b4b5f36e2
commit 61e1cde33a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 33 deletions

View File

@ -0,0 +1,4 @@
Significance: patch
Type: fix
Fix error when 'woocommerce_enqueue_styles' returns non-array.

View File

@ -57,41 +57,47 @@ class WC_Frontend_Scripts {
public static function get_styles() {
$version = Constants::get_constant( 'WC_VERSION' );
return array_filter(
apply_filters(
'woocommerce_enqueue_styles',
array(
'woocommerce-layout' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
),
'woocommerce-smallscreen' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce-smallscreen.css' ),
'deps' => 'woocommerce-layout',
'version' => $version,
'media' => 'only screen and (max-width: ' . apply_filters( 'woocommerce_style_smallscreen_breakpoint', '768px' ) . ')',
'has_rtl' => true,
),
'woocommerce-general' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
),
'woocommerce-blocktheme' => wc_current_theme_is_fse_theme() ? array(
'src' => self::get_asset_url( 'assets/css/woocommerce-blocktheme.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
) : false,
)
/**
* Filter list of WooCommerce styles to enqueue.
*
* @since 2.1.0
* @param array List of default WooCommerce styles.
* @retrun array List of styles to enqueue.
*/
$styles = apply_filters(
'woocommerce_enqueue_styles',
array(
'woocommerce-layout' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
),
'woocommerce-smallscreen' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce-smallscreen.css' ),
'deps' => 'woocommerce-layout',
'version' => $version,
'media' => 'only screen and (max-width: ' . apply_filters( 'woocommerce_style_smallscreen_breakpoint', '768px' ) . ')',
'has_rtl' => true,
),
'woocommerce-general' => array(
'src' => self::get_asset_url( 'assets/css/woocommerce.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
),
'woocommerce-blocktheme' => wc_current_theme_is_fse_theme() ? array(
'src' => self::get_asset_url( 'assets/css/woocommerce-blocktheme.css' ),
'deps' => '',
'version' => $version,
'media' => 'all',
'has_rtl' => true,
) : false,
)
);
return is_array( $styles ) ? array_filter( $styles ) : array();
}
/**