/** * Get class instance. * * @return WP_Sessions */ public static function instance() { if (!isset(self::$instance)) { self::$instance = new WP_Sessions(); } return self::$instance; }
public function test_session_handler_clean() { $_SESSION['name'] = 'Fredrik'; session_commit(); $session_handler = WP_Sessions::instance()->get_session_handler(); $this->assertSame('name|s:7:"Fredrik";', $session_handler->read(session_id())); global $wpdb; $table = $wpdb->prefix . 'sessions'; $wpdb->update($table, ['timestamp' => time() - HOUR_IN_SECONDS * 25], ['id' => session_id()], ['%d'], ['%s']); $this->assertSame('name|s:7:"Fredrik";', $session_handler->read(session_id())); $session_handler->clean(); $this->assertEmpty($session_handler->read(session_id())); }
<?php /** * Plugin Name: Sessions * Description: Handling sessions in database. * Author: Fredrik Forsmo * Author URI: https://frozzare.com * Version: 1.0.0 */ require_once __DIR__ . '/src/class-wp-session-handler.php'; require_once __DIR__ . '/src/class-wp-sessions.php'; // Bootstrap sessions. WP_Sessions::instance();