我在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 );
如果这有效,你可以扩展你的代码