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

  • Een enkele sticky post tonen

    Sticky posts zijn handig als je bijvoorbeeld op je homepage één post wilt tonen die blijft “plakken”, dus niet alleen de meest recente, maar een post of artikel die daar...
  • Je WordPress website vertalen

    Wil je je website meertalig maken? Dat is een ander onderwerp. Dit artikel gaat over het vertalen van thema’s en plugins, die vaak in het Engels zijn. Altijd die “read...
  • Custom images met het juiste WordPress formaat tonen

    Vaak wil je meer afbeeldingen in je website dan alleen de standaard featured image in WordPress. Dit is op zich niet moeilijk. Met Custom Meta Boxes 2 heb je een...
  • Emails sturen in WordPress

    Voor een eenvoudig contactformulier kan ja het beste een plugin gebruiken. Contact form 7 bijvoorbeeld. Maar soms wil je wat meer maatwerk: een met een cronjob gegenereerde email (bijvoorbeeld elke...

Laat een reactie achter