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 он всегда верно выдавал плейсхолдеры на страницу.
                  
                  
                
по идее так просто хочу уведомлять пользователя что комплект не просто испарился из корзины а в зависимости от того не пустой ли плейсхолдер говорить что дружок пока ды мял булки все комплекты раскупили и теперь не удивляйся, но вот чет плейсхолдер ничего выдавать не хочет.
Обсуждают сегодня