Как использовать сеанс в wordpress при разработке плагинов
Я новичок в написании плагина. У меня есть файл testplugin.php и файл ajax.php..
Мой код в файле testplugin.php
global $session;
print_r($abc); //$abc is array of my data ..
$session['arrayImg']=$abc; //saving data in session
echo $session['arrayImg']; //displayin "Array"
И мой ajax.php состоит из следующего кода
global $session;
$abc = $session['arrayImg'];
print_r ("abs== ".$abc); //displayin "abs== Array"
И если используется session_start();
Я получаю следующую ошибку
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Я просто хочу отправить массив данных из одного файла моего плагина в другой файл...
Ответы
Ответ 1
//На ваш плагин или темы functions.php
function register_session(){
if( !session_id() )
session_start();
}
add_action('init','register_session');
//Чтобы установить данные SESSION
-
$_SESSION['arrayImg'] = $abc;
//Чтобы получить данные о подключенной функции ajax -
function resolve_the_ajax_request(){
if( !session_id())
session_start();
$abc = $_SESSION['arrayImg'];
}
Ответ 2
В моем случае я использовал эту переменную сеанса в активации плагинов. Так было что-то неортодоксальное. Вместо того, чтобы определять мой session_start в hook, я сделал его первой линией в моем плагине:).
Чтобы использовать плагины, как только Wordpress сканирует мой файл, он инициирует сеанс.
В конце я не уничтожаю сеанс при выходе пользователя из системы. Я просто отключил свою переменную. Это на всякий случай, если какой-либо другой плагин также использует сеанс. Если я уничтожу сессию, это может повлиять на другие плагины.
Приветствия.