• Stars
    star
    268
  • Rank 152,714 (Top 4 %)
  • Language
    PHP
  • License
    GNU General Publi...
  • Created almost 12 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Session manager for WordPress

WP Session Manager Build Status Coverage Status

Session management for WordPress.

Description

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.

Installation

Manual Installation

  1. Upload the entire /wp-session-manager folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the 'Plugins' menu in WordPress.
  3. Use $_SESSION in your code.

Frequently Asked Questions

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.

Screenshots

None

Changelog

4.2.0

  • Update: Change donate link to Patreon vs PayPal.
  • Fix: Disable the initialization routine for cron runs.

4.1.1

  • Fix: Defensively protect deprecated functions with function_exists() checks to avoid conflicts with other systems.
  • Fix: Disable the initialization routine if sessions are disabled.

4.1.0

  • Fix: Add some defense to ensure end users are running the correct version of PHP before loading the system.
  • Fix: Eliminate a race condition where another plugin or the theme created the session first.
  • Fix: Schedule a cron to auto-delete expired sessions.

4.0.0

  • New: Add an object cache based handler to leverage Redis or Memcached if available for faster queries.
  • New: Adopt the Contributor Covenant (v1.4) as the project's official code of conduct.
  • Update: Bump minimum PHP requirements due to out-of-date version deprecations.
  • Fix: Correct a race condition where a session was created before the database table existed.
  • Fix: Correct a race condition where the $wpdb global is not yet set when a session is deleted from the database.
  • Fix: Remove unnecessary integer session ID from the stored data table.

3.0.4

  • Update: Add support for the wp_install hook to create custom table immediately.

3.0.3

  • Fix: Repair code blocks in the readme
  • Fix: Use a more defensive approach to starting sessions in the event another plugin has started one already

3.0.2

  • Fix: Add back in proper array access support for the deprecated WP_Session object.

3.0.1

  • Update: Pull a Sessionz fix

3.0.0

  • Update: Refactor to use Sessionz
  • Update: Add encryption at rest if WP_SESSION_ENC_KEY is set

2.0.2

  • Fix: Wire the data storage migration to a session init hook to ensure it runs.
  • Fix: Clean up sessions when all data is removed.

2.0.1

  • Fix: Repair data storage that was not returning actual stored session data.

2.0.0

  • Update: Use a table instead of options for storing session data.

1.2.2

  • Update: Use regex pattern matching to ensure session IDs are identical going in/out of the DB to account for encoding differences

1.2.1

  • Update: Additional filters for the setcookie parameters
  • Update: Expose the Session ID publicly
  • Fix: Better handling for malformed or broken session names

1.2.0

  • Update: Enhanced plugin organization
  • Update: Added WP_CLI support for session management
  • Update: Add Composer definitions
  • Fix: Break up the deletion of old sessions so queries don't time out under load

1.1.2

  • Fix a race condition where session expiration options could accidentally be set to autoload
  • Make the garbage collection routine run hourly to alleviate long-running tasks on larger sites

1.1.1

  • Fix a bug where session expiration was not properly set upon instantiation

1.1

  • Implement Recursive_ArrayAccess to provide multidimensional array support
  • Better expiration for session data
  • Implement garbage collection to keep the database clean

1.0.2

  • Switch to object persistence rather than transients

1.0.1

  • Changes implementation to avoid the use of a global variable (still registered for convenience)

1.0

  • First version

Upgrade Notice

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

Additional Information

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

More Repositories

1

Redis-Object-Cache

A WordPress object cache that uses Redis for storage.
PHP
198
star
2

sessionz

PHP library for smarter session management in modular applications
PHP
57
star
3

vvv-apache

Apache-based fork of 10up's Varying Vagrant Vagrants configuration
Shell
56
star
4

dynamic-cdn

Dynamic CDN for front-end assets
PHP
36
star
5

grunt-wp-underscores

Create a new Underscores-based theme using grunt-init
JavaScript
29
star
6

speed-logger

Log network speed to a CSV routinely.
JavaScript
28
star
7

