Как сделать шлюз оплаты недоступным в woocommerce, если сумма заказа менее определенной суммы, в идеале что бы пункт на странице /checkout показывался, но его нельзя было выбрать и выходило окно что нужно добрать по сумме, возможно есть какие нибудь плагины?
Нашел это, но не знаю как объединить в рабочий вариант
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
// Set this variable to specify a minimum order value
$minimum = 100;
if ( WC()->cart->total < $minimum ) {
if( is_cart() ) {
wc_print_notice(
sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' ,
wc_price( $minimum ),
wc_price( WC()->cart->total )
), 'error'
);
} else {
wc_add_notice(
sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' ,
wc_price( $minimum ),
wc_price( WC()->cart->total )
), 'error'
);
}
}
}
add_filter('woocommerce_available_payment_gateways', 'unsetting_payment_gateway', 10, 1);
function unsetting_payment_gateway( $available_gateways ) {
// Здесь определяется количество товара
$qty_limit = 15;
$limit_reached = false;
// Перебор по каждому элементу в корзине
foreach(WC()->cart->get_cart() as $cart_item){
if($cart_item['quantity'] > $qty_limit ){
$limit_reached = true;
break;
}
}
if($limit_reached){
// Здесь установить способ оплаты
unset($available_gateways['cod']);
unset($available_gateways['bacs']);
}
return $available_gateways;
}