Скрыть конкретный способ оплаты на основе общего веса в Woocommerce

В woocommerce я хотел бы скрыть способ оплаты «Наложенный платеж» для определенного общего веса.

Например, если общий вес тележки не превышает 15 кг, при оформлении заказа используется способ оплаты "Наложенный платеж".

Любая помощь приветствуется.


person Dimos Kotsonis    schedule 08.08.2018    source источник


Ответы (1)


Следующий простой код скроет способ оплаты наложенным платежом, если общий вес корзины не превышает 15 Kg.
Я предполагаю, что в Woocommerce установлена ​​единица веса кг (килограммы).

Код:

add_filter( 'woocommerce_available_payment_gateways', 'hide_payment_gateways_based_on_weight', 11, 1 );
function hide_payment_gateways_based_on_weight( $available_gateways ) {
    if ( is_admin() ) return $available_gateways; // Only on frontend

    $total_weight = WC()->cart->get_cart_contents_weight();

    if( $total_weight >= 15 && isset($available_gateways['cod']) )
        unset($available_gateways['cod']); // unset 'cod'

    return $available_gateways;
}

Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

person LoicTheAztec    schedule 08.08.2018