Самовывоз "от 0 руб." заменить на "от 470 руб." Есть решение

Подскажите пожалуйста, как можно изменить текст "от 0 руб." у типа доставки "Самовывоз" (https://yadi.sk/i/6zVrN9pDSedb...)?

В данном типа доставки имеется способ доставки с нулевой ценой (запасной вариант) и по-хорошему он не должен никак влиять на эту строчку.

Т.е. в данном случае должен подставиться текст "от 470 руб." (https://yadi.sk/i/E4CeTT-SPWGe...).


P.S. Для запасного способа доставки использую отдельный плагин "Международная доставка". Если можно доработать на уровне плагина, чтобы все способы настроенные через него не влияли на значение этой строчки - мне этот вариант подойдет.

3 ответа

  • 1
    Парам Пам Пам 15 декабря 2020 18:33 #

    Попробуйте плагином фильтр доставки и оплаты отключить для России этот способ.

    Зы,  самом плагине международная доставка укажите стоимость для страны. 

    • +1
      chikurov-seo chikurov-seo 15 декабря 2020 18:39 #

      Не надо этот способ доставки фильтровать. Этот способ доставки должен работать для всех регионов. Его можно выбрать и оформить заказ. С помощью JS я убрал упоминания о бесплатной доставке везде, где оно было:

      Единственное с чем не справился - это текст под заголовком "Самовывоз". Можно конечно просто его скрыть, но хотелось бы для красоты вывести туда второе по счету минимальное значение стоимости доставки.

  • 1
    chikurov-seo 16 декабря 2020 11:13 # Решение

    В общем, для решения задачи всячески пытался обойтись без php, но не получилось. Смог получить минимальное значение типа доставки без учета одного определенного плагина примерно так:

    $wa = wa();
    $shop = new shopViewHelper($wa);
    $checkout = $shop->checkout();
    $form = $checkout->formVars();
    
    $text_min_price = false;
    if ($form['shipping']['types']['pickup']['rate_min'] < 20) { //не делаем лишние действия, если стоимость доставки от 20
        
        $min_price = 1000000; //предположим, что в магазине есть хотя бы одна доставка дешевле миллиона
        foreach ($form['shipping']['types']['pickup']['variants'] as $item) {
            if ($item['plugin'] != 'worldwide') {
                if ($item['rate_min'] < $min_price) {
                    $min_price = $item['rate_min'];
                }
            }
        }
        if ($min_price == 1000000) {
            $min_price = 0;
        }
        
        $currency = $form['shipping']['types']['pickup']['currency']; //предположим, что все способы доставки рассчитываются в одной валюте
        $text_min_price = 'от ' . shop_currency($min_price, $currency);
    }
    
    //минимальная стоимость доставки для типа "самовывоз" без учета способов доставки плагина c id "worldwide"
    wa_dump($text_min_price); //false, если менять не нужно.
    

    если кто-то предложит решение без php - буду благодарен.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите