Passed
Push — master ( def67b...f4bb32 )
by Stiofan
08:12 queued 04:13
created
includes/libraries/wp-session/wp-session.php 1 patch
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@  discard block
 block discarded – undo
16 16
  * @return int
17 17
  */
18 18
 function wp_session_cache_expire() {
19
-	$wp_session = WP_Session::get_instance();
19
+    $wp_session = WP_Session::get_instance();
20 20
 
21
-	return $wp_session->cache_expiration();
21
+    return $wp_session->cache_expiration();
22 22
 }
23 23
 
24 24
 /**
25 25
  * Alias of wp_session_write_close()
26 26
  */
27 27
 function wp_session_commit() {
28
-	wp_session_write_close();
28
+    wp_session_write_close();
29 29
 }
30 30
 
31 31
 /**
@@ -34,9 +34,9 @@  discard block
 block discarded – undo
34 34
  * @param string $data
35 35
  */
36 36
 function wp_session_decode( $data ) {
37
-	$wp_session = WP_Session::get_instance();
37
+    $wp_session = WP_Session::get_instance();
38 38
 
39
-	return $wp_session->json_in( $data );
39
+    return $wp_session->json_in( $data );
40 40
 }
41 41
 
42 42
 /**
@@ -45,9 +45,9 @@  discard block
 block discarded – undo
45 45
  * @return string
46 46
  */
47 47
 function wp_session_encode() {
48
-	$wp_session = WP_Session::get_instance();
48
+    $wp_session = WP_Session::get_instance();
49 49
 
50
-	return $wp_session->json_out();
50
+    return $wp_session->json_out();
51 51
 }
52 52
 
53 53
 /**
@@ -58,11 +58,11 @@  discard block
 block discarded – undo
58 58
  * @return bool
59 59
  */
60 60
 function wp_session_regenerate_id( $delete_old_session = false ) {
61
-	$wp_session = WP_Session::get_instance();
61
+    $wp_session = WP_Session::get_instance();
62 62
 
63
-	$wp_session->regenerate_id( $delete_old_session );
63
+    $wp_session->regenerate_id( $delete_old_session );
64 64
 
65
-	return true;
65
+    return true;
66 66
 }
67 67
 
68 68
 /**
@@ -73,13 +73,13 @@  discard block
 block discarded – undo
73 73
  * @return bool
74 74
  */
75 75
 function wp_session_start() {
76
-	$wp_session = WP_Session::get_instance();
77
-	do_action( 'wp_session_start' );
76
+    $wp_session = WP_Session::get_instance();
77
+    do_action( 'wp_session_start' );
78 78
 
79
-	return $wp_session->session_started();
79
+    return $wp_session->session_started();
80 80
 }
81 81
 if ( ! defined( 'WP_CLI' ) || false === WP_CLI ) {
82
-	add_action( 'plugins_loaded', 'wp_session_start' );
82
+    add_action( 'plugins_loaded', 'wp_session_start' );
83 83
 }
84 84
 
85 85
 /**
@@ -88,35 +88,35 @@  discard block
 block discarded – undo
88 88
  * @return int
89 89
  */
90 90
 function wp_session_status() {
91
-	$wp_session = WP_Session::get_instance();
91
+    $wp_session = WP_Session::get_instance();
92 92
 
93
-	if ( $wp_session->session_started() ) {
94
-		return PHP_SESSION_ACTIVE;
95
-	}
93
+    if ( $wp_session->session_started() ) {
94
+        return PHP_SESSION_ACTIVE;
95
+    }
96 96
 
97
-	return PHP_SESSION_NONE;
97
+    return PHP_SESSION_NONE;
98 98
 }
99 99
 
100 100
 /**
101 101
  * Unset all session variables.
102 102
  */
103 103
 function wp_session_unset() {
104
-	$wp_session = WP_Session::get_instance();
104
+    $wp_session = WP_Session::get_instance();
105 105
 
106
-	$wp_session->reset();
106
+    $wp_session->reset();
107 107
 }
108 108
 
109 109
 /**
110 110
  * Write session data and end session
111 111
  */
112 112
 function wp_session_write_close() {
113
-	$wp_session = WP_Session::get_instance();
113
+    $wp_session = WP_Session::get_instance();
114 114
 
115
-	$wp_session->write_data();
116
-	do_action( 'wp_session_commit' );
115
+    $wp_session->write_data();
116
+    do_action( 'wp_session_commit' );
117 117
 }
118 118
 if ( ! defined( 'WP_CLI' ) || false === WP_CLI ) {
119
-	add_action( 'shutdown', 'wp_session_write_close' );
119
+    add_action( 'shutdown', 'wp_session_write_close' );
120 120
 }
121 121
 
122 122
 /**
@@ -127,24 +127,24 @@  discard block
 block discarded – undo
127 127
  * of a scheduled task or cron job.
128 128
  */
129 129
 function wp_session_cleanup() {
130
-	if ( defined( 'WP_SETUP_CONFIG' ) ) {
131
-		return;
132
-	}
133
-
134
-	if ( ! defined( 'WP_INSTALLING' ) ) {
135
-		/**
136
-		 * Determine the size of each batch for deletion.
137
-		 *
138
-		 * @param int
139
-		 */
140
-		$batch_size = apply_filters( 'wp_session_delete_batch_size', 1000 );
141
-
142
-		// Delete a batch of old sessions
143
-		WP_Session_Utils::delete_old_sessions( $batch_size );
144
-	}
145
-
146
-	// Allow other plugins to hook in to the garbage collection process.
147
-	do_action( 'wp_session_cleanup' );
130
+    if ( defined( 'WP_SETUP_CONFIG' ) ) {
131
+        return;
132
+    }
133
+
134
+    if ( ! defined( 'WP_INSTALLING' ) ) {
135
+        /**
136
+         * Determine the size of each batch for deletion.
137
+         *
138
+         * @param int
139
+         */
140
+        $batch_size = apply_filters( 'wp_session_delete_batch_size', 1000 );
141
+
142
+        // Delete a batch of old sessions
143
+        WP_Session_Utils::delete_old_sessions( $batch_size );
144
+    }
145
+
146
+    // Allow other plugins to hook in to the garbage collection process.
147
+    do_action( 'wp_session_cleanup' );
148 148
 }
149 149
 add_action( 'wp_session_garbage_collection', 'wp_session_cleanup' );
150 150
 
@@ -152,8 +152,8 @@  discard block
 block discarded – undo
152 152
  * Register the garbage collector as a twice daily event.
153 153
  */
154 154
 function wp_session_register_garbage_collection() {
155
-	if ( ! wp_next_scheduled( 'wp_session_garbage_collection' ) ) {
156
-		wp_schedule_event( time(), 'hourly', 'wp_session_garbage_collection' );
157
-	}
155
+    if ( ! wp_next_scheduled( 'wp_session_garbage_collection' ) ) {
156
+        wp_schedule_event( time(), 'hourly', 'wp_session_garbage_collection' );
157
+    }
158 158
 }
159 159
 add_action( 'wp', 'wp_session_register_garbage_collection' );
Please login to merge, or discard this patch.
includes/libraries/wp-session/class-wp-session.php 1 patch
Indentation   +205 added lines, -205 removed lines patch added patch discarded remove patch
@@ -17,215 +17,215 @@
 block discarded – undo
17 17
  * @since   3.7.0
18 18
  */
