Code snippets Plugins

Je eigen session variabele in WordPress

Regelmatig heb ik een sessie variabele nodig in verschillende projecten. Een hele simpele manier om dit te doen is wp session manager.

Installeer en activeer de plugin, en je kan hem eenvoudig aanroepen met

$wp_session = WP_Session::get_instance();
$wp_session['user_name'] = 'User Name'; 

Maar als je een plugin ontwikkelt, wil je die niet van teveel andere plugins afhankelijk laten zijn. In sommige gevallen kies ik daar overigens wel voor: bijvoorbeeld de CMB2 plugin voor maatwerk velden in je custom post types. In het geval van een sessie variabele is het benodigde werk zo eenvoudig dat ik het liever zelf inbouw.

Ik zet deze code zelf het liefst in in de vorm van een class, maar je kan het ook zo gebruiken.

Met de init hook wordt de sessie gestart. De wp_logout en wp_login hooks ruimen de sessie weer op. Tenslotte heb je nog twee eenvoudige functies nodig om de sessie te vullen en weer op te halen. Dat is alles!

add_action('init', 'dtc_session_start', 1);
add_action('wp_logout', 'dtc_session_end');
add_action('wp_login', 'dtc_session_end');

function dtc_set_session($key, $value) {
   $_SESSION[$key] = $value;
 }

function dtc_get_session($key){
   $result = FALSE;
   if (isset($_SESSION[$key])) {
      $result = $_SESSION[$key];
   }
   return $result;
 }


function dtc_session_end() {
   session_destroy ();
 }

function dtc_session_start() {
   if(!session_id()) {
      session_start();
   }
 }

Related Articles

Laat een reactie achter