Session manager for WordPress
GPL-2.0 License
Session management for WordPress.
Adds $_SESSION
functionality to WordPress, leveraging the database where needed to power multi-server installations.
Every visitor, logged in or not, will be issued a session. Session data will be stored in the WordPress database by default to deal with load balancing issues if multiple application servers are being used. In addition, the session collection will also be stored in memory for rapid use within WordPress.
Session data stored in the database can be encrypted at rest for better security.
Manual Installation
/wp-session-manager
folder to the /wp-content/plugins/
directory.$_SESSION
in your code.How do I add session variables?
Merely use the superglobal $_SESSION
array:
$_SESSION['user_name'] = 'User Name'; // A string
$_SESSION['user_contact'] = array( 'email' => '[email protected]' ); // An array
$_SESSION['user_obj'] = new WP_User( 1 ); // An object
How long do session variables live?
This depends on your PHP installation's configuration. Please read the PHP manual for more details on configuration.
Can I use this plugin without creating new tables?
Absolutely! As of version 2.0, this plugin will create a new table for WordPress to store session data. In general, this is more efficient long-term than using options for data storage. However, if your system does not allow creating a table, add the following to wp-config.php
to use the options table instead:
define( 'WP_SESSION_USE_OPTIONS', true );
I get an error saying my PHP version is out of date. Why?
PHP 5.6 was designated end-of-life and stopped receiving security patches in December 2018. PHP 7.0 was also marked end-of-life in December 2018. The minimum version of PHP supported by WP Session Manager is now PHP 7.1.
If your server is running an older version of PHP, the session system will not work! To avoid triggering a PHP error, the plugin will instead output this notice to upgrade and disable itself silently. You won't see a PHP error, but you also won't get session support.
Reach out to your hosting provider or system administrator to upgrade your server.
I get an error saying another plugin is setting up a session. What can I do?
WP Session Manager overrides PHP's default session implementation with its own custom handler. Unfortunately, we can't swap in a new handler if a session is already active. This plugin hooks into the plugins_loaded
hook to set things up as early as possible, but if you have code in another plugin (or your theme) that attempts to invoke session_start()
before WP Session Manager loads, then the custom handler won't work at all.
Inspect your other plugins and try to find the one that's interfering. Then, reach out to the developer to explain the conflict and see if they have a fix.
None
4.2.0
4.1.1
function_exists()
checks to avoid conflicts with other systems.4.1.0
4.0.0
$wpdb
global is not yet set when a session is deleted from the database.3.0.4
wp_install
hook to create custom table immediately.3.0.3
3.0.2
WP_Session
object.3.0.1
3.0.0
WP_SESSION_ENC_KEY
is set2.0.2
2.0.1
2.0.0
1.2.2
1.2.1
setcookie
parameters1.2.0
1.1.2
1.1.1
1.1
1.0.2
1.0.1
1.0
4.0 This version requires PHP 7.1 or higher.
3.0 This version requires PHP 5.6 or higher and uses Composer-powered autoloading to incorporate Sessionz for transparent session management.
2.0
This version will create a new database table for storing session data! If you do not want such a table, please set the WP_SESSION_USE_OPTIONS
constant to true
in wp-config.php
! Upgrading will delete all existing sessions!
1.0
First version
Contributors: ericmann Donate link: https://www.patreon.com/user?u=16402577 Tags: session Requires at least: 4.7 Tested up to: 5.1.1 Requires PHP: 7.1 Stable tag: 4.2.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html