在WooCommerce中有条件地删除Checkout条款和条件

时间:2020-09-11 22:55:08

标签: php wordpress woocommerce hook-woocommerce checkout

如果没有可用的付款网关,我想在结帐时删除Woocommerce隐私政策文本以及条款和条件。

这是我尝试过的代码

add_action('woocommerce_checkout_terms_and_conditions', 'disable_woocommerce_checkout_options', 10 );
function disable_woocommerce_checkout_options(){
    if ( empty( $available_gateways ) ) {
            remove_action( 'woocommerce_checkout_terms_and_conditions', 'wc_checkout_privacy_policy_text', 20 );
            remove_action( 'woocommerce_checkout_terms_and_conditions', 'wc_terms_and_conditions_page_content', 30 );
        }
}

即使有可用的付款网关,这也会完全删除隐私政策和条款和条件。

1 个答案:

答案 0 :(得分:1)

未定义变量$available_gatewayswoocommerce_checkout_init是要使用的正确钩子。请尝试以下操作:

add_action('woocommerce_checkout_init', 'disable_checkout_terms_and_conditions', 10 );
function disable_checkout_terms_and_conditions(){
    // Get available payment gateways
    $available_gateways = WC()->payment_gateways->get_available_payment_gateways();
    
    if ( empty( $available_gateways ) ) {
        remove_action( 'woocommerce_checkout_terms_and_conditions', 'wc_checkout_privacy_policy_text', 20 );
        remove_action( 'woocommerce_checkout_terms_and_conditions', 'wc_terms_and_conditions_page_content', 30 );
    }
}

代码进入活动子主题(或活动主题)的function.php文件。经过测试,可以正常工作。

相关:Remove some hooked functions based on virtual products in WooCommerce Checkout