Скрыть наличные при доставке для заказов на определенную сумму в WooCommerce
Я хочу иметь возможность оплаты наложенным платежом только по цене ниже 100$ и скрывать ее автоматически, когда корзина превышает 100$. Проблема в том, что у меня есть 3 различных способа оплаты прямо сейчас. Paypal, чек и наложенный платеж. Когда человек что-то покупает и выбирает метод оплаты наличными, я написал там описание: "Вы можете выбрать ХПК, если ваш заказ ниже 100$". Но некоторые люди пренебрегают этим и все еще выбирают наложенным платежом, даже если их покупка превышает 100$. Итак, я хочу автоматически скрывать наложенный платеж, когда сумма покупки превышает 100 долларов. Следовательно, когда покупка превышает 100$, будет только два варианта: Paypal и Check. Надеюсь, я смогу прояснить это немного подробнее.
Спасибо
2 ответа
Вы можете использовать woocommerce_available_payment_gateways
хук для редактирования шлюзов woocommerce.
add_filter( 'woocommerce_available_payment_gateways' , 'change_payment_gateway', 20, 1);
/**
* remove cod gateway if cart total > 100
* @param $gateways
* @return mixed
*/
function change_payment_gateway( $gateways ){
// Compare cart subtotal (without shipment fees)
if( WC()->cart->subtotal > 100 ){
// then unset the 'cod' key (cod is the unique id of COD Gateway)
unset( $gateways['cod'] );
}
return $gateways;
}
add_filter( 'woocommerce_available_payment_gateways' , 'hide_payment_gateway', 20, 1);
function hide_payment_gateway( $gateways ){
//change whatever amount you want
if( WC()->cart->subtotal < 699 ){
// then unset the 'cod' key (cod is the unique id of COD Gateway)
unset( $gateways['cod'] );
add_action( 'woocommerce_review_order_before_payment', 'COD_exceed_amount_before_paying_notice' );
}
return $gateways;
}
function COD_exceed_amount_before_paying_notice() {
wc_print_notice( __( 'COD option not available on orders below 699.00', 'woocommerce' ), 'notice' );
}