У меня проблема со сеансом WordPress. У меня есть файл test.php, который используется для отправки переменной на сайт WordPress. Он имеет условие: «если задана переменная сеанса, пользователь может получить доступ ко всему сайту WordPress, и если переменная сеанса не установлена, пользователь не может получить доступ к сайту».
Когда я отправляю переменную на сайт WordPress с помощью test.php, страница работает нормально, но когда я обращаюсь к внутренним страницам, например, «xyz.com/contact», я получаю сообщение об ошибке Not Access
что означает, что переменная сеанса была очищена на следующей странице ,
Вот файл test.php:
<form action="wordpress-site-link" method="POST"> <input type="submit" name="var" value="go"/> </form>
В файле themes / theme-name / header.php я написал этот код:
session_start(); if(isset($_SESSION['var'])) { echo 'Welcome'; } else if(isset($_POST['var'])) { $_SESSION['var'] = $_POST['var']; } else { echo 'No access...'; exit; }
Просто зацепите функцию «init» в функции functions.php следующим образом:
function ur_theme_start_session() { if (!session_id()) session_start(); } add_action("init", "ur_theme_start_session", 1);
Тогда вы можете использовать переменные сеанса.
Надеюсь, что поможет u.