$cart['user_data']['b_country'] - я так понял это в данные сессии $_SESSION['cart']['user_data'] доступные на всех страницах, а как добраться до $_user_data['b_country'] это тоже должны быть данные сесии.
$_user_data не имеет никакого прямого отношения к сессии. Это временное хранилище тех данных, которые гость вводил, но не закончил, или закончил (не суть). Данные из этого массива передаются в шаблон и отображаются во втором шаге. Как только гость переходит на следующий шаг, данные из второго шага попадают в $cart['user_data'] и доступны также в $_SESSION['cart']['user_data'], куда же без них.
Например? Восстановление идет по ключу. Т.е. сразу отметаем, что в других контроллерах ничего не сломается. А при апдейте профиля в это условие зайдет, только при первом обновлении профиля незарегистрированного пользователя
Подскажите, как можно сделать следующий функционал: на сайте отображается форма с одни полем для ввода email, посетитель вводит в форму email и после этого на указанную почту отправляется сообщение со списком товаров из блока Вы смотрели, сообщение имеет свой шаблон(может периодически меняться)?
Подскажите, как можно сделать следующий функционал: на сайте отображается форма с одни полем для ввода email, посетитель вводит в форму email и после этого на указанную почту отправляется сообщение со списком товаров из блока Вы смотрели, сообщение имеет свой шаблон(может периодически меняться)?
К сожалению, в стандарте подобного функционала нет. Ваши пользователи только могут подписывать на рассылки, содержимое которых вы уже сами формируете.
Хорошо, шаблон для рассылки я могу потом создать и потом отправить письмо. Мне надо сохранить содержимое формы в БД, при этом одно из полей формы формы надо сделать скрытым(как? в нем будут храниться список идишников товаров). А это можно сделать?
На сколько я понял $_user_data не связана с сессией и передать туда данные можно только через precontroller.
А зачем это временное хранилище, если эти данные можно хранить в сессии, есть же готовый массив $_SESSION['cart']['user_data']
$_SESSION['cart']['user_data'] - это данные чисто по корзине
$_SESSION['saved_post_data']['user_data'], откуда попадает значение в $_user_data используется не только на корзине, но и при работе с профилями
Например, вы заполнили форму профиля при оформлении заказа, а оказывается, что аккаунт с таким e-mail уже существует. Введенные данные в $_SESSION['cart'] писать не нужно, но в тоже время отобразить их для пользователя нужно, чтобы он мог подправить данные
Хорошо, шаблон для рассылки я могу потом создать и потом отправить письмо. Мне надо сохранить содержимое формы в БД, при этом одно из полей формы формы надо сделать скрытым(как? в нем будут храниться список идишников товаров). А это можно сделать?
Если мы говорим про встроенный блок для подписки на обновления, то нужно добавить в файл
$_SESSION['cart']['user_data'] - это данные чисто по корзине
$_SESSION['saved_post_data']['user_data'], откуда попадает значение в $_user_data используется не только на корзине, но и при работе с профилями
Например, вы заполнили форму профиля при оформлении заказа, а оказывается, что аккаунт с таким e-mail уже существует. Введенные данные в $_SESSION['cart'] писать не нужно, но в тоже время отобразить их для пользователя нужно, чтобы он мог подправить данные
Вроде в голове начинает прояснятся :-)
Я тут подумал, что информацию о городе лучше хранить в массиве $_SESSION['customer_loc'] там наверняка уже есть страна. Только он какой-то неуловимый, то он есть, то его сразу нет :grin:. Это включено 'disable_localizations' => false.
Я тут подумал, что информацию о городе лучше хранить в массиве $_SESSION['customer_loc'] там наверняка уже есть страна. Только он какой-то неуловимый, то он есть, то его сразу нет :grin:. Это включено 'disable_localizations' => false.
Судя по коду, $_SESSION['customer_loc'] используется для расчета стоимости доставки и обнуляется после первого использования
Заведите свой индекс в $_SESSION. Например $_SESSION['selected_city']. И к нему обращайтесь, в него записывайте. Это будет только ваше значение
Это конечно можно, я предполагал, что есть некий массив данный как-то связанный с местоположением пользователя хотя бы на уровне страны.
В $_SESSION['customer_loc'] хранится информация о текущей локализации, она не имеет прямого отношения к $_SESSION['cart']['user_data']
Кроме того, $_SESSION['cart']['user_data'] почти пустой, если пользователь зашел на сайт, но только бродит по нему, ничего не добавляя в корзину.
А вот $_SESSION['customer_loc'] может определить язык и валюту, которая отображается для этого конкретного покупателя
Ведь язык и валюта не наугад же берутся, наверняка страна то определяется. В моем случае город и, например, область и т.п. являются логическим продолжение той же страны. И если есть специальное хранилище для местоположения, пусть даже на уровне страны, логично будет использовать именно его. Просто я раньше видел этот массив в сессии ($_SESSION['customer_loc']), то сейчас он пропал.
Судя по коду, $_SESSION['customer_loc'] используется для расчета стоимости доставки и обнуляется после первого использования
А вот $_SESSION['customer_loc'] может определить язык и валюту, которая отображается для этого конкретного покупателя
В $_SESSION['customer_loc'] хранится информация о текущей локализации
Ведь язык и валюта не наугад же берутся, наверняка страна то определяется. В моем случае город и, например, область и т.п. являются логическим продолжение той же страны. И если есть специальное хранилище для местоположения, пусть даже на уровне страны, логично будет использовать именно его. Просто я раньше видел этот массив в сессии ($_SESSION['customer_loc']), то сейчас он пропал.
Язык определяется по следующим параметрам (в порядке приоритета)
подключился к unisende, при оформлении заказа есть галочка о согласии на подписку. Хочу чтоб галочка по умолчанию стояла, а то многие не ставят.
Нашёл шаблон в котором выводится и код:
{$list.title}
Что нужно здесь подправить? Самостоятельно удалил функцию и получилось вот так:
{$list.title}
галочка стоит теперь по умолчанию, обрадовался, но смс не отправляются) Помогите.
подключился к unisende, при оформлении заказа есть галочка о согласии на подписку. Хочу чтоб галочка по умолчанию стояла, а то многие не ставят.
Нашёл шаблон в котором выводится и код:
{$list.title}
Что нужно здесь подправить? Самостоятельно удалил функцию и получилось вот так:
{$list.title}
галочка стоит теперь по умолчанию, обрадовался, но смс не отправляются) Помогите.
Всё заработало, просто дольше смски стали идти почемуто.
Есть в настройках витрины вкладка "Регионы", там настройка стран. Вот может это как-то связано с $_SESSION['customer_loc'].
Проверили, нет.
И еще нашел настройки локализации Настройки -> Доставка и налоги -> Локализация - что это?
Это собственно настройка локализаций. Можно настроить несколько локализаций, например, в одной будет доступен только определенный ряд товаров, только одна валюта и один язык. В другой будет работать только другая валюта и, например, оба языка, и другие товары (хотя витрина может быть и одна, но видимостью товаров управляет локализация). Страна покупателя определяется по IP, отсюда определяется локализация, которая настроена для этой страны. Можно добавить пользователю возможность выбирать локализацию.
И все таки как его увидеть то?
Этот параметр использует функция fn_need_shipping_recalculation из файла fn.cart.php. И после обращения нему тут же удаляет. Ненадежная вещь, похоже.
Параметр в принципе используется только при расчете стоимости доставки. Он определяет именно локацию (а не локализацию) покупателя. По этой локации определяется расчет тарифов доставки для ручных способов доставки