PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 4.9
Advanced Access Manager – Access Governance for WordPress v4.9
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Core / Cache.php
advanced-access-manager / Application / Core Last commit date
Object 8 years ago Subject 8 years ago API.php 8 years ago Cache.php 8 years ago Compatibility.php 8 years ago Config.php 8 years ago ConfigPress.php 8 years ago Console.php 8 years ago Exporter.php 8 years ago Importer.php 8 years ago Media.php 8 years ago Object.php 8 years ago Request.php 8 years ago Server.php 8 years ago Subject.php 8 years ago
Cache.php
142 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * AAM Core Cache
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Cache {
17
18 /**
19 * DB Cache option
20 */
21 const CACHE_OPTION = 'cache';
22
23 /**
24 * Core config
25 *
26 * @var array
27 *
28 * @access protected
29 */
30 protected static $cache = false;
31
32 /**
33 * Update cache flag
34 *
35 * @var boolean
36 *
37 * @access protected
38 */
39 protected static $updated = false;
40
41 /**
42 * Get cached option
43 *
44 * @param string $option
45 *
46 * @return mixed
47 *
48 * @access public
49 */
50 public static function get($option, $default = null) {
51 return (isset(self::$cache[$option]) ? self::$cache[$option] : $default);
52 }
53
54 /**
55 * Set cache option
56 *
57 * @param string $subject
58 * @param string $option
59 * @param mixed $data
60 *
61 * @return void
62 *
63 * @access public
64 */
65 public static function set($subject, $option, $data) {
66 if (!isset(self::$cache[$option]) || (self::$cache[$option] != $data)) {
67 self::$cache[$option] = $data;
68 self::$updated = true;
69 }
70 }
71
72 /**
73 *
74 * @param type $option
75 * @return type
76 */
77 public static function has($option) {
78 return (isset(self::$cache[$option]));
79 }
80
81 /**
82 * Clear cache
83 *
84 * @return void
85 *
86 * @access public
87 * @global WPDB $wpdb
88 */
89 public static function clear($user = null) {
90 global $wpdb;
91
92 if (is_null($user)) {
93 //clear visitor cache
94 $oquery = "DELETE FROM {$wpdb->options} WHERE `option_name` = %s";
95 $wpdb->query($wpdb->prepare($oquery, 'aam_visitor_cache' ));
96
97 $mquery = "DELETE FROM {$wpdb->usermeta} WHERE `meta_key` = %s";
98 $wpdb->query($wpdb->prepare($mquery, $wpdb->prefix . 'aam_cache' ));
99 } else {
100 $query = "DELETE FROM {$wpdb->usermeta} WHERE (`user_id` = %d) AND ";
101 $query .= "`meta_key` = %s";
102 $wpdb->query($wpdb->prepare($query, $user, $wpdb->prefix . 'aam_cache'));
103 }
104
105 self::$cache = false;
106
107 //clear updated flag
108 self::$updated = false;
109 }
110
111 /**
112 * Save cache
113 *
114 * Save aam cache but only if changes deleted
115 *
116 * @return void
117 *
118 * @access public
119 */
120 public static function save() {
121 if (self::$updated) {
122 AAM::getUser()->updateOption(self::$cache, self::CACHE_OPTION);
123 }
124 }
125
126 /**
127 * Bootstrap cache
128 *
129 * Do not load cache if user is on AAM page
130 *
131 * @return void
132 *
133 * @access public
134 */
135 public static function bootstrap() {
136 if (!AAM::isAAM()) {
137 self::$cache = AAM::getUser()->readOption(self::CACHE_OPTION);
138 add_action('shutdown', 'AAM_Core_Cache::save');
139 }
140 }
141
142 }