2016-02-11 2 views
0

У меня есть установка wordpress на www.example.com У меня есть новый домен (www.promo-example.com), который перенаправляется на www.example.com/promo (но сохраняет url www.promo-example.com)Wordpress redirection - login cookie error

Существует окно входа в систему с формой, которая отправляется с помощью ajax, и если логин успешно завершен, перенаправление с помощью javascript на страницу (www.example.com/only-for- пользователи), которые видны только для зарегистрированных пользователей. Из исходного домена Wordpress устанавливает правильные файлы cookie, и все работает хорошо. НО от нового домена он не устанавливает cookies. Таким образом, логин успешный, JS получает триггер успеха и перенаправляет на эту страницу, но там is_user_logged_in() возвращает false и отправляет его обратно на отдельную страницу входа.

Есть ли способ установить как-то файлы cookie, или какое обходное решение может быть для этой проблемы? То, что я увидел, это то, что на www.promo-example.com нет файлов cookie WordPress, но в оригинале он устанавливает cookie настроек по умолчанию.

+0

You может устанавливать файлы cookie с помощью JS. Использование 'document.cookie =" id = value; path =/";' Или в PHP как: 'setcookie ($ id, $ value);' – pxgamer

ответ

0

Файл cookie установлен для текущего домена с указанным путем /, поэтому, когда сайт перенаправляется в другой домен, cookie не применяется. Это связано с соображениями безопасности, поэтому cookie не будет установлен.

Альтернативой может быть использование уникального идентификатора, созданного на исходной странице, который затем отправляется на новую страницу, которая выбирает это с помощью GET или POST.

Это позволит вам убедиться в том, что они вошли в

Например, вы можете отправить его по почте, как (на вашей первой странице):.

<form action="http://www.example.com/promo" method="POST"> 
    <input name="logged_in" type="text"> 
</form> 

Тогда на вашей /promo странице , он может Получать как:

if (isset($_POST['logged_in'])) { 
    $is_user_logged_in = true; 
} 

Или что-то вдоль этих линий :)