以编程方式检查 WooCommerce 中是否使用了购物车或结帐块

问题描述 投票:0回答:1

如何在后端识别商店是否使用结帐块 [classic_checkout] 或使用短代码 [woocommerce_checkout] 的 WooCommerce 结帐。

我正在测试支付网关,我使用 enqueue_script 将 JS 添加到前端。验证商店是否使用与块兼容的 [classic_checkout] 块的最佳方法是什么,以便脚本只能在必要时排队?

php wordpress woocommerce checkout woocommerce-blocks
1个回答
1
投票

我终于通过位于

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' );
}

已测试且有效

© www.soinside.com 2019 - 2024. All rights reserved.