Я пытаюсь обновить свой магазин с версии 2.3 до версии 2.3.1. Я работаю над своей версией для локальной разработки, и у меня почти все работает. Я использую образцы текста, которые отлично работают в версии 2.3, но в версии 2.3.1 все, что я вижу в образце, является «нулевым». Я знаю, что на страницу отправляется правильный текст, поскольку я вижу его, когда навожу указатель мыши на образец (см. изображение ниже, где вы можете видеть, что второй образец цвета имеет значение «Серый»). Я подозреваю, что что-то не работает с javascript, но я понятия не имею, с чего начать поиск. Кстати, в журнале консоли ошибок нет.
Я отследил проблему до чего-то в swatch-renderer.js. Версия V2.3 имеет следующую строку по адресу 517:
value = optionConfig[id].hasOwnProperty('value') ? optionConfig[id].value : '';
Версия V2.3.1 изменила это на следующее:
value = optionConfig[id].hasOwnProperty('value') ? $('<i></i>').text(optionConfig[id].value).html() : '';
затем значение используется в следующем операторе для помещения текста в html:
html += '<div class = "' + optionClass + ' text" ' + attr + '>' + (value ? value : label) + '</div>';
Я использовал alert(), чтобы увидеть содержимое значения до и после каждого варианта этого оператора, а также его тип. До того, как он не определен, после того, как он равен нулю для обоих вариантов, но изменение его на старую версию решает проблему! Вероятно, это связано с тем, что раньше в V2.3 он имел тип object, тогда как в V2.3.1 он имел тип string (и, предположительно, имел значение «null»!).
Честно говоря, мои познания в javascript довольно ограничены. Это похоже на ошибку? Если да, то как лучше всего это исправить (я предполагаю, что проверка на укус «нуль»)?
Возможно, у вас есть расширение или файл темы, переопределяющий Swatches js?