WP-Publication-Archive

Allows users to upload, manage, search, and download publications, documents, and similar content (PDF, Power-Point, etc.) in WordPress.
PHP
28
star
8

WP-PowerShell

Windows PowerShell wrapper for WordPress CLI tools.
PowerShell
27
star
9

WP-Core-Contributions-Widget

Display a list of your core contributions to the WordPress project in your WordPress sidebar.
PHP
19
star
10

MVPress

MVC-style refactoring of `get_template_part()` for WordPress.
PHP
19
star
11

openconnect-vm

Vagrant configuration for a SOCKS5 proxy to an OpenConnect VPN.
Shell
19
star
12

secure-xmlrpc

Secure wrapper around WordPress' XML-RPC interface.
PHP
17
star
13

gReader-Library

PHP Library for Google Reader
PHP
14
star
14

dovedi

Time-based One Time Password authentication for WordPress.
PHP
10
star
15

perfpress

CLI performance testing for WordPress
PHP
8
star
16

Stacked

WordPress theme (based on Genesis) and supporting plugin for creating a stacked page layout.
PHP
6
star
17

custom-permalinks

Set custom permalinks on a per-post, per-tag or per-category basis.
PHP
5
star
18

WP-JS-Hooks

A lightweight & efficient EventManager for JS in WP.
JavaScript
4
star
19

secure-messaging

PHP
4
star
20

monkeys

JavaScript
4
star
21

totp

A PHP library for TOTP support in PHP 7.2+.
PHP
4
star
22

eisago

Synchronous vs Concurrent vs Concurrent Parallel data import tutorial
PHP
4
star
23

unmask

Expose support for WordPress
PHP
3
star
24

MiniPress

Automatically concatenate, minify, and cache JavaScript files for performance.
PHP
3
star
25

ericmann.github.io

Public repository for my personal portfolio and resume
HTML
3
star
26

slack-autoresponder

Serverless application for automatically replying to Slack DMs.
JavaScript
3
star
27

JS-Banner-Rotate

JavaScript rotating banner for WordPress
PHP
3
star
28

marmoset

PHP demonstration of the infinite monkey theorem
PHP
2
star
29

htaccess-converter

Convert a CSV of root-relative redirects to a set of .htaccess rewrites.
JavaScript
2
star
30

monkeys-in-the-machine

Monkeys typing Shakespeare ... asynchronously!
CSS
2
star
31

wp-plugin-boilerplate

Basic Plugin Framework
PHP
2
star
32

jQuery-Combobox

Combobox plugin for jQuery
2
star
33

docker

Dockerfiles for production and profit
Shell
2
star
34

Rotating-Image-Widget

Create a jQuery-driven rotating image sidebar widget.
PHP
2
star
35

ircBot

An open-source IRC bot written in PHP. Handles plugins, database support and cron-based tasks.
PHP
1
star
36

itinerant-jenkins

Vagrant configuration for Jenkins
Shell
1
star
37

bibifi

JavaScript
1
star
38

Watermark-Mini-Site-Theme

PHP
1
star
39

date-parse

Parser for arbitrary date formats
PHP
1
star
40

lansare

Project deployment tracking from the command line
JavaScript
1
star
41

EAMann-Theme

Theme for www.eamann.com.
PHP
1
star
42

php-security-tut

PHP
1
star
43

Daily-Meds-Widget

Add a WordPress sidebar widget to hold the latest meditation from dailymedtoday.com
PHP
1
star
44

grunt-modulize

JavaScript
1
star
45

javascript-for-php

JavaScript for PHP Developers
CSS
1
star
46

Watermark-Mini-Site-Plugin

PHP
1
star
47

wordsesh2

WordSesh Code Examples
PHP
1
star
48

rediscover-wordpress

Rediscover the Power of WordPress
CSS
1
star
49

contact-manager

Simple demo contact manager application for php[world] 2018.
PHP
1
star
50

cl-generator

OpenAI GPT-powered cover letter generator
Python
1
star