2016-04-17 3 views
1

У меня есть целевая страница из моего сайта, с субдоменом, позволяет сказать:WooCommerce сессия

lp.test.com 

На этой странице у меня есть кнопка «купить», который прекрасно работает, со ссылкой (пример):

http://destination.com/?add-to-cart=10960&mobile=yes 

Когда я нажимаю на эту кнопку, она достает нас к корзине destination.com и добавляет товар в корзину - как я уже сказал - он отлично работает.

Я хочу, чтобы получить предыдущий URL-адрес страницы и отобразить его на странице корзины. Я пробовал 2 способа:
строка сеанса и запроса.

Я вижу, что WooCommerce удаляет любую строку запроса, поэтому URL-адрес - только destination.com/cart, без строки после этого.

Так что я попытался сессии:

На первой странице я положить на первой линии:

<?php 
    session_start(); 
    $_SESSION['previous_location'] = 'mobile'; 
?> 

На втором (назначения) страницы, я поставил:

$previous_location = $_SESSION['previous_location']; 
echo 'Session: '. $previous_location; 

Но и это не сработало. Эхо пусто, оно печатает только 'Session: '.

Моя цель - узнать, пришел ли клиент к тележке с внешней целевой страницы, если он это сделал - я хочу отображать другие get_header() моего Wordpress.

ответ

1

(обновление)

Вы должны использовать этот код в файл functions.php, чтобы проверить, если session_start(); еще не используется WordPress/WooCommerce:

function registering_my_session() { 
    if(!session_id()) 
    session_start(); 
} 
add_action('init', 'registering_my_session'); 

Таким образом, вы будете только нужно на второй (целевой) странице:

<?php 
echo 'Session: '. $_SESSION['previous_location']; 
?> 

на этот раз вы получите для $previous_location; ==>мобильного


Другим способом может быть использовать PHP печенье.

На первой странице (в начале вашего PHP документа):

<?php setcookie('previous_location', 'mobile', time() + 365*24*3600), null 

, нуль, ложь, правда); ?>

на второй странице:

<?php echo $_COOKIE['previous_location']; ?> 
+0

Спасибо! И мне нужно «закончить» сеанс на первой странице? – Oshrib

+0

вы можете использовать 'session_destroy()', но если пользователь закроет страницу или перейдет на другую страницу без 'session_start();' cession будет уничтожен самой. – LoicTheAztec

+0

Потому что я все равно пуст $ previous_location – Oshrib

Смежные вопросы