19 19
 final class WP_Session extends Recursive_ArrayAccess {
20
-	/**
21
-	 * ID of the current session.
22
-	 *
23
-	 * @var string
24
-	 */
25
-	public $session_id;
26
-
27
-	/**
28
-	 * Unix timestamp when session expires.
29
-	 *
30
-	 * @var int
31
-	 */
32
-	protected $expires;
33
-
34
-	/**
35
-	 * Unix timestamp indicating when the expiration time needs to be reset.
36
-	 *
37
-	 * @var int
38
-	 */
39
-	protected $exp_variant;
40
-
41
-	/**
42
-	 * Singleton instance.
43
-	 *
44
-	 * @var bool|WP_Session
45
-	 */
46
-	private static $instance = false;
47
-
48
-	/**
49
-	 * Retrieve the current session instance.
50
-	 *
51
-	 * @param bool $session_id Session ID from which to populate data.
52
-	 *
53
-	 * @return bool|WP_Session
54
-	 */
55
-	public static function get_instance() {
56
-		if ( ! self::$instance ) {
57
-			self::$instance = new self();
58
-		}
59
-
60
-		return self::$instance;
61
-	}
62
-
63
-	/**
64
-	 * Default constructor.
65
-	 * Will rebuild the session collection from the given session ID if it exists. Otherwise, will
66
-	 * create a new session with that ID.
67
-	 *
68
-	 * @param $session_id
69
-	 * @uses apply_filters Calls `wp_session_expiration` to determine how long until sessions expire.
70
-	 */
71
-	protected function __construct() {
72
-		if ( isset( $_COOKIE[WP_SESSION_COOKIE] ) ) {
73
-			$cookie = stripslashes( $_COOKIE[WP_SESSION_COOKIE] );
74
-			$cookie_crumbs = explode( '||', $cookie );
20
+    /**
21
+     * ID of the current session.
22
+     *
23
+     * @var string
24
+     */
25
+    public $session_id;
26
+
27
+    /**
28
+     * Unix timestamp when session expires.
29
+     *
30
+     * @var int
31
+     */
32
+    protected $expires;
33
+
34
+    /**
35
+     * Unix timestamp indicating when the expiration time needs to be reset.
36
+     *
37
+     * @var int
38
+     */
39
+    protected $exp_variant;
40
+
41
+    /**
42
+     * Singleton instance.
43
+     *
44
+     * @var bool|WP_Session
45
+     */
46
+    private static $instance = false;
47
+
48
+    /**
49
+     * Retrieve the current session instance.
50
+     *
51
+     * @param bool $session_id Session ID from which to populate data.
52
+     *
53
+     * @return bool|WP_Session
54
+     */
55
+    public static function get_instance() {
56
+        if ( ! self::$instance ) {
57
+            self::$instance = new self();
58
+        }
59
+
60
+        return self::$instance;
61
+    }
62
+
63
+    /**
64
+     * Default constructor.
65
+     * Will rebuild the session collection from the given session ID if it exists. Otherwise, will
66
+     * create a new session with that ID.
67
+     *
68
+     * @param $session_id
69
+     * @uses apply_filters Calls `wp_session_expiration` to determine how long until sessions expire.
70
+     */
71
+    protected function __construct() {
72
+        if ( isset( $_COOKIE[WP_SESSION_COOKIE] ) ) {
73
+            $cookie = stripslashes( $_COOKIE[WP_SESSION_COOKIE] );
74
+            $cookie_crumbs = explode( '||', $cookie );
75 75
 
76 76
             $this->session_id = preg_replace("/[^A-Za-z0-9_]/", '', $cookie_crumbs[0] );
77 77
             $this->expires = absint( $cookie_crumbs[1] );
78 78
             $this->exp_variant = absint( $cookie_crumbs[2] );
79 79
 
80
-			// Update the session expiration if we're past the variant time
81
-			if ( time() > $this->exp_variant ) {
82
-				$this->set_expiration();
83
-				delete_option( "_wp_session_expires_{$this->session_id}" );
84
-				add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
85
-			}
86
-		} else {
87
-			$this->session_id = WP_Session_Utils::generate_id();
88
-			$this->set_expiration();
89
-		}
90
-
91
-		$this->read_data();
92
-
93
-		$this->set_cookie();
94
-
95
-	}
96
-
97
-	/**
98
-	 * Set both the expiration time and the expiration variant.
99
-	 *
100
-	 * If the current time is below the variant, we don't update the session's expiration time. If it's
101
-	 * greater than the variant, then we update the expiration time in the database.  This prevents
102
-	 * writing to the database on every page load for active sessions and only updates the expiration
103
-	 * time if we're nearing when the session actually expires.
104
-	 *
105
-	 * By default, the expiration time is set to 30 minutes.
106
-	 * By default, the expiration variant is set to 24 minutes.
107
-	 *
108
-	 * As a result, the session expiration time - at a maximum - will only be written to the database once
109
-	 * every 24 minutes.  After 30 minutes, the session will have been expired. No cookie will be sent by
110
-	 * the browser, and the old session will be queued for deletion by the garbage collector.
111
-	 *
112
-	 * @uses apply_filters Calls `wp_session_expiration_variant` to get the max update window for session data.
113
-	 * @uses apply_filters Calls `wp_session_expiration` to get the standard expiration time for sessions.
114
-	 */
115
-	protected function set_expiration() {
116
-		$this->exp_variant = time() + (int) apply_filters( 'wp_session_expiration_variant', 24 * 60 );
117
-		$this->expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
118
-	}
119
-
120
-	/**
121
-	* Set the session cookie
122
-	* @uses apply_filters Calls `wp_session_cookie_secure` to set the $secure parameter of setcookie()
123
-	* @uses apply_filters Calls `wp_session_cookie_httponly` to set the $httponly parameter of setcookie()
124
-	*/
125
-	protected function set_cookie() {
126
-		if ( !defined( 'WPI_TESTING_MODE' ) ) {
127
-			try {
128
-				$secure = apply_filters('wp_session_cookie_secure', false);
129
-				$httponly = apply_filters('wp_session_cookie_httponly', false);
130
-				setcookie( WP_SESSION_COOKIE, $this->session_id . '||' . $this->expires . '||' . $this->exp_variant , $this->expires, COOKIEPATH, COOKIE_DOMAIN, $secure, $httponly );
131
-			} catch(Exception $e) {
132
-				error_log( 'Set Cookie Error: ' . $e->getMessage() );
133
-			}
134
-		}
135
-	}
136
-
137
-	/**
138
-	 * Read data from a transient for the current session.
139
-	 *
140
-	 * Automatically resets the expiration time for the session transient to some time in the future.
141
-	 *
142
-	 * @return array
143
-	 */
144
-	protected function read_data() {
145
-		$this->container = get_option( "_wp_session_{$this->session_id}", array() );
146
-
147
-		return $this->container;
148
-	}
149
-
150
-	/**
151
-	 * Write the data from the current session to the data storage system.
152
-	 */
153
-	public function write_data() {
154
-		$option_key = "_wp_session_{$this->session_id}";
80
+            // Update the session expiration if we're past the variant time
81
+            if ( time() > $this->exp_variant ) {
82
+                $this->set_expiration();
83
+                delete_option( "_wp_session_expires_{$this->session_id}" );
84
+                add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
85
+            }
86
+        } else {
87
+            $this->session_id = WP_Session_Utils::generate_id();
88
+            $this->set_expiration();
89
+        }
90
+
91
+        $this->read_data();
92
+
93
+        $this->set_cookie();
94
+
95
+    }
96
+
97
+    /**
98
+     * Set both the expiration time and the expiration variant.
99
+     *
100
+     * If the current time is below the variant, we don't update the session's expiration time. If it's
101
+     * greater than the variant, then we update the expiration time in the database.  This prevents
102
+     * writing to the database on every page load for active sessions and only updates the expiration
103
+     * time if we're nearing when the session actually expires.
104
+     *
105
+     * By default, the expiration time is set to 30 minutes.
106
+     * By default, the expiration variant is set to 24 minutes.
107
+     *
108
+     * As a result, the session expiration time - at a maximum - will only be written to the database once
109
+     * every 24 minutes.  After 30 minutes, the session will have been expired. No cookie will be sent by
110
+     * the browser, and the old session will be queued for deletion by the garbage collector.
111
+     *
112
+     * @uses apply_filters Calls `wp_session_expiration_variant` to get the max update window for session data.
113
+     * @uses apply_filters Calls `wp_session_expiration` to get the standard expiration time for sessions.
114
+     */
115
+    protected function set_expiration() {
116
+        $this->exp_variant = time() + (int) apply_filters( 'wp_session_expiration_variant', 24 * 60 );
117
+        $this->expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
118
+    }
119
+
120
+    /**
121
+     * Set the session cookie
122
+     * @uses apply_filters Calls `wp_session_cookie_secure` to set the $secure parameter of setcookie()
123
+     * @uses apply_filters Calls `wp_session_cookie_httponly` to set the $httponly parameter of setcookie()
124
+     */
125
+    protected function set_cookie() {
126
+        if ( !defined( 'WPI_TESTING_MODE' ) ) {
127
+            try {
128
+                $secure = apply_filters('wp_session_cookie_secure', false);
129
+                $httponly = apply_filters('wp_session_cookie_httponly', false);
130
+                setcookie( WP_SESSION_COOKIE, $this->session_id . '||' . $this->expires . '||' . $this->exp_variant , $this->expires, COOKIEPATH, COOKIE_DOMAIN, $secure, $httponly );
131
+            } catch(Exception $e) {
132
+                error_log( 'Set Cookie Error: ' . $e->getMessage() );
133
+            }
134
+        }
135
+    }
136
+
137
+    /**
138
+     * Read data from a transient for the current session.
139
+     *
140
+     * Automatically resets the expiration time for the session transient to some time in the future.
141
+     *
142
+     * @return array
143
+     */
144
+    protected function read_data() {
145
+        $this->container = get_option( "_wp_session_{$this->session_id}", array() );
146
+
147
+        return $this->container;
148
+    }
149
+
150
+    /**
151
+     * Write the data from the current session to the data storage system.
152
+     */
153
+    public function write_data() {
154
+        $option_key = "_wp_session_{$this->session_id}";
155 155
 		
156
-		if ( false === get_option( $option_key ) ) {
157
-			add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
158
-			add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
159
-		} else {
160
-			delete_option( "_wp_session_{$this->session_id}" );
161
-			add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
162
-		}
163
-	}
164
-
165
-	/**
166
-	 * Output the current container contents as a JSON-encoded string.
167
-	 *
168
-	 * @return string
169
-	 */
170
-	public function json_out() {
171
-		return json_encode( $this->container );
172
-	}
173
-
174
-	/**
175
-	 * Decodes a JSON string and, if the object is an array, overwrites the session container with its contents.
176
-	 *
177
-	 * @param string $data
178
-	 *
179
-	 * @return bool
180
-	 */
181
-	public function json_in( $data ) {
182
-		$array = json_decode( $data );
183
-
184
-		if ( is_array( $array ) ) {
185
-			$this->container = $array;
186
-			return true;
187
-		}
188
-
189
-		return false;
190
-	}
191
-
192
-	/**
193
-	 * Regenerate the current session's ID.
194
-	 *
195
-	 * @param bool $delete_old Flag whether or not to delete the old session data from the server.
196
-	 */
197
-	public function regenerate_id( $delete_old = false ) {
198
-		if ( $delete_old ) {
199
-			delete_option( "_wp_session_{$this->session_id}" );
200
-		}
201
-
202
-		$this->session_id = WP_Session_Utils::generate_id();
203
-
204
-		$this->set_cookie();
205
-	}
206
-
207
-	/**
208
-	 * Check if a session has been initialized.
209
-	 *
210
-	 * @return bool
211
-	 */
212
-	public function session_started() {
213
-		return !!self::$instance;
214
-	}
215
-
216
-	/**
217
-	 * Return the read-only cache expiration value.
218
-	 *
219
-	 * @return int
220
-	 */
221
-	public function cache_expiration() {
222
-		return $this->expires;
223
-	}
224
-
225
-	/**
226
-	 * Flushes all session variables.
227
-	 */
228
-	public function reset() {
229
-		$this->container = array();
230
-	}
156
+        if ( false === get_option( $option_key ) ) {
157
+            add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
158
+            add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
159
+        } else {
160
+            delete_option( "_wp_session_{$this->session_id}" );
161
+            add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
162
+        }
163
+    }
164
+
165
+    /**
166
+     * Output the current container contents as a JSON-encoded string.
167
+     *
168
+     * @return string
169
+     */
170
+    public function json_out() {
171
+        return json_encode( $this->container );
172
+    }
173
+
174
+    /**
175
+     * Decodes a JSON string and, if the object is an array, overwrites the session container with its contents.
176
+     *
177
+     * @param string $data
178
+     *
179
+     * @return bool
180
+     */
181
+    public function json_in( $data ) {
182
+        $array = json_decode( $data );
183
+
184
+        if ( is_array( $array ) ) {
185
+            $this->container = $array;
186
+            return true;
187
+        }
188
+
189
+        return false;
190
+    }
191
+
192
+    /**
193
+     * Regenerate the current session's ID.
194
+     *
195
+     * @param bool $delete_old Flag whether or not to delete the old session data from the server.
196
+     */
197
+    public function regenerate_id( $delete_old = false ) {
198
+        if ( $delete_old ) {
199
+            delete_option( "_wp_session_{$this->session_id}" );
200
+        }
201
+
202
+        $this->session_id = WP_Session_Utils::generate_id();
203
+
204
+        $this->set_cookie();
205
+    }
206
+
207
+    /**
208
+     * Check if a session has been initialized.
209
+     *
210
+     * @return bool
211
+     */
212
+    public function session_started() {
213
+        return !!self::$instance;
214
+    }
215
+
216
+    /**
217
+     * Return the read-only cache expiration value.
218
+     *
219
+     * @return int
220
+     */
221
+    public function cache_expiration() {
222
+        return $this->expires;
223
+    }
224
+
225
+    /**
226
+     * Flushes all session variables.
227
+     */
228
+    public function reset() {
229
+        $this->container = array();
230
+    }
231 231
 }
