我想在特殊情况下禁用所有支付网关:
我有 2 种特殊产品,我不想在结账时与任何其他产品结合使用。
假设我的“特殊”产品 ID 是496和484。所有其他都是“正常”产品。
例如,如果购物车中有这些“特殊”产品之一,我想禁用“贝宝”。
如果客户的购物车中同时有“特殊”产品和“普通”产品,我想禁用所有支付网关,因此他无法结帐。
这是我的代码:
//disable add to cart if
add_filter( 'woocommerce_available_payment_gateways', 'filter_gateways', 1);
function filter_gateways( $gateways )
{
global $woocommerce;
foreach ($woocommerce->cart->cart_contents as $key => $values ) {
// store product IDs in array
$nonPPproducts = array(496,484);
if (in_array( $values['product_id'], $nonPPproducts ) ) {
unset($gateways['cod'], $gateways['bacs'], $gateways['cheque'], $gateways['stripe']);
} elseif ( in_array( $values['product_id'], $nonPPproducts ) && in_array( $values['product_id'] …Run Code Online (Sandbox Code Playgroud)