public function clear_kit_cart(){
if ($miniShop2 = $this->modx->getService('miniShop2')) {
$miniShop2->initialize($modx->context->key);
$tmp = $miniShop2->cart->get();
$kit_count = 0;
//поиск комплекта в корзине
foreach ($tmp as $key => $item) {
$kit_id = $item['id'];
if ($this->is_kit($kit_id)) {
if(!$this->kit_available($kit_id)){
//Если есть битый комплект вычищаем его из корзины
unset($tmp[$key]);
$kit_count++;
continue;
}
}
}
$miniShop2->cart->set($tmp);
if($kit_count>0){
$this->modx->setPlaceholder('kitclean',(string)$kit_count);
return (string)$kit_count;
}
}
return true;
}
он отдает в плагин висящий на корзине на событии OnWebPagePrerender
там идет добавление и обработка:
$rkit = $kit->clear_kit_cart();
if($rkit !== true){
$modx->setPlaceholder('kclean',$rkit);
}
то-есть все отрабатывает успешно но на странице пустой плесхолдер всегда:
{set $rkit = $_modx->getPlaceholder('kclean')}
{$rkit}
в чем может быть моя тупость?
Сколько не пользовался OnWebPagePrerender он всегда верно выдавал плейсхолдеры на страницу.
по идее так просто хочу уведомлять пользователя что комплект не просто испарился из корзины а в зависимости от того не пустой ли плейсхолдер говорить что дружок пока ды мял булки все комплекты раскупили и теперь не удивляйся, но вот чет плейсхолдер ничего выдавать не хочет.
Обсуждают сегодня