Как использовать сеанс в wordpress при разработке плагинов - программирование
Подтвердить что ты не робот

Как использовать сеанс в 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 

Я просто хочу отправить массив данных из одного файла моего плагина в другой файл...

4b9b3361

Ответ 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 сканирует мой файл, он инициирует сеанс.

В конце я не уничтожаю сеанс при выходе пользователя из системы. Я просто отключил свою переменную. Это на всякий случай, если какой-либо другой плагин также использует сеанс. Если я уничтожу сессию, это может повлиять на другие плагины.

Приветствия.