Отключить способы оплаты на основе общей суммы корзины WooCommerce

Я пробовал этот код ниже, чтобы скрыть / отключить кредитную / дебетовую карту и способ оплаты прямым банковским переводом в Woo commerce (WordPress), когда общая сумма проверки == 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' );

person user2969052    schedule 15.10.2020    source источник


Ответы (1)


Зачем использовать фиксированную сумму? Очень мало шансов, что кто-то из клиентов получит в общей сложности 400. Вместо этого должно быть до 400, что-то вроде if( $tolal >= 400 ).

Также дебетовые / кредитные карты не кажутся подходящими идентификаторами способа оплаты… См. [Эту ветку] [1], чтобы узнать правильный идентификатор способа оплаты для платежного шлюза дебетовых / кредитных карт.

Попробуйте выполнить следующее (при условии, что идентификатор способа оплаты дебетовой / кредитной картой верен):

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 активной дочерней темы (или активной темы). Должно сработать.

person LoicTheAztec    schedule 16.10.2020
comment
Спасибо, это сработало. Мне также удалось получить идентификатор способа оплаты. Спасибо - person user2969052; 16.10.2020