Merge pull request #1847 from woocommerce/PCP-1961-single-product-button-placement-on-block-themes

Improve single product page button placement with Block themes (1961)
This commit is contained in:
Emili Castells 2023-11-21 11:09:19 +01:00 committed by GitHub
commit 6c28766f6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -273,7 +273,12 @@ class CompatModule implements ModuleInterface {
add_action(
'init',
function() {
if ( $this->is_elementor_pro_active() || $this->is_divi_theme_active() ) {
if (
$this->is_block_theme_active()
|| $this->is_elementor_pro_active()
|| $this->is_divi_theme_active()
|| $this->is_divi_child_theme_active()
) {
add_filter(
'woocommerce_paypal_payments_single_product_renderer_hook',
function(): string {
@ -286,6 +291,15 @@ class CompatModule implements ModuleInterface {
);
}
/**
* Checks whether the current theme is a blocks theme.
*
* @return bool
*/
protected function is_block_theme_active(): bool {
return function_exists( 'wp_is_block_theme' ) && wp_is_block_theme();
}
/**
* Checks whether the Elementor Pro plugins (allowing integrations with WC) is active.
*
@ -304,4 +318,15 @@ class CompatModule implements ModuleInterface {
$theme = wp_get_theme();
return $theme->get( 'Name' ) === 'Divi';
}
/**
* Checks whether a Divi child theme is currently used.
*
* @return bool
*/
protected function is_divi_child_theme_active(): bool {
$theme = wp_get_theme();
$parent = $theme->parent();
return ( $parent && $parent->get( 'Name' ) === 'Divi' );
}
}