如何在后端识别商店是否使用结帐块 [classic_checkout] 或使用短代码 [woocommerce_checkout] 的 WooCommerce 结帐。
我正在测试支付网关,我使用 enqueue_script 将 JS 添加到前端。验证商店是否使用与块兼容的 [classic_checkout] 块的最佳方法是什么,以便脚本只能在必要时排队?
我终于通过位于
WC_Blocks_Utils Class中的
has_block_in_page( $page, $block_name )
函数找到了方法。您可以使用它进行结帐,如下所示:
// Conditional function that check if Checkout page use Checkout Blocks
function is_checkout_block() {
return WC_Blocks_Utils::has_block_in_page( wc_get_page_id('checkout'), 'woocommerce/checkout' );
}
对于购物车页面,您可以使用:
// Conditional function that check if Cart page use Cart Blocks
function is_checkout_block() {
return WC_Blocks_Utils::has_block_in_page( wc_get_page_id('cart'), 'woocommerce/cart' );
}
已测试且有效