Перейти к содержанию

Помогите с модулем Обновление цены при выборе опции, без AJAX - HYPER Dynamic price of options


Перейти к решению Решений AlexDW,

Рекомендуемые сообщения

Я добавил доп. товары с опциями в карточку товара. Проблема в том, что у меня теперь в цене товара NaN и цена не пересчитывается. Я так понял, что это из-за этого куска

<operation>
      <search><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>"]]></search>
      <add position="replace"><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>" data-optid="<?php echo $option['option_id']; ?>" data-points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" data-prefix="<?php echo $option_value['price_prefix']; ?>" data-price="<?php echo $option_value['price_value']; ?>"]]></add>
</operation>

+ срабатывания JS.

$('input[name^="option"],select[name^="option"]').on('change', function() { recalculateprice(); });

Т.е. модуль прописывает в опции в доп.товаров нужные ему параметры и у меня получается такая ошибка

<input type="radio" name="option[6042]" value="89139" data-optid="11" data-points="0" data-prefix="+" data-price="<b>Notice</b>: Undefined index: price_value in <b>.../system/storage/modification/catalog/view/theme/default/template/product/product.tpl</b>">

Как исключить эти input для модуля, если они находятся в контейнере .additional_products ?

 

Не пойму как мне сделать, чтобы модуль не трогал опции в  .additional_products

Изменено пользователем DenKuzmin
Ссылка на комментарий
Поделиться на другие сайты

function() { recalculateprice(); });

 

пробуйте

function() {
  if (!$(this).closest(".additional_products").length) {
  recalculateprice();
  }
});
Ссылка на комментарий
Поделиться на другие сайты

В 17.09.2023 в 21:58, AlexDW сказал:

пробуйте

Получилось таким способом:

$('input[name^="option"],select[name^="option"]').on('change', function() { recalculateprice(); });

заменил на

$('input[name^="option"],select[name^="option"]').not('.additional_products input, .additional_products select').on('change', function() { recalculateprice(); });

и

var $so = $('input[type="hidden"][name^="option"],input[name^="option"]:checked,select[name^="option"] option:selected');

заменил на

var $so = $('input[type="hidden"][name^="option"],input[name^="option"]:checked,select[name^="option"] option:selected').not('.additional_products input, .additional_products select');

Цена в карточке пересчитывается нормально. NaN пропало.

Но из за

<operation>
  <search><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>"]]></search>
  <add position="replace"><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>" data-optid="<?php echo $option['option_id']; ?>" data-points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" data-prefix="<?php echo $option_value['price_prefix']; ?>" data-price="<?php echo $option_value['price_value']; ?>"]]></add>
</operation>

у меня ошибка в .additional_products input, а именно

<input type="radio" name="option[1565]" value="25447" data-optid="11" data-points="0" data-prefix="+" data-price="<b>Notice</b>: Undefined index: price_value in <b>.../system/storage/modification/catalog/view/theme/default/template/product/product.tpl</b>" />

Не пойму как исключить из замены инпуты, которые в .additional_products, чтобы модуль их вообще не трогал.

Ссылка на комментарий
Поделиться на другие сайты

замените у них

<?php echo $option_value['product_option_value_id']; ?>

 

на

<?php echo $option_value['product_option_value_id'];?>
Ссылка на комментарий
Поделиться на другие сайты

  • Решение
В 18.09.2023 в 00:51, DenKuzmin сказал:

Это же одно и то же

Идет лекция у первокурсников мединститута. Преподаватель говорит:
— Врач должен быть не только внимательным, но и не брезгливым. Смотрите, я окунаю палец в мочу и облизываю его. Кто может повторить?
Все студенты "припухли", сидят. Один поднимается и повторяет действия профессора. Тот говорит:
— Вы не брезгливы, это хорошо. Но, кроме того, врач должен быть наблюдательным. Я окунул один палец, а облизал другой.

 

при такой замене модификатор не сможет ее изменить

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...