× Здесь вы можете свободно общаться на русском языке. Просим отнестись с пониманием к тому, что мы не разговариваем на этом языке и не можем осуществлять поддержку на нем.

Тулбар навигации оформления заказа

  • Posts: 33
  • Thank you received: 2
8 years 10 months ago #225628

-- HikaShop version -- : 2.6.0
-- Joomla version -- : 3.4.8
-- PHP version -- : 5.4

Всем привет!

Поздравляю с наступившим Новым годом! :)

Вдруг кому пригодится ;)

По умолчанию тулбар устроен так, что после входа пользователь может перейти в любую вкладку, таким образом если у вас доставка выведена в отдельный блок, пользователь может его перепрыгнуть и сразу перейти к оплате, тем самым в полученном в админке заказе будут отсутствовать данные по способу доставки.
Проблема связана с использованием компонента JFBT (вход с помощью соц. сетей) который обходит некоторые блокировки.

Видео 1

ИМХО вообще переход к следующему пункту по тулбару как-то не правльно. :blush:
Как решил:
Открываем 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

Так как сейчас авторизация через сс практически обязательна, хотелось бы чтобы разработчики озадачились данным вопросом в новом релизе.

Last edit: 8 years 10 months ago by xtrmutor.

Please Log in or Create an account to join the conversation.

Moderators: progreccor
Time to create page: 0.055 seconds
Powered by Kunena Forum