Braintree for WooCommerce 插件中的条件删除"proceed to checkout"按钮



我在wc_braintree_cart_payment_gateways过滤器挂钩中使用,这段代码删除了;进行结账";WooCommerce:中的按钮

add_filter( 'wc_braintree_cart_payment_gateways', function ( $gateways ) {
$categories   = [aaa,bbb];
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// Check for product categories
if ( ! has_term($categories, 'product_cat', $cart_item['product_id'] ) ) {
$gateways = []; 
break;
}else{  
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
}
}

return $gateways;
} );

第一个条件按预期工作。remove_action不起作用。我不确定它的位置是否正确?有什么建议吗?

我没有使用您所说的插件,但在挂钩中添加一个(较低的(优先级数字可以提供解决方案。

function filter_wc_braintree_cart_payment_gateways ( $gateways ) {
// Remove proceed to checkout button
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 ); 

return $gateways;
}
add_filter( 'wc_braintree_cart_payment_gateways', 'filter_wc_braintree_cart_payment_gateways', 10, 1 );

如果这有效,你可以扩展你的代码

相关内容

最新更新