Please login to merge, or discard this patch.
includes/libraries/wp-session/class-recursive-arrayaccess.php 1 patch
Indentation   +191 added lines, -191 removed lines patch added patch discarded remove patch
@@ -17,197 +17,197 @@
 block discarded – undo
17 17
  * @since 3.7.0
18 18
  */
19 19
 class Recursive_ArrayAccess implements ArrayAccess, Iterator, Countable {
20
-	/**
21
-	 * Internal data collection.
22
-	 *
23
-	 * @var array
24
-	 */
25
-	protected $container = array();
26
-
27
-	/**
28
-	 * Flag whether or not the internal collection has been changed.
29
-	 *
30
-	 * @var bool
31
-	 */
32
-	protected $dirty = false;
33
-
34
-	/**
35
-	 * Default object constructor.
36
-	 *
37
-	 * @param array $data
38
-	 */
39
-	protected function __construct( $data = array() ) {
40
-		foreach ( $data as $key => $value ) {
41
-			$this[ $key ] = $value;
42
-		}
43
-	}
44
-
45
-	/**
46
-	 * Allow deep copies of objects
47
-	 */
48
-	public function __clone() {
49
-		foreach ( $this->container as $key => $value ) {
50
-			if ( $value instanceof self ) {
51
-				$this[ $key ] = clone $value;
52
-			}
53
-		}
54
-	}
55
-
56
-	/**
57
-	 * Output the data container as a multidimensional array.
58
-	 *
59
-	 * @return array
60
-	 */
61
-	public function toArray() {
62
-		$data = $this->container;
63
-		foreach ( $data as $key => $value ) {
64
-			if ( $value instanceof self ) {
65
-				$data[ $key ] = $value->toArray();
66
-			}
67
-		}
68
-		return $data;
69
-	}
70
-
71
-	/*****************************************************************/
72
-	/*                   ArrayAccess Implementation                  */
73
-	/*****************************************************************/
74
-
75
-	/**
76
-	 * Whether a offset exists
77
-	 *
78
-	 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
79
-	 *
80
-	 * @param mixed $offset An offset to check for.
81
-	 *
82
-	 * @return boolean true on success or false on failure.
83
-	 */
84
-	public function offsetExists( $offset ) {
85
-		return isset( $this->container[ $offset ]) ;
86
-	}
87
-
88
-	/**
89
-	 * Offset to retrieve
90
-	 *
91
-	 * @link http://php.net/manual/en/arrayaccess.offsetget.php
92
-	 *
93
-	 * @param mixed $offset The offset to retrieve.
94
-	 *
95
-	 * @return mixed Can return all value types.
96
-	 */
97
-	public function offsetGet( $offset ) {
98
-		return isset( $this->container[ $offset ] ) ? $this->container[ $offset ] : null;
99
-	}
100
-
101
-	/**
102
-	 * Offset to set
103
-	 *
104
-	 * @link http://php.net/manual/en/arrayaccess.offsetset.php
105
-	 *
106
-	 * @param mixed $offset The offset to assign the value to.
107
-	 * @param mixed $value  The value to set.
108
-	 *
109
-	 * @return void
110
-	 */
111
-	public function offsetSet( $offset, $data ) {
112
-		if ( is_array( $data ) ) {
113
-			$data = new self( $data );
114
-		}
115
-		if ( $offset === null ) { // don't forget this!
116
-			$this->container[] = $data;
117
-		} else {
118
-			$this->container[ $offset ] = $data;
119
-		}
120
-
121
-		$this->dirty = true;
122
-	}
123
-
124
-	/**
125
-	 * Offset to unset
126
-	 *
127
-	 * @link http://php.net/manual/en/arrayaccess.offsetunset.php
128
-	 *
129
-	 * @param mixed $offset The offset to unset.
130
-	 *
131
-	 * @return void
132
-	 */
133
-	public function offsetUnset( $offset ) {
134
-		unset( $this->container[ $offset ] );
135
-
136
-		$this->dirty = true;
137
-	}
20
+    /**
21
+     * Internal data collection.
22
+     *
23
+     * @var array
24
+     */
25
+    protected $container = array();
26
+
27
+    /**
28
+     * Flag whether or not the internal collection has been changed.
29
+     *
30
+     * @var bool
31
+     */
32
+    protected $dirty = false;
33
+
34
+    /**
35
+     * Default object constructor.
36
+     *
37
+     * @param array $data
38
+     */
39
+    protected function __construct( $data = array() ) {
40
+        foreach ( $data as $key => $value ) {
41
+            $this[ $key ] = $value;
42
+        }
43
+    }
44
+
45
+    /**
46
+     * Allow deep copies of objects
47
+     */
48
+    public function __clone() {
49
+        foreach ( $this->container as $key => $value ) {
50
+            if ( $value instanceof self ) {
51
+                $this[ $key ] = clone $value;
52
+            }
53
+        }
54
+    }
55
+
56
+    /**
57
+     * Output the data container as a multidimensional array.
58
+     *
59
+     * @return array
60
+     */
61
+    public function toArray() {
62
+        $data = $this->container;
63
+        foreach ( $data as $key => $value ) {
64
+            if ( $value instanceof self ) {
65
+                $data[ $key ] = $value->toArray();
66
+            }
67
+        }
68
+        return $data;
69
+    }
70
+
71
+    /*****************************************************************/
72
+    /*                   ArrayAccess Implementation                  */
73
+    /*****************************************************************/
74
+
75
+    /**
76
+     * Whether a offset exists
77
+     *
78
+     * @link http://php.net/manual/en/arrayaccess.offsetexists.php
79
+     *
80
+     * @param mixed $offset An offset to check for.
81
+     *
82
+     * @return boolean true on success or false on failure.
83
+     */
84
+    public function offsetExists( $offset ) {
85
+        return isset( $this->container[ $offset ]) ;
86
+    }
87
+
88
+    /**
89
+     * Offset to retrieve
90
+     *
91
+     * @link http://php.net/manual/en/arrayaccess.offsetget.php
92
+     *
93
+     * @param mixed $offset The offset to retrieve.
94
+     *
95
+     * @return mixed Can return all value types.
96
+     */
97
+    public function offsetGet( $offset ) {
98
+        return isset( $this->container[ $offset ] ) ? $this->container[ $offset ] : null;
99
+    }
100
+
101
+    /**
102
+     * Offset to set
103
+     *
104
+     * @link http://php.net/manual/en/arrayaccess.offsetset.php
105
+     *
106
+     * @param mixed $offset The offset to assign the value to.
107
+     * @param mixed $value  The value to set.
108
+     *
109
+     * @return void
110
+     */
111
+    public function offsetSet( $offset, $data ) {
112
+        if ( is_array( $data ) ) {
113
+            $data = new self( $data );
114
+        }
115
+        if ( $offset === null ) { // don't forget this!
116
+            $this->container[] = $data;
117
+        } else {
118
+            $this->container[ $offset ] = $data;
119
+        }
120
+
121
+        $this->dirty = true;
122
+    }
123
+
124
+    /**
125
+     * Offset to unset
126
+     *
127
+     * @link http://php.net/manual/en/arrayaccess.offsetunset.php
128
+     *
129
+     * @param mixed $offset The offset to unset.
130
+     *
131
+     * @return void
132
+     */
133
+    public function offsetUnset( $offset ) {
134
+        unset( $this->container[ $offset ] );
135
+
136
+        $this->dirty = true;
137
+    }
138 138
 	
139 139
 	
140
-	/*****************************************************************/
141
-	/*                     Iterator Implementation                   */
142
-	/*****************************************************************/
143
-
144
-	/**
145
-	 * Current position of the array.
146
-	 *
147
-	 * @link http://php.net/manual/en/iterator.current.php
148
-	 *
149
-	 * @return mixed
150
-	 */
151
-	public function current() {
152
-		return current( $this->container );
153
-	}
154
-
155
-	/**
156
-	 * Key of the current element.
157
-	 *
158
-	 * @link http://php.net/manual/en/iterator.key.php
159
-	 *
160
-	 * @return mixed
161
-	 */
162
-	public function key() {
163
-		return key( $this->container );
164
-	}
165
-
166
-	/**
167
-	 * Move the internal point of the container array to the next item
168
-	 *
169
-	 * @link http://php.net/manual/en/iterator.next.php
170
-	 *
171
-	 * @return void
172
-	 */
173
-	public function next() {
174
-		next( $this->container );
175
-	}
176
-
177
-	/**
178
-	 * Rewind the internal point of the container array.
179
-	 *
180
-	 * @link http://php.net/manual/en/iterator.rewind.php
181
-	 *
182
-	 * @return void
183
-	 */
184
-	public function rewind() {
185
-		reset( $this->container );
186
-	}
187
-
188
-	/**
189
-	 * Is the current key valid?
190
-	 *
191
-	 * @link http://php.net/manual/en/iterator.rewind.php
192
-	 *
193
-	 * @return bool
194
-	 */
195
-	public function valid() {
196
-		return $this->offsetExists( $this->key() );
197
-	}
198
-
199
-	/*****************************************************************/
200
-	/*                    Countable Implementation                   */
201
-	/*****************************************************************/
202
-
203
-	/**
204
-	 * Get the count of elements in the container array.
205
-	 *
206
-	 * @link http://php.net/manual/en/countable.count.php
207
-	 *
208
-	 * @return int
209
-	 */
210
-	public function count() {
211
-		return count( $this->container );
212
-	}
140
+    /*****************************************************************/
141
+    /*                     Iterator Implementation                   */
142
+    /*****************************************************************/
143
+
144
+    /**
145
+     * Current position of the array.
146
+     *
147
+     * @link http://php.net/manual/en/iterator.current.php
148
+     *
149
+     * @return mixed
150
+     */
151
+    public function current() {
152
+        return current( $this->container );
153
+    }
154
+
155
+    /**
156
+     * Key of the current element.
157
+     *
158
+     * @link http://php.net/manual/en/iterator.key.php
159
+     *
160
+     * @return mixed
161
+     */
162
+    public function key() {
163
+        return key( $this->container );
164
+    }
165
+
166
+    /**
167
+     * Move the internal point of the container array to the next item
168
+     *
169
+     * @link http://php.net/manual/en/iterator.next.php
170
+     *
171
+     * @return void
172
+     */
173
+    public function next() {
174
+        next( $this->container );
175
+    }
176
+
177
+    /**
178
+     * Rewind the internal point of the container array.
179
+     *
180
+     * @link http://php.net/manual/en/iterator.rewind.php
181
+     *
182
+     * @return void
183
+     */
184
+    public function rewind() {
185
+        reset( $this->container );
186
+    }
187
+
188
+    /**
189
+     * Is the current key valid?
190
+     *
191
+     * @link http://php.net/manual/en/iterator.rewind.php
192
+     *
193
+     * @return bool
194
+     */
195
+    public function valid() {
196
+        return $this->offsetExists( $this->key() );
197
+    }
198
+
199
+    /*****************************************************************/
200
+    /*                    Countable Implementation                   */
201
+    /*****************************************************************/
202
+
203
+    /**
204
+     * Get the count of elements in the container array.
205
+     *
206
+     * @link http://php.net/manual/en/countable.count.php
207
+     *
208
+     * @return int
209
+     */
210
+    public function count() {
211
+        return count( $this->container );
212
+    }
213 213
 }
