Как добавить цену из калькулятора в корзину

Добрый день! Дело о Minishop2
Не могу понять как сделать чтобы значение новой цены из калькулятора, при нажатии на кнопку в корзину, подгружалось вместо стандартной цены,. См.скрины dropmefiles.com/P7jch
Дмитрий Беляков
17 ноября 2021, 13:18
modx.pro
310
0

Комментарии: 11

Павел Романов
17 ноября 2021, 14:55
0
Сделайте в форме кнопки скрытое поле, куда передавайте JS-ом рассчитанное калькулятором значение:
<input type="hidden" name="calc_price" value="" />

Сделайте плагин на событие msOnBeforeAddToCart, где ловите его и подменяйте цену товара:

if(is_numeric($_POST['calc_price'])){
    $product->set('price', $_POST['calc_price']);
}
    Дмитрий Беляков
    17 ноября 2021, 15:16
    0
    Не помогло…
      Павел Романов
      17 ноября 2021, 15:45
      0
      Где-то ошиблись. Это 100% работает )
      Точно число приходит в поле? Без пробелов?
        Дмитрий Беляков
        17 ноября 2021, 15:57
        0
        Вот скрин, значение есть dropmefiles.com/Cnfsr
          Павел Романов
          17 ноября 2021, 16:04
          0
          Код неправильный. Input — одинарный тег и его не нужно открывать/закрывать.
          То есть именно так:
          <input type="hidden" name="calc_price" value="" />

          А в js через
          $('input[name="calc_price"]').val(***);
            Дмитрий Беляков
            17 ноября 2021, 16:16
            0
            Нефига. В консоле значение передается другое все равно. смотрите скрин dropmefiles.com/Q8AV1
              Дмитрий Беляков
              17 ноября 2021, 16:19
              0
              здесь значения быстро появляется новое и сразу жек сбрасывается на старое dropmefiles.com/5kudR
                Павел Романов
                17 ноября 2021, 16:42
                0
                Так у Вас msOptionsPrice перебивает плагин — он же тоже на msOnBeforeAddToCart висит. Попробуйте поменять приоритет или повесить свой плагин на событие самого msOptionsPrice, например, на msopOnAfterGetCost.
                  Дмитрий Беляков
                  17 ноября 2021, 16:54
                  0
                  Это где в каком плагине?
                    Павел Романов
                    17 ноября 2021, 17:17
                    0
                    «Свой плагин» — имеется в виду тот, который обрабатывает $_POST['calc_price'].
                    Его повесить на msopOnAfterGetCost. Это собственное событие msOptionsPrice2, в котором можно подменить стоимость
                      Дмитрий Беляков
                      17 ноября 2021, 17:29
                      0
                      И так, цена попадает которая нужна в корзину, только стало проблема в том что теперь везде по умолчанию цены 1руь. а не цены из модификаций как были…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      11