Доброго всем времени суток !
Поступил такой заказ -
Отслеживание электронной торговли с помощью Google Analyticsнекоторое время я был занят - не мог приступить к выполнению - но взялся мой коллега !
Какие маленькие неудобства подстерегают людей на этом шаге ? - Сейчас я постараюсь объяснить !
1. Это не понятно в каком моменте Вы должны поймать эти данные для того что бы отправить ... Google предлагает универсальное решение это данные о заказе пульнуть ему при помощи javascript с машины клиента .
2. Как поймать эти данные на стороне сервака - сформировать из них script а потом отправить их клиенту .
Вот в общем то просто два вопроса ! ))
Давайте пробуем решить это ! - (конечно решено но есть немного теории)
1. - какую ошибку допустил мой коллега - это вот этот пост
Virtuemart 2. Как вывести данные о заказе на странице «Спасибо за заказ»(Кейc #3). (ссылку ставить не даже не буду - кто хочет потерять 10мин. своей жизни Google Вам в помощь )
2- Куда и как нужно смотреть эти данные !
Все ! Практика ! 1 - Идем в плаг оплаты - к примеру стандарт .
2 - в плаге находим метод ( кто не в курсе метод это обычная функция ) plgVmConfirmedOrder
3 - в любом месте этого метода - кидаем
echo '<pre>'; print_r ( $cart ); echo '</pre>'.__FILE__.'Строка '.__LINE__ ;
die(__FILE__ .' '. __LINE__ );
или
echo '<pre>'; print_r ( $order ); echo '</pre>'.__FILE__.'Строка '.__LINE__ ;
die(__FILE__ .' '. __LINE__ );
Все OK! данные мы поймали ! - теперь вопрос как их кинуть на страницу там где написано
Спасибо За Заказ ?
Просто не получится в виде переменной !
Даже если так
$app = Joomla\CMS\Factory::getApplication() ;
$app->input->set('data' , 'exampleVals') ;
ну или что то типа того ! )
Потому что изначально Joomla or VirtueMart - и не думал ни куда переходить ! - может у вас как то по другому будет -но скорее всего что нет !
Тут стоит сделать оговорку : что если у вас отличается адрес корзины от адреса со страницы благодарности то будет редирект !
Если нет то попробуйте передать через приложение ! ($app)
А если есть редирект - то APP вам не поможет !
передать можно через сессию ! -
$Js = alert('GO!')
# Сохраняем в переменную сессии
$session = JFactory::getSession();
$session->set( 'orderSessionVar', json_encode($Js) );
где то так !
Для Тех кому интересно - пишите по возможности постараюсь Вам ответить вовремя !
Но что бы вы не тратили много своего времени вот плагин Скачивайте ! ссылка тут!
https://github.com/gartes/vm_salesdrive/archive/master.zip
Установка :
1 . Копируем ссылку (можно либо через браузер скачать || либо
менеджер расширений вкладка
установить из урл ) кидаем ссылку в импут жмем установить !
2 . менеджер расширений -> плагины -> vmpayment -> vm_salesdrive включаем!
3 . VirtueMart -> способ оплаты создать новый выбираем плагин vm_salesdrive -> сохраняем !
4 . Бежим в файл
/templates/[ВАШ ШАБЛОН]/html/com_virtuemart/cart/order_done.php
если нет то копируем его из
/components/com_virtuemart/views/cart/tmpl/order_done.php
В папку с шаблоном по пути /html/com_virtuemart/cart/order_done.php
и добавляем в этот файл такое перед строчкой
echo $this->html;$sessionData = $session->get( 'orderSessionVar', false ) ;
$session->clear('orderSessionVar');
$Js = json_decode( $sessionData , true ) ;
echo '<script>' . $Js . '</script>' ;
либо можно в хедер кинуть через JFactory::getDocument->addscript()
5 . делаем заказ - на странице благодарности (ни куда не переходя ! ) открываем консоль в браузере проверяем перемену
console.log( window.dataLayer )
Ну или в самой аналитике!
Человек который заплатил мне за эту работу -
Интернет магаз Мой Свет !
Должно все работать ! - кому не понятно обращайтесь !
Всем Удачи в создании сайтов ! )