根据 WooCommerce 购物车总数禁用付款方式

Disable payment methods based on WooCommerce cart total

我在 Woo commerce(WordPress) 上尝试使用下面的代码 hide/disable Credit/Debit 卡和直接银行转帐付款方式,结账总额 == 400 但没有用。请知道如何实现这一目标?非常感谢。

function payment_gateway_disable_total_amount( $available_gateways ) {
global $woocommerce;

    if ( isset( $available_gateways['bacs'] ) && $woocommerce->cart->total == 400 ) {
        unset(  $available_gateways['bacs'] );
    }
    
    if ( isset( $available_gateways['youpay'] ) && $woocommerce->cart->total == 400 ) {
        unset(  $available_gateways['youpay'] );
    }
    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_total_amount' );

为什么使用固定总数?任何客户总计获得特定 400 的机会很少。它应该是“最多 400”,所以像 if( $tolal >= 400 ).

此外,“Debit/Credit 卡”似乎不是正确的付款方式 ID……请参阅[此主题][1] 以找出“Debit/Credit 卡”的正确付款方式 ID " 支付网关。

尝试以下(假设“Debit/Credit卡”付款方式 ID 正确)

add_filter( 'woocommerce_available_payment_gateways', 'show_hide_payment_methods' );
function show_hide_payment_methods( $available_gateways ) {

    if ( WC()->cart->total >= 400 ) {
        if ( isset($available_gateways['bacs']) ) {
            unset($available_gateways['bacs']);
        }
        if ( isset($available_gateways['Debit/Credit Cards']) ) {
            unset($available_gateways['Debit/Credit Cards']);
        }
    }

    return $available_gateways;
}

代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。