-- HikaShop version -- : 2.6.0
-- Joomla version -- : 3.4.8
-- PHP version -- : 5.4
Всем привет!
Поздравляю с наступившим Новым годом!
Вдруг кому пригодится
По умолчанию тулбар устроен так, что после входа пользователь может перейти в любую вкладку, таким образом если у вас доставка выведена в отдельный блок, пользователь может его перепрыгнуть и сразу перейти к оплате, тем самым в полученном в админке заказе будут отсутствовать данные по способу доставки.
Проблема связана с использованием компонента JFBT (вход с помощью соц. сетей) который обходит некоторые блокировки.
Видео 1
ИМХО вообще переход к следующему пункту по тулбару как-то не правльно.
Как решил:
Открываем step.php там есть условия для тулбара:
1. вкл. ссылку или нет
2. текущий пункт
3. выполненый пункт
if (count($this->steps) > $this->step+1) $link=true;
foreach($this->steps as $k => $step){
$step=explode('_',trim($step));
$step_name = reset($step);
if($this->display_checkout_bar==2 && $step_name=='end'){
continue;
}
$class = '';
$badgeClass = '';
if($k == $this->step){
$already = false;
$class .= ' hikashop_cart_step_current';
$badgeClass = 'info';
}
if($already){
$class .= ' hikashop_cart_step_finished';
$badgeClass = 'success';
}
Можно добавить условия для не выполненного пункта и потом добавить правила, но решил пойти другим путем:
Правила по умолчанию:
<div class="hikashop_cart_step<?php echo $class;?>">
<span><?php
if($k == $this->step || empty($link)){
echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));
}else{ ?>
<a href="<?php echo hikashop_completeLink('checkout&task=step&step='.$k.$url_itemid);?>">
<?php echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));?>
</a>
<?php }
?></span>
</div><?php
Добавим еще одно условие, тем самым выделим все пункты не завершенные и не текущий:
<div class="hikashop_cart_step<?php echo $class;?>">
<span><?php
if($k == $this->step || empty($link)){
echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));
}elseif ($already){ ?>
<a href="<?php echo hikashop_completeLink('checkout&task=step&step='.$k.$url_itemid);?>">
<?php echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));?>
</a>
<?php
}else{
echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name)); }
?></span>
</div><?php
Итого получаем следующее, пациент не может переходить по тулбару вперед, но может возвращаться если к примеру захочет что-то изменить.
Видео 2
Так как сейчас авторизация через сс практически обязательна, хотелось бы чтобы разработчики озадачились данным вопросом в новом релизе.