В інтерфейсі плагіну такої можливості немає, але ви можете так зробити з оцим кодом для functions.php вашої дочірньої теми:
/**
* Ховає «Оплата при доставці» (накладений платіж),
* якщо сума замовлення менша за 1000 грн.
*/
add_filter( 'woocommerce_available_payment_gateways', function ( $gateways ) {
if ( is_admin() && ! wp_doing_ajax() ) {
return $gateways; // не чіпаємо адмінку
}
if ( ! isset( $gateways['cod'] ) ) {
return $gateways;
}
$min_total = 1000; // мінімальна сума, грн
$total = null;
// Сторінка «Оплатити замовлення»: кошика там немає, беремо суму замовлення
if ( is_wc_endpoint_url( 'order-pay' ) ) {
$order_id = absint( get_query_var( 'order-pay' ) );
$order = $order_id ? wc_get_order( $order_id ) : null;
if ( $order ) {
$total = (float) $order->get_subtotal();
}
} elseif ( WC()->cart ) {
$total = (float) WC()->cart->get_subtotal(); // сума товарів без доставки
}
if ( null !== $total && $total < $min_total ) {
unset( $gateways['cod'] );
}
return $gateways;
} );
Куди вставити код
Файл functions.php дочірньої теми
- Переконайтеся, що активна дочірня тема (наприклад, Flatsome Child). У батьківській темі код зникне після оновлення.
- Зробіть резервну копію файлу functions.php.
- Вставте код у кінець файлу через FTP або файловий менеджер хостингу.
Як налаштувати під себе
Інша мінімальна сума: замініть 1000 у рядку $min_total = 1000; на потрібне число.
За замовчуванням рахується сума товарів без доставки й без знижок. Щоб рахувати інакше, замініть рядок з WC()->cart->get_subtotal():
|
Що рахувати |
Рядок у коді |
|---|---|
|
Сума товарів (за замовчуванням) |
$total = (float) WC()->cart->get_subtotal(); |
|
Товари після знижки за купоном |
$total = (float) WC()->cart->get_subtotal() - (float) WC()->cart->get_discount_total(); |
|
Повна сума разом із доставкою |
$total = (float) WC()->cart->get_total( 'edit' ); |
Цей скрипт створено для роботи зі стандартним методом оплати "Готівка при отриманні" який автоматично зчитує наш плагін UA Shipping Pro (і безкоштовна версія також).