Please login to merge, or discard this patch.
includes/libraries/wp-session/class-wp-session-utils.php 1 patch
Indentation   +130 added lines, -130 removed lines patch added patch discarded remove patch
@@ -6,134 +6,134 @@
 block discarded – undo
6 6
  * THIS CLASS SHOULD NEVER BE INSTANTIATED
7 7
  */
8 8
 class WP_Session_Utils {
9
-	/**
10
-	 * Count the total sessions in the database.
11
-	 *
12
-	 * @global wpdb $wpdb
13
-	 *
14
-	 * @return int
15
-	 */
16
-	public static function count_sessions() {
17
-		global $wpdb;
18
-
19
-		$query = "SELECT COUNT(*) FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%'";
20
-
21
-		/**
22
-		 * Filter the query in case tables are non-standard.
23
-		 *
24
-		 * @param string $query Database count query
25
-		 */
26
-		$query = apply_filters( 'wp_session_count_query', $query );
27
-
28
-		$sessions = $wpdb->get_var( $query );
29
-
30
-		return absint( $sessions );
31
-	}
32
-
33
-	/**
34
-	 * Create a new, random session in the database.
35
-	 *
36
-	 * @param null|string $date
37
-	 */
38
-	public static function create_dummy_session( $date = null ) {
39
-		// Generate our date
40
-		if ( null !== $date ) {
41
-			$time = strtotime( $date );
42
-
43
-			if ( false === $time ) {
44
-				$date = null;
45
-			} else {
46
-				$expires = date( 'U', strtotime( $date ) );
47
-			}
48
-		}
49
-
50
-		// If null was passed, or if the string parsing failed, fall back on a default
51
-		if ( null === $date ) {
52
-			/**
53
-			 * Filter the expiration of the session in the database
54
-			 *
55
-			 * @param int
56
-			 */
57
-			$expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
58
-		}
59
-
60
-		$session_id = self::generate_id();
61
-
62
-		// Store the session
63
-		add_option( "_wp_session_{$session_id}", array(), '', 'no' );
64
-		add_option( "_wp_session_expires_{$session_id}", $expires, '', 'no' );
65
-	}
66
-
67
-	/**
68
-	 * Delete old sessions from the database.
69
-	 *
70
-	 * @param int $limit Maximum number of sessions to delete.
71
-	 *
72
-	 * @global wpdb $wpdb
73
-	 *
74
-	 * @return int Sessions deleted.
75
-	 */
76
-	public static function delete_old_sessions( $limit = 1000 ) {
77
-		global $wpdb;
78
-
79
-		$limit = absint( $limit );
80
-		$keys = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%' ORDER BY option_value ASC LIMIT 0, {$limit}" );
81
-
82
-		$now = time();
83
-		$expired = array();
84
-		$count = 0;
85
-
86
-		foreach( $keys as $expiration ) {
87
-			$key = $expiration->option_name;
88
-			$expires = $expiration->option_value;
89
-
90
-			if ( $now > $expires ) {
91
-				$session_id = preg_replace("/[^A-Za-z0-9_]/", '', substr( $key, 20 ) );
92
-
93
-				$expired[] = $key;
94
-				$expired[] = "_wp_session_{$session_id}";
95
-
96
-				$count += 1;
97
-			}
98
-		}
99
-
100
-		// Delete expired sessions
101
-		if ( ! empty( $expired ) ) {
102
-		    $placeholders = array_fill( 0, count( $expired ), '%s' );
103
-		    $format = implode( ', ', $placeholders );
104
-		    $query = "DELETE FROM $wpdb->options WHERE option_name IN ($format)";
105
-
106
-		    $prepared = $wpdb->prepare( $query, $expired );
107
-			$wpdb->query( $prepared );
108
-		}
109
-
110
-		return $count;
111
-	}
112
-
113
-	/**
114
-	 * Remove all sessions from the database, regardless of expiration.
115
-	 *
116
-	 * @global wpdb $wpdb
117
-	 *
118
-	 * @return int Sessions deleted
119
-	 */
120
-	public static function delete_all_sessions() {
121
-		global $wpdb;
122
-
123
-		$count = $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '_wp_session_%'" );
124
-
125
-		return (int) ( $count / 2 );
126
-	}
127
-
128
-	/**
129
-	 * Generate a new, random session ID.
130
-	 *
131
-	 * @return string
132
-	 */
133
-	public static function generate_id() {
134
-		require_once( ABSPATH . 'wp-includes/class-phpass.php' );
135
-		$hash = new PasswordHash( 8, false );
136
-
137
-		return md5( $hash->get_random_bytes( 32 ) );
138
-	}
9
+    /**
10
+     * Count the total sessions in the database.
11
+     *
12
+     * @global wpdb $wpdb
13
+     *
14
+     * @return int
15
+     */
16
+    public static function count_sessions() {
17
+        global $wpdb;
18
+
19
+        $query = "SELECT COUNT(*) FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%'";
20
+
21
+        /**
22
+         * Filter the query in case tables are non-standard.
23
+         *
24
+         * @param string $query Database count query
25
+         */
26
+        $query = apply_filters( 'wp_session_count_query', $query );
27
+
28
+        $sessions = $wpdb->get_var( $query );
29
+
30
+        return absint( $sessions );
31
+    }
32
+
33
+    /**
34
+     * Create a new, random session in the database.
35
+     *
36
+     * @param null|string $date
37
+     */
38
+    public static function create_dummy_session( $date = null ) {
39
+        // Generate our date
40
+        if ( null !== $date ) {
41
+            $time = strtotime( $date );
42
+
43
+            if ( false === $time ) {
44
+                $date = null;
45
+            } else {
46
+                $expires = date( 'U', strtotime( $date ) );
47
+            }
48
+        }
49
+
50
+        // If null was passed, or if the string parsing failed, fall back on a default
51
+        if ( null === $date ) {
52
+            /**
53
+             * Filter the expiration of the session in the database
54
+             *
55
+             * @param int
56
+             */
57
+            $expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
58
+        }
59
+
60
+        $session_id = self::generate_id();
61
+
62
+        // Store the session
63
+        add_option( "_wp_session_{$session_id}", array(), '', 'no' );
64
+        add_option( "_wp_session_expires_{$session_id}", $expires, '', 'no' );
65
+    }
66
+
67
+    /**
68
+     * Delete old sessions from the database.
69
+     *
70
+     * @param int $limit Maximum number of sessions to delete.
71
+     *
72
+     * @global wpdb $wpdb
73
+     *
74
+     * @return int Sessions deleted.
75
+     */
76
+    public static function delete_old_sessions( $limit = 1000 ) {
77
+        global $wpdb;
78
+
79
+        $limit = absint( $limit );
80
+        $keys = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%' ORDER BY option_value ASC LIMIT 0, {$limit}" );
81
+
82
+        $now = time();
83
+        $expired = array();
84
+        $count = 0;
85
+
86
+        foreach( $keys as $expiration ) {
87
+            $key = $expiration->option_name;
88
+            $expires = $expiration->option_value;
89
+
90
+            if ( $now > $expires ) {
91
+                $session_id = preg_replace("/[^A-Za-z0-9_]/", '', substr( $key, 20 ) );
92
+
93
+                $expired[] = $key;
94
+                $expired[] = "_wp_session_{$session_id}";
95
+
96
+                $count += 1;
97
+            }
98
+        }
99
+
100
+        // Delete expired sessions
101
+        if ( ! empty( $expired ) ) {
102
+            $placeholders = array_fill( 0, count( $expired ), '%s' );
103
+            $format = implode( ', ', $placeholders );
104
+            $query = "DELETE FROM $wpdb->options WHERE option_name IN ($format)";
105
+
106
+            $prepared = $wpdb->prepare( $query, $expired );
107
+            $wpdb->query( $prepared );
108
+        }
109
+
110
+        return $count;
111
+    }
112
+
113
+    /**
114
+     * Remove all sessions from the database, regardless of expiration.
115
+     *
116
+     * @global wpdb $wpdb
117
+     *
118
+     * @return int Sessions deleted
119
+     */
120
+    public static function delete_all_sessions() {
121
+        global $wpdb;
122
+
123
+        $count = $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '_wp_session_%'" );
124
+
125
+        return (int) ( $count / 2 );
126
+    }
127
+
128
+    /**
129
+     * Generate a new, random session ID.
130
+     *
131
+     * @return string
132
+     */
133
+    public static function generate_id() {
134
+        require_once( ABSPATH . 'wp-includes/class-phpass.php' );
135
+        $hash = new PasswordHash( 8, false );
136
+
137
+        return md5( $hash->get_random_bytes( 32 ) );
138
+    }
139 139
 } 
