【发布时间】:2021-05-10 06:45:16
【问题描述】:
我在 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 不生效。我不确定它是否正确放置?有什么建议吗?
【问题讨论】:
-
为什么不覆盖模板并将支票放在购物车按钮周围?无需删除操作/过滤器。
-
因为我是这样做的。我想了解为什么这段代码不起作用,而不是采用完全不同的解决方案。
-
另一种解决方案在我看来更好。它更可靠。
标签: php wordpress woocommerce checkout braintree