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 WordPress website verhuizen of migreren

    Of je nu vanaf je lokale systeem, vanaf een testaccount, of gewoon je vorige hosting bedrijf een website wil overzetten, je kan niet even je database en bestanden overzetten. Ook...
  • 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...
  • Aantal producten per pagina aanpassen in Woocommerce

    Soms is het handig om af te wijken van het standaard aantal producten per rij in Woocommerce. Met dit filter kan dat eenvoudig. Voeg in in je functions.php. add_filter('loop_shop_columns', 'loop_columns');...
  • 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...

Laat een reactie achter