Formit, hook и setPlaceholder
Всем добрый день!
При оформлении заказа потребовалось сделать оформление заказана на нескольких страницах (шагах), в итоге на последней странице я пишу в параметрах Formit вызов hook-а:
письма отправляются, идет редирект на страницу с сообщением о номере заказа и сумме, и тут я не знаю как передать плейсхолдеры о заказе.
форму вызываю:
Я в хуке получаю чанк succsess с нужной мне инфой, но как передать его в последнюю страницу (56) не знаю. Создаю в хуке плейсхолдер orderEnd. Сделал снипет который возвращает значение этого плейсхолдера
в странице 56 делаю вызов моего снипета и пишу плейсхолдер в итоге пусто.
Как можно из хука передать данные о заказе оформленные в чанк или просто плейсхолдером на другую старницу?
При оформлении заказа потребовалось сделать оформление заказана на нескольких страницах (шагах), в итоге на последней странице я пишу в параметрах Formit вызов hook-а:
$data = $hook->getValues();
if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
$modx->miniShop = $modx->getService('minishop','miniShop', $modx->getOption('core_path').'components/minishop/model/minishop/', $scriptProperties);
if (!($modx->miniShop instanceof miniShop)) return false;
}
if (!empty($data['delivery'])) {$_SESSION['minishop']['delivery'] = $data['delivery'];}
if (!empty($data['payment'])) {$_SESSION['minishop']['payment'] = $data['payment'];}
$_SESSION['minishop']['address'] = $data;
$data = $modx->miniShop->submitOrder();
//$modx->setLogLevel(modX::LOG_LEVEL_DEBUG);
//$modx->log(xPDO::LOG_LEVEL_DEBUG, 'hook_addQuiqCart was called with the following parameters: '.print_r($data,true));
$modx->setPlaceholder('orderEnd',"My data send");
return true;
письма отправляются, идет редирект на страницу с сообщением о номере заказа и сумме, и тут я не знаю как передать плейсхолдеры о заказе.
форму вызываю:
[[!FormIt? &submitVar=`fst3`
&hooks=`hook_StepFormSend, redirect`
&store=`0` &redirectTo=`56` ]]
Я в хуке получаю чанк succsess с нужной мне инфой, но как передать его в последнюю страницу (56) не знаю. Создаю в хуке плейсхолдер orderEnd. Сделал снипет который возвращает значение этого плейсхолдера
return $modx->getPlaceholder('orderEnd');
в странице 56 делаю вызов моего снипета и пишу плейсхолдер в итоге пусто.
Как можно из хука передать данные о заказе оформленные в чанк или просто плейсхолдером на другую старницу?
Комментарии: 5
Зачем передавать информацию через плейсхолдеры, когда есть $_SESSION?
Василий, насколько я помню Вы делаете unset($_SESSION['minishop']) в функции SubmitOrder перед тем как вернуть результат. Или я что-то упускаю?
Что мешает засунуть нужные тебе данные в $_SESSION['mydata']?
Да точно, проблема решилась, в хуке записываю в сессию результат SubmitOrder и вызывая на странице свой снипет получаю эти данные.
Спасибо.
Спасибо.
перенес выше.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.