140 140
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-wpinv-session.php 1 patch
Indentation   +274 added lines, -274 removed lines patch added patch discarded remove patch
@@ -8,291 +8,291 @@
 block discarded – undo
8 8
  * @since 1.0.0
9 9
  */
10 10
 class WPInv_Session {
11
-	/**
12
-	 * Holds our session data.
13
-	 *
14
-	 * @var array
15
-	 * @access private
16
-	 * @since 1.0.0
17
-	 */
18
-	private $session;
19
-
20
-	/**
21
-	 * Whether to use PHP $_SESSION or WP_Session.
22
-	 *
23
-	 * @var bool
24
-	 * @access private
25
-	 * @since 1.0.0
26
-	 */
27
-	private $use_php_sessions = false;
28
-
29
-	/**
30
-	 * Session index prefix.
31
-	 *
32
-	 * @var string
33
-	 * @access private
34
-	 * @since 1.0.0
35
-	 */
36
-	private $prefix = '';
37
-
38
-	/**
39
-	 * Get things started.
40
-	 *
41
-	 * Defines our WP_Session constants, includes the necessary libraries and
42
-	 * retrieves the WP Session instance.
43
-	 *
44
-	 * @since 1.0.0
45
-	 */
46
-	public function __construct() {
47
-		$this->use_php_sessions = $this->use_php_sessions();
48
-
49
-		if ( $this->use_php_sessions ) {
50
-			if ( is_multisite() ) {
51
-				$this->prefix = '_' . get_current_blog_id();
52
-			}
53
-
54
-			// Use PHP SESSION (must be enabled via the WPINV_USE_PHP_SESSIONS constant)
55
-			add_action( 'init', array( $this, 'maybe_start_session' ), -2 );
56
-		} else {
57
-			// Use WP_Session (default)
58
-			if ( !defined( 'WP_SESSION_COOKIE' ) ) {
59
-				define( 'WP_SESSION_COOKIE', 'wpinv_wp_session' );
60
-			}
61
-
62
-			if ( !class_exists( 'Recursive_ArrayAccess' ) ) {
63
-				require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-recursive-arrayaccess.php';
64
-			}
11
+    /**
12
+     * Holds our session data.
13
+     *
14
+     * @var array
15
+     * @access private
16
+     * @since 1.0.0
17
+     */
18
+    private $session;
19
+
20
+    /**
21
+     * Whether to use PHP $_SESSION or WP_Session.
22
+     *
23
+     * @var bool
24
+     * @access private
25
+     * @since 1.0.0
26
+     */
27
+    private $use_php_sessions = false;
28
+
29
+    /**
30
+     * Session index prefix.
31
+     *
32
+     * @var string
33
+     * @access private
34
+     * @since 1.0.0
35
+     */
36
+    private $prefix = '';
37
+
38
+    /**
39
+     * Get things started.
40
+     *
41
+     * Defines our WP_Session constants, includes the necessary libraries and
42
+     * retrieves the WP Session instance.
43
+     *
44
+     * @since 1.0.0
45
+     */
46
+    public function __construct() {
47
+        $this->use_php_sessions = $this->use_php_sessions();
48
+
49
+        if ( $this->use_php_sessions ) {
50
+            if ( is_multisite() ) {
51
+                $this->prefix = '_' . get_current_blog_id();
52
+            }
53
+
54
+            // Use PHP SESSION (must be enabled via the WPINV_USE_PHP_SESSIONS constant)
55
+            add_action( 'init', array( $this, 'maybe_start_session' ), -2 );
56
+        } else {
57
+            // Use WP_Session (default)
58
+            if ( !defined( 'WP_SESSION_COOKIE' ) ) {
59
+                define( 'WP_SESSION_COOKIE', 'wpinv_wp_session' );
60
+            }
61
+
62
+            if ( !class_exists( 'Recursive_ArrayAccess' ) ) {
63
+                require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-recursive-arrayaccess.php';
64
+            }
65 65
             
66
-			if ( !class_exists( 'WP_Session_Utils' ) ) {
67
-				require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-wp-session-utils.php';
68
-			}
66
+            if ( !class_exists( 'WP_Session_Utils' ) ) {
67
+                require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-wp-session-utils.php';
68
+            }
69 69
             
70
-			if ( defined( 'WP_CLI' ) && WP_CLI && !class_exists( 'WP_Session_Command' ) ) {
71
-				require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/wp-cli.php';
72
-			}
73
-
74
-			if ( !class_exists( 'WP_Session' ) ) {
75
-				require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-wp-session.php';
76
-				require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/wp-session.php';
77
-			}
78
-
79
-			add_filter( 'wp_session_expiration_variant', array( $this, 'set_expiration_variant_time' ), 99999 );
80
-			add_filter( 'wp_session_expiration', array( $this, 'set_expiration_time' ), 99999 );
81
-		}
82
-
83
-		if ( empty( $this->session ) && ! $this->use_php_sessions ) {
84
-			add_action( 'plugins_loaded', array( $this, 'init' ), -1 );
85
-		} else {
86
-			add_action( 'init', array( $this, 'init' ), -1 );
87
-		}
88
-	}
89
-
90
-	/**
91
-	 * Setup the WP_Session instance.
92
-	 *
93
-	 * @access public
94
-	 * @since 1.0.0
95
-	 * @return void
96
-	 */
97
-	public function init() {
98
-		if ( $this->use_php_sessions ) {
99
-			$this->session = isset( $_SESSION['wpi' . $this->prefix ] ) && is_array( $_SESSION['wpi' . $this->prefix ] ) ? $_SESSION['wpi' . $this->prefix ] : array();
100
-		} else {
101
-			$this->session = WP_Session::get_instance();
102
-		}
103
-
104
-		return $this->session;
105
-	}
106
-
107
-	/**
108
-	 * Retrieve session ID.
109
-	 *
110
-	 * @access public
111
-	 * @since 1.0.0
112
-	 * @return string Session ID
113
-	 */
114
-	public function get_id() {
115
-		if ( $this->use_php_sessions ) {
116
-			$session_id = !empty( $_SESSION ) && function_exists( 'session_id' ) ? session_id() : NULL;
117
-		} else {
118
-			$session_id = !empty( $this->session ) && isset( $this->session->session_id ) ? $this->session->session_id : NULL;
119
-		}
120
-		return $session_id;
121
-	}
122
-
123
-	/**
124
-	 * Retrieve a session variable.
125
-	 *
126
-	 * @access public
127
-	 * @since 1.0.0
128
-	 * @param string $key Session key
129
-	 * @return string Session variable
130
-	 */
131
-	public function get( $key ) {
132
-		$key = sanitize_key( $key );
133
-		return isset( $this->session[ $key ] ) ? maybe_unserialize( $this->session[ $key ] ) : false;
134
-	}
135
-
136
-	/**
137
-	 * Set a session variable
138
-	 *
139
-	 * @since 1.0.0
140
-	 *
141
-	 * @param string $key Session key
142
-	 * @param integer $value Session variable
143
-	 * @return string Session variable
144
-	 */
145
-	public function set( $key, $value ) {
146
-		$key = sanitize_key( $key );
147
-
148
-		if ( is_array( $value ) ) {
149
-			$this->session[ $key ] = maybe_serialize( $value );
150
-		} else {
151
-			$this->session[ $key ] = $value;
152
-		}
153
-
154
-		if ( $this->use_php_sessions ) {
155
-			$_SESSION['wpi' . $this->prefix ] = $this->session;
156
-		}
157
-
158
-		return $this->session[ $key ];
159
-	}
70
+            if ( defined( 'WP_CLI' ) && WP_CLI && !class_exists( 'WP_Session_Command' ) ) {
71
+                require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/wp-cli.php';
72
+            }
73
+
74
+            if ( !class_exists( 'WP_Session' ) ) {
75
+                require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/class-wp-session.php';
76
+                require_once WPINV_PLUGIN_DIR . 'includes/libraries/wp-session/wp-session.php';
77
+            }
78
+
79
+            add_filter( 'wp_session_expiration_variant', array( $this, 'set_expiration_variant_time' ), 99999 );
80
+            add_filter( 'wp_session_expiration', array( $this, 'set_expiration_time' ), 99999 );
81
+        }
82
+
83
+        if ( empty( $this->session ) && ! $this->use_php_sessions ) {
84
+            add_action( 'plugins_loaded', array( $this, 'init' ), -1 );
85
+        } else {
86
+            add_action( 'init', array( $this, 'init' ), -1 );
87
+        }
88
+    }
89
+
90
+    /**
91
+     * Setup the WP_Session instance.
92
+     *
93
+     * @access public
94
+     * @since 1.0.0
95
+     * @return void
96
+     */
97
+    public function init() {
98
+        if ( $this->use_php_sessions ) {
99
+            $this->session = isset( $_SESSION['wpi' . $this->prefix ] ) && is_array( $_SESSION['wpi' . $this->prefix ] ) ? $_SESSION['wpi' . $this->prefix ] : array();
100
+        } else {
101
+            $this->session = WP_Session::get_instance();
102
+        }
103
+
104
+        return $this->session;
105
+    }
106
+
107
+    /**
108
+     * Retrieve session ID.
109
+     *
110
+     * @access public
111
+     * @since 1.0.0
112
+     * @return string Session ID
113
+     */
114
+    public function get_id() {
115
+        if ( $this->use_php_sessions ) {
116
+            $session_id = !empty( $_SESSION ) && function_exists( 'session_id' ) ? session_id() : NULL;
117
+        } else {
118
+            $session_id = !empty( $this->session ) && isset( $this->session->session_id ) ? $this->session->session_id : NULL;
119
+        }
120
+        return $session_id;
121
+    }
122
+
123
+    /**
124
+     * Retrieve a session variable.
125
+     *
126
+     * @access public
127
+     * @since 1.0.0
128
+     * @param string $key Session key
129
+     * @return string Session variable
130
+     */
131
+    public function get( $key ) {
132
+        $key = sanitize_key( $key );
133
+        return isset( $this->session[ $key ] ) ? maybe_unserialize( $this->session[ $key ] ) : false;
134
+    }
135
+
136
+    /**
137
+     * Set a session variable
138
+     *
139
+     * @since 1.0.0
140
+     *
141
+     * @param string $key Session key
142
+     * @param integer $value Session variable
143
+     * @return string Session variable
144
+     */
145
+    public function set( $key, $value ) {
146
+        $key = sanitize_key( $key );
147
+
148
+        if ( is_array( $value ) ) {
149
+            $this->session[ $key ] = maybe_serialize( $value );
150
+        } else {
151
+            $this->session[ $key ] = $value;
152
+        }
153
+
154
+        if ( $this->use_php_sessions ) {
155
+            $_SESSION['wpi' . $this->prefix ] = $this->session;
156
+        }
157
+
158
+        return $this->session[ $key ];
159
+    }
160 160
 	
161
-	/**
162
-	 * Unset a session variable.
163
-	 *
164
-	 * @since 1.0.0
165
-	 *
166
-	 * @param string|array $key Session key.
167
-	 * @param integer $value Session variable.
168
-	 * @return string Session variable.
169
-	 */
170
-	public function un_set( $key ) {
171
-		if ( empty( $key ) ) {
172
-			return false;
173
-		}
161
+    /**
162
+     * Unset a session variable.
163
+     *
164
+     * @since 1.0.0
165
+     *
166
+     * @param string|array $key Session key.
167
+     * @param integer $value Session variable.
168
+     * @return string Session variable.
169
+     */
170
+    public function un_set( $key ) {
171
+        if ( empty( $key ) ) {
172
+            return false;
173
+        }
174 174
 		
175
-		if ( is_array( $key ) ) {
176
-			foreach ($key as $index) {
177
-				$index = sanitize_key( $index );
175
+        if ( is_array( $key ) ) {
176
+            foreach ($key as $index) {
177
+                $index = sanitize_key( $index );
178 178
 			
179
-				if ( $index && isset( $this->session[ $index ] ) ) {
180
-					unset( $this->session[ $index ] );
181
-				}
182
-			}
183
-		} else {
184
-			$key = sanitize_key( $key );
179
+                if ( $index && isset( $this->session[ $index ] ) ) {
180
+                    unset( $this->session[ $index ] );
181
+                }
182
+            }
183
+        } else {
184
+            $key = sanitize_key( $key );
185 185
 			
186
-			if ( isset( $this->session[ $key ] ) ) {
187
-				unset( $this->session[ $key ] );
188
-			}
189
-		}
186
+            if ( isset( $this->session[ $key ] ) ) {
187
+                unset( $this->session[ $key ] );
188
+            }
189
+        }
190 190
 
191
-		if ( $this->use_php_sessions ) {
192
-			$_SESSION['wpi' . $this->prefix ] = $this->session;
193
-		}
191
+        if ( $this->use_php_sessions ) {
192
+            $_SESSION['wpi' . $this->prefix ] = $this->session;
193
+        }
194 194
 
195
-		return true;
196
-	}
195
+        return true;
196
+    }
197 197
 	
198
-	/**
199
-	 * Check a session variable is set or not.
200
-	 *
201
-	 * @since 1.0.0
202
-	 *
203
-	 * @param string $key Session key.
204
-	 * @param integer $value Session variable.
205
-	 * @return string Session variable.
206
-	 */
207
-	public function is_set( $key ) {
208
-		$key = sanitize_key( $key );
198
+    /**
199
+     * Check a session variable is set or not.
200
+     *
201
+     * @since 1.0.0
202
+     *
203
+     * @param string $key Session key.
204
+     * @param integer $value Session variable.
205
+     * @return string Session variable.
206
+     */
207
+    public function is_set( $key ) {
208
+        $key = sanitize_key( $key );
209 209
 		
210
-		if ( empty( $key ) ) {
211
-			return false;
212
-		}
213
-
214
-		if ( isset( $this->session[ $key ] ) ) {
215
-			return true;
216
-		}
217
-
218
-		return false;
219
-	}
220
-
221
-	/**
222
-	 * Force the cookie expiration variant time to 23 hours
223
-	 *
224
-	 * @access public
225
-	 * @since 1.0.0
226
-	 * @param int $exp Default expiration (1 hour)
227
-	 * @return int
228
-	 */
229
-	public function set_expiration_variant_time( $exp ) {
230
-		return ( 30 * 60 * 23 );
231
-	}
232
-
233
-	/**
234
-	 * Force the cookie expiration time to 24 hours
235
-	 *
236
-	 * @access public
237
-	 * @since 1.0.0
238
-	 * @param int $exp Default expiration (1 hour)
239
-	 * @return int
240
-	 */
241
-	public function set_expiration_time( $exp ) {
242
-		return ( 30 * 60 * 24 );
243
-	}
244
-
245
-	/**
246
-	 * Starts a new session if one hasn't started yet.
247
-	 *
248
-	 * @return boolean
249
-	 * Checks to see if the server supports PHP sessions
250
-	 * or if the WPINV_USE_PHP_SESSIONS constant is defined
251
-	 *
252
-	 * @access public
253
-	 * @since 1.0.0
254
-	 * @return boolean $ret True if we are using PHP sessions, false otherwise
255
-	 */
256
-	public function use_php_sessions() {
257
-		$ret = false;
258
-
259
-		// If the database variable is already set, no need to run autodetection
260
-		$wpinv_use_php_sessions = (bool)get_option( 'wpinv_use_php_sessions' );
261
-
262
-		if (!$wpinv_use_php_sessions ) {
263
-			// Attempt to detect if the server supports PHP sessions
264
-			if ( function_exists( 'session_start' ) && ! ini_get( 'safe_mode' ) ) {
265
-				$this->set( 'wpinv_use_php_sessions', 1 );
210
+        if ( empty( $key ) ) {
211
+            return false;
212
+        }
213
+
214
+        if ( isset( $this->session[ $key ] ) ) {
215
+            return true;
216
+        }
217
+
218
+        return false;
219
+    }
220
+
221
+    /**
222
+     * Force the cookie expiration variant time to 23 hours
223
+     *
224
+     * @access public
225
+     * @since 1.0.0
226
+     * @param int $exp Default expiration (1 hour)
227
+     * @return int
228
+     */
229
+    public function set_expiration_variant_time( $exp ) {
230
+        return ( 30 * 60 * 23 );
231
+    }
232
+
233
+    /**
234
+     * Force the cookie expiration time to 24 hours
235
+     *
236
+     * @access public
237
+     * @since 1.0.0
238
+     * @param int $exp Default expiration (1 hour)
239
+     * @return int
240
+     */
241
+    public function set_expiration_time( $exp ) {
242
+        return ( 30 * 60 * 24 );
243
+    }
244
+
245
+    /**
246
+     * Starts a new session if one hasn't started yet.
247
+     *
248
+     * @return boolean
249
+     * Checks to see if the server supports PHP sessions
250
+     * or if the WPINV_USE_PHP_SESSIONS constant is defined
251
+     *
252
+     * @access public
253
+     * @since 1.0.0
254
+     * @return boolean $ret True if we are using PHP sessions, false otherwise
255
+     */
256
+    public function use_php_sessions() {
257
+        $ret = false;
258
+
259
+        // If the database variable is already set, no need to run autodetection
260
+        $wpinv_use_php_sessions = (bool)get_option( 'wpinv_use_php_sessions' );
261
+
262
+        if (!$wpinv_use_php_sessions ) {
263
+            // Attempt to detect if the server supports PHP sessions
264
+            if ( function_exists( 'session_start' ) && ! ini_get( 'safe_mode' ) ) {
265
+                $this->set( 'wpinv_use_php_sessions', 1 );
266 266
 				
267
-				if ( $this->get( 'wpinv_use_php_sessions' ) ) {
268
-					$ret = true;
269
-
270
-					// Set the database option
271
-					update_option( 'wpinv_use_php_sessions', true );
272
-				}
273
-			}
274
-		} else {
275
-			$ret = $wpinv_use_php_sessions;
276
-		}
277
-
278
-		// Enable or disable PHP Sessions based on the WPINV_USE_PHP_SESSIONS constant
279
-		if ( defined( 'WPINV_USE_PHP_SESSIONS' ) && WPINV_USE_PHP_SESSIONS ) {
280
-			$ret = true;
281
-		} else if ( defined( 'WPINV_USE_PHP_SESSIONS' ) && ! WPINV_USE_PHP_SESSIONS ) {
282
-			$ret = false;
283
-		}
284
-
285
-		return (bool) apply_filters( 'wpinv_use_php_sessions', $ret );
286
-	}
287
-
288
-	/**
289
-	 * Starts a new session if one hasn't started yet.
290
-	 */
291
-	public function maybe_start_session() {
292
-		if ( !session_id() && !headers_sent() ) {
293
-			session_start();
294
-		}
295
-	}
267
+                if ( $this->get( 'wpinv_use_php_sessions' ) ) {
268
+                    $ret = true;
269
+
270
+                    // Set the database option
271
+                    update_option( 'wpinv_use_php_sessions', true );
272
+                }
273
+            }
274
+        } else {
275
+            $ret = $wpinv_use_php_sessions;
276
+        }
277
+
278
+        // Enable or disable PHP Sessions based on the WPINV_USE_PHP_SESSIONS constant
279
+        if ( defined( 'WPINV_USE_PHP_SESSIONS' ) && WPINV_USE_PHP_SESSIONS ) {
280
+            $ret = true;
281
+        } else if ( defined( 'WPINV_USE_PHP_SESSIONS' ) && ! WPINV_USE_PHP_SESSIONS ) {
282
+            $ret = false;
283
+        }
284
+
285
+        return (bool) apply_filters( 'wpinv_use_php_sessions', $ret );
286
+    }
287
+
288
+    /**
289
+     * Starts a new session if one hasn't started yet.
290
+     */
291
+    public function maybe_start_session() {
292
+        if ( !session_id() && !headers_sent() ) {
293
+            session_start();
294
+        }
295
+    }
296 296
 }
297 297
 
298 298
 global $wpi_session;
Please login to merge, or discard this patch.
includes/gateways/authorizenet/Authorize.Net-XML/AuthnetXML.class.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
     const EXCEPTION_CURL = 10;
41 41
 
42 42
     private $ch;
43
-	private $login;
43
+    private $login;
44 44
     private $response;
45 45
     private $response_xml;
46 46
     private $results;
@@ -48,9 +48,9 @@  discard block
 block discarded – undo
48 48
     private $url;
49 49
     private $xml;
50 50
 
51
-	public function __construct($login, $transkey, $test = self::USE_PRODUCTION_SERVER)
52
-	{
53
-		$login    = trim($login);
51
+    public function __construct($login, $transkey, $test = self::USE_PRODUCTION_SERVER)
52
+    {
53
+        $login    = trim($login);
54 54
         $transkey = trim($transkey);
55 55
         if (empty($login) || empty($transkey))
56 56
         {
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
 
64 64
         $subdomain = ($test) ? 'apitest' : 'api';
65 65
         $this->url = 'https://' . $subdomain . '.authorize.net/xml/v1/request.api';
66
-	}
66
+    }
67 67
 
68 68
     /**
69 69
      * remove XML response namespaces
@@ -78,9 +78,9 @@  discard block
 block discarded – undo
78 78
         return str_replace(' xmlns:xsd="http://www.w3.org/2001/XMLSchema"','',$input);
79 79
     }
80 80
 
81
-	public function __toString()
82
-	{
83
-	    $output  = '';
81
+    public function __toString()
82
+    {
83
+        $output  = '';
84 84
         $output .= '<table summary="Authorize.Net Results" id="authnet">' . "\n";
85 85
         $output .= '<tr>' . "\n\t\t" . '<th colspan="2"><b>Class Parameters</b></th>' . "\n" . '</tr>' . "\n";
86 86
         $output .= '<tr>' . "\n\t\t" . '<td><b>API Login ID</b></td><td>' . $this->login . '</td>' . "\n" . '</tr>' . "\n";
@@ -117,9 +117,9 @@  discard block
 block discarded – undo
117 117
         $output .= '</table>';
118 118
 
119 119
         return $output;
120
-	}
120
+    }
121 121
 
122
-	public function __destruct()
122
+    public function __destruct()
123 123
     {
124 124
         if (isset($this->ch))
125 125
         {
@@ -128,31 +128,31 @@  discard block
 block discarded – undo
128 128
     }
129 129
 
130 130
     public function __get($var)
131
-	{
132
-	    return $this->response_xml->$var;
133
-	}
134
-
135
-	public function __set($key, $value)
136
-	{
137
-	    trigger_error('You cannot set parameters directly in ' . __CLASS__ . '.', E_USER_WARNING);
138
-	    return false;
139
-	}
140
-
141
-	public function __call($api_call, $args)
142
-	{
143
-	    $this->xml = new SimpleXMLElement('<' . $api_call . '></' . $api_call . '>');
131
+    {
132
+        return $this->response_xml->$var;
133
+    }
134
+
135
+    public function __set($key, $value)
136
+    {
137
+        trigger_error('You cannot set parameters directly in ' . __CLASS__ . '.', E_USER_WARNING);
138
+        return false;
139
+    }
140
+
141
+    public function __call($api_call, $args)
142
+    {
143
+        $this->xml = new SimpleXMLElement('<' . $api_call . '></' . $api_call . '>');
144 144
         $this->xml->addAttribute('xmlns', 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
145
-	    $merch_auth = $this->xml->addChild('merchantAuthentication');
145
+        $merch_auth = $this->xml->addChild('merchantAuthentication');
146 146
         $merch_auth->addChild('name', $this->login);
147
-	    $merch_auth->addChild('transactionKey', $this->transkey);
147
+        $merch_auth->addChild('transactionKey', $this->transkey);
148 148
 
149
-		$this->setParameters($this->xml, $args[0]);
150
-		$this->process();
151
-	}
149
+        $this->setParameters($this->xml, $args[0]);
150
+        $this->process();
151
+    }
152 152
 
153
-	private function setParameters($xml, $array)
154
-	{
155
-	    if (is_array($array))
153
+    private function setParameters($xml, $array)
154
+    {
155
+        if (is_array($array))
156 156
         {
157 157
             $first = true;
158 158
             foreach ($array as $key => $value)
@@ -184,34 +184,34 @@  discard block
 block discarded – undo
184 184
                 }
185 185
             }
186 186
         }
187
-	}
187
+    }
188 188
 
189
-	private function process()
190
-	{
191
-		$this->xml = $this->xml->asXML();
189
+    private function process()
190
+    {
191
+        $this->xml = $this->xml->asXML();
192 192
 
193
-		$this->ch = curl_init();
193
+        $this->ch = curl_init();
194 194
         curl_setopt($this->ch, CURLOPT_URL, $this->url);
195
-    	curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
196
-    	curl_setopt($this->ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
197
-    	curl_setopt($this->ch, CURLOPT_HEADER, 0);
198
-    	curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->xml);
199
-    	curl_setopt($this->ch, CURLOPT_POST, 1);
200
-    	curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
201
-    	curl_setopt($this->ch, CURLOPT_CAINFO, dirname(__FILE__) . '/ssl/cert.pem');
195
+        curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
196
+        curl_setopt($this->ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
197
+        curl_setopt($this->ch, CURLOPT_HEADER, 0);
198
+        curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->xml);
199
+        curl_setopt($this->ch, CURLOPT_POST, 1);
200
+        curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
201
+        curl_setopt($this->ch, CURLOPT_CAINFO, dirname(__FILE__) . '/ssl/cert.pem');
202 202
 
203 203
         if(($this->response = curl_exec($this->ch)) !== false)
204 204
         {
205 205
             $this->response_xml = @new SimpleXMLElement($this->response);
206 206
 
207
-		    curl_close($this->ch);
207
+            curl_close($this->ch);
208 208
             unset($this->ch);
209 209
             return;
210
-		}
210
+        }
211 211
         throw new AuthnetXMLException('Connection error: ' . curl_error($this->ch) . ' (' . curl_errno($this->ch) . ')', self::EXCEPTION_CURL);
212
-	}
212
+    }
213 213
 
214
-	public function isSuccessful()
214
+    public function isSuccessful()
215 215
     {
216 216
         return $this->response_xml->messages->resultCode == 'Ok';
217 217
     }
Please login to merge, or discard this patch.
includes/gateways/authorizenet/anet_php_sdk/lib/AuthorizeNetARB.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -91,13 +91,13 @@
 block discarded – undo
91 91
         return $this->_sendRequest();
92 92
     }
93 93
     
94
-     /**
95
-     *
96
-     *
97
-     * @param string $response
98
-     * 
99
-     * @return AuthorizeNetARB_Response
100
-     */
94
+        /**
95
+         *
96
+         *
97
+         * @param string $response
98
+         * 
99
+         * @return AuthorizeNetARB_Response
100
+         */
101 101
     protected function _handleResponse($response)
102 102
     {
103 103
         return new AuthorizeNetARB_Response($response);
Please login to merge, or discard this patch.
includes/gateways/authorizenet/anet_php_sdk/lib/AuthorizeNetCIM.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -316,9 +316,9 @@
 block discarded – undo
316 316
         return $this->_sendRequest();
317 317
     }
318 318
     
319
-     /**
320
-     * @return string
321
-     */
319
+        /**
320
+         * @return string
321
+         */
322 322
     protected function _getPostUrl()
323 323
     {
324 324
         return ($this->_sandbox ? self::SANDBOX_URL : self::LIVE_URL);
Please login to merge, or discard this patch.
includes/gateways/authorizenet/anet_php_sdk/lib/AuthorizeNetDPM.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -76,7 +76,7 @@
 block discarded – undo
76 76
             }
77 77
             else
78 78
             {
79
-              echo "Sorry, an error occurred: " . htmlentities($_GET['response_reason_text']);
79
+                echo "Sorry, an error occurred: " . htmlentities($_GET['response_reason_text']);
80 80
             }
81 81
         }
82 82
     }
Please login to merge, or discard this patch.