Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $expiration_keys = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%'" );
- $now = current_time( 'timestamp' );
- $expired_sessions = array();
- foreach ( $expiration_keys as $expiration ) {
- // If the session has expired
- if ( $now > intval( $expiration->option_value ) ) {
- // Get the session ID by parsing the option_name
- $session_id = substr( $expiration->option_name, 20 );
- if ( (int) - 1 === (int) $session_id || ! preg_match( '/^[a-f0-9]{32}$/', $session_id ) ) {
- continue;
- }
- $expired_sessions[] = $expiration->option_name;
- $expired_sessions[] = esc_sql( "_wp_session_$session_id" );
- }
- }
- // Delete all expired sessions in a single query
- if ( ! empty( $expired_sessions ) ) {
- $option_names = implode( "','", $expired_sessions );
- $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name IN ('$option_names')" );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement