Как скрыть метод доставки до тех пор пока в корзине не накопилась определенная сумма?

Всем здравствуйте! Возникла такая проблема: нужно скрывать метод доставки , пока в корзине сайта не наберется товара на сумму 5000 р. Я перерыл кучу инфы, но нигде ответа нет. Я понимаю , мне нужно найти переменную , где хранится общая сумма? Как это реализовать подскажите пожалуйста?
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 3
@serg1764
Исправляю ответ. Пишу для этого вопроса. Ответ про стиле ниже мне понравился.
В корзине подключит ещё js файл и отслеживать сумму. Если сумма меньше 5000, то скрывать стилями данный метод.
Типа display:none;
Проверку можно повесить на нажатие кнопок и при загрузки страницы.
Ответ написан
Expany
@Expany
$this->get('skill');
В чем проблема?
Предположим нечто подобное для примера:
<div class="summary_block">
    <span class="summary">3000</span>руб.
    <input id="summary" type="hidden" value="3000">
</div>
<div class="delivery_method hide">Описания или форма или что там у тебя</div>
<div class="product_grid">
    <div class="product_item">
        <p>Описание товара</p>
        <a href="/buy" id="product_buy" data-id="100">В корзину</a>
    </div>
    <div class="product_item">
        <p>Описание товара</p>
        <a href="/buy" id="product_buy" data-id="101">В корзину</a>
    </div>
    <div class="product_item">
        <p>Описание товара</p>
        <a href="/buy" id="product_buy" data-id="101">В корзину</a>
    </div>
</div>

Капля стилей:
.hide {
    display: none;
}

Немного js(ориентируюсб на jQuery, так как он у вордпресса из коробки):
jQuery(document).on('load', function() {
    jQuery('#product_buy').on('click', function(e) {
        e.preventDefault(); // Сбрасываю клик по ссылке, так как скорее всего тут должно быть что-то еще для добавления товара в корзину
        let summary = jQuery('#summary').val(); // Получаю число из скрытого поля
        if(Number(summary) >= 5000) { // Проверяю соответствует ли оно требуемому и если да, показываю блок
            jQuery('.delivery_method').removeClass('hide');
        } else { // Иначе скрываю блок обратно
            jQuery('.delivery_method').addClass('hide');
        }
    });


Вариант исключает вукомерс, так как заметил тег уже после того как склепал пример (´• ω •`)
Да и с самим вукомерс не работал.

Но предположу что стоит посмотреть шаблон темы, если корзина в шапке то предположу какой-нибудь header.php
Оттуда можно оттолкнуться, и понять куда копать(если не шибко мудреная). ¯\_(ツ)_/¯
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Как вариант можно попробовать различные плагины.
Вот, например - WooCommerce Cart Based Shipping
Shipping base on the cart’s subtotal, number of items ordered, or total weight of all items combined

Set a minimum or maximum requirement the customer must meet (based on calculation method)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы