How to use session in wordpress in plugin developm

2020-02-08 11:17发布

I am new to write a plugin ..I am having a testplugin.php file and a ajax.php file ..

My code in testplugin.php is

global $session;

print_r($abc); //$abc is array of my data ..

$session['arrayImg']=$abc; //saving data in session 

echo  $session['arrayImg']; //displayin "Array"

And my ajax.php consists of following code

global $session;

$abc = $session['arrayImg'];

print_r ("abs== ".$abc); //displayin "abs== Array"

And if use session_start();

I get following error

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 

I just want to send array of data from one file of my plugin to another file ...

2条回答
唯我独甜
2楼-- · 2020-02-08 11:42

// On your plugin or themes functions.php

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

// To set a SESSION data -

$_SESSION['arrayImg'] = $abc;

// To get the data on ajax hooked function -

function resolve_the_ajax_request(){
    if( !session_id())
        session_start();

    $abc = $_SESSION['arrayImg'];
}
查看更多
贪生不怕死
3楼-- · 2020-02-08 12:03

In my case I was using that session variable in plugin activation as well. So did something unorthodox. Instead of defining my session_start in a hook I made it as the first line in my plugin :).

To heck with plugins, as soon as wordpress scans through my file it initiates the session.

At the end I do not destroy the session on user logout. I simply unset my variable. This is to just in case if some other plugin is also using session. If I destroy session it may affect other plugins.

Cheers.

查看更多
登录 后发表回答