Часто владельцем магазинов под управлением WordPress + WooCommerce приходится сталкиваться с задачей ограничения возможности заказа определенной минимальной суммой. И если товары в корзине магазина не достигают этого порога, то заказ осуществить не получится — пользователь увидеть уведомление.
Ниже мы видим снипет. Наша функция wc_minimum_order_amount прикрепляется («вешается») на два хука: woocommerce_checkout_process и woocommerce_before_cart. Первый — это класс проверки процесса оформления заказа, который собирает данные пользователя и обрабатывает платеж. Второй хук — вызывается непосредственно в шаблоне отвечающим за страницу Корзины вашего сайта (yourtheme/woocommerce/cart/cart.php).
Ну а дальше все просто… Получаем с помощью метода WC()->cart->total общую сумму корзины после расчета и сравниваем с нашим заданным значением. Если это удовлетворяет нашему условию то выполняем код в блоке, который выведет нативное предупреждение от Woo текущей суммы в корзине и минимальной для совершения заказа.
/**
* Установка минимальной суммы для осуществления заказа
*/
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
// Присвоим этой переменной минимальное значение для осуществления заказа
$minimum = 5000;
if ( WC()->cart->total < $minimum ) {
if( is_cart() ) {
wc_print_notice(
sprintf( 'Ваша текущая сумма заказа %s — Вы должны дополнить до минимума в %s чтобы оформить заказ. ' ,
wc_price( WC()->cart->total ),
wc_price( $minimum )
), 'error'
);
} else {
wc_add_notice(
sprintf( 'Ваша текущая сумма заказа %s — Вы должны дополнить до минимума в %s чтобы оформить заказ. ' ,
wc_price( WC()->cart->total ),
wc_price( $minimum )
), 'error'
);
}
}
}
Вот и все! Выглядеть это будет примерно так:

