如果没有可用的付款网关,我想在结帐时删除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 );
}
}
即使有可用的付款网关,这也会完全删除隐私政策和条款和条件。
答案 0 :(得分:1)
未定义变量$available_gateways
,woocommerce_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