PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.0.10
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.0.10
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/models/FrmInbox.php +33 -88 6.3.25.0.10 View file →
@@ -11,9 +11,9 @@
11 11 protected $cache_key;
12 12
13 13 private $option = 'frm_inbox';
14 14
15 - private static $messages = false;
15 + private $messages = false;
16 16
17 17 /**
18 18 * @param array
19 19 */
@@ -20,18 +20,13 @@
20 20 private static $banner_messages;
21 21
22 22 public function __construct( $for_parent = null ) {
23 23 $this->set_cache_key();
24 -
25 - if ( false === self::$messages ) {
26 - $this->set_messages();
27 - }
24 + $this->set_messages();
28 25 }
29 26
30 27 /**
31 28 * @since 4.05
32 - *
33 - * @return void
34 29 */
35 30 protected function set_cache_key() {
36 31 $this->cache_key = 'frm_inbox_cache';
37 32 }
@@ -37,10 +32,8 @@
37 32 }
38 33
39 34 /**
40 35 * @since 4.05
41 - *
42 - * @return string
43 36 */
44 37 protected function api_url() {
45 38 return 'https://formidableforms.com/wp-json/inbox/v1/message/';
46 39 }
@@ -46,13 +39,11 @@
46 39 }
47 40
48 41 /**
49 42 * @since 4.05
50 - *
51 - * @param false|string $filter
52 43 */
53 44 public function get_messages( $filter = false ) {
54 - $messages = self::$messages;
45 + $messages = $this->messages;
55 46 if ( $filter === 'filter' ) {
56 47 $this->filter_messages( $messages );
57 48 }
58 49 return $messages;
@@ -59,15 +50,13 @@
59 50 }
60 51
61 52 /**
62 53 * @since 4.05
63 - *
64 - * @return void
65 54 */
66 55 public function set_messages() {
67 - self::$messages = get_option( $this->option );
68 - if ( ! is_array( self::$messages ) ) {
69 - self::$messages = array();
56 + $this->messages = get_option( $this->option );
57 + if ( empty( $this->messages ) ) {
58 + $this->messages = array();
70 59 }
71 60
72 61 $this->add_api_messages();
73 62
@@ -73,15 +62,13 @@
73 62
74 63 /**
75 64 * Messages are in an array.
76 65 */
77 - self::$messages = apply_filters( 'frm_inbox', self::$messages );
66 + $this->messages = apply_filters( 'frm_inbox', $this->messages );
78 67 }
79 68
80 69 /**
81 70 * @since 4.05
82 - *
83 - * @return void
84 71 */
85 72 private function add_api_messages() {
86 73 $api = $this->get_api_info();
87 74 if ( empty( $api ) ) {
@@ -94,10 +81,8 @@
94 81 }
95 82
96 83 /**
97 84 * @param array|string $message
98 - *
99 - * @return void
100 85 */
101 86 public function add_message( $message ) {
102 87 if ( ! is_array( $message ) || ! isset( $message['key'] ) ) {
103 88 // if the API response is invalid, $message may not be an array.
@@ -104,9 +89,9 @@
104 89 // if there are no messages from the API, it is returning a "No Entries Found" item with no key, so check for a key as well.
105 90 return;
106 91 }
107 92
108 - if ( isset( self::$messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
93 + if ( isset( $this->messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
109 94 // Don't replace messages unless required.
110 95 return;
111 96 }
112 97
@@ -113,15 +98,15 @@
113 98 if ( $this->is_expired( $message ) ) {
114 99 return;
115 100 }
116 101
117 - if ( isset( self::$messages[ $message['key'] ] ) ) {
102 + if ( isset( $this->messages[ $message['key'] ] ) ) {
118 103 // Move up and mark as new.
119 - unset( self::$messages[ $message['key'] ] );
104 + unset( $this->messages[ $message['key'] ] );
120 105 }
121 106
122 107 $this->fill_message( $message );
123 - self::$messages[ $message['key'] ] = $message;
108 + $this->messages[ $message['key'] ] = $message;
124 109
125 110 $this->update_list();
126 111
127 112 $this->clean_messages();
@@ -126,13 +111,8 @@
126 111
127 112 $this->clean_messages();
128 113 }
129 114
130 - /**
131 - * @param array $message
132 - *
133 - * @return void
134 - */
135 115 private function fill_message( &$message ) {
136 116 $defaults = array(
137 117 'time' => time(),
138 118 'message' => '',
@@ -149,19 +129,16 @@
149 129 $message['created'] = $message['time'];
150 130 unset( $message['time'] );
151 131 }
152 132
153 - /**
154 - * @return void
155 - */
156 133 private function clean_messages() {
157 - $removed = false;
158 - foreach ( self::$messages as $t => $message ) {
159 - $read = isset( $message['read'] ) && ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
134 + $removed = false;
135 + foreach ( $this->messages as $t => $message ) {
136 + $read = isset( $message['read'] ) && ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
160 137 $dismissed = isset( $message['dismissed'] ) && ! empty( $message['dismissed'] ) && isset( $message['dismissed'][ get_current_user_id() ] ) && $message['dismissed'][ get_current_user_id() ] < strtotime( '-1 week' );
161 - $expired = $this->is_expired( $message );
138 + $expired = $this->is_expired( $message );
162 139 if ( $read || $expired || $dismissed ) {
163 - unset( self::$messages[ $t ] );
140 + unset( $this->messages[ $t ] );
164 141 $removed = true;
165 142 }
166 143 }
167 144
@@ -169,11 +146,8 @@
169 146 $this->update_list();
170 147 }
171 148 }
172 149
173 - /**
174 - * @return void
175 - */
176 150 private function filter_messages( &$messages ) {
177 151 $user_id = get_current_user_id();
178 152 foreach ( $messages as $k => $message ) {
179 153 $dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] );
@@ -185,13 +159,8 @@
185 159 }
186 160 $messages = apply_filters( 'frm_filter_inbox', $messages );
187 161 }
188 162
189 - /**
190 - * @param array $message
191 - *
192 - * @return bool
193 - */
194 163 private function is_expired( $message ) {
195 164 return isset( $message['expires'] ) && ! empty( $message['expires'] ) && $message['expires'] < time();
196 165 }
197 166
@@ -221,20 +190,18 @@
221 190 }
222 191
223 192 /**
224 193 * @param string $key
225 - *
226 - * @return void
227 194 */
228 195 public function mark_read( $key ) {
229 - if ( ! $key || ! isset( self::$messages[ $key ] ) ) {
196 + if ( ! $key || ! isset( $this->messages[ $key ] ) ) {
230 197 return;
231 198 }
232 199
233 - if ( ! isset( self::$messages[ $key ]['read'] ) ) {
234 - self::$messages[ $key ]['read'] = array();
200 + if ( ! isset( $this->messages[ $key ]['read'] ) ) {
201 + $this->messages[ $key ]['read'] = array();
235 202 }
236 - self::$messages[ $key ]['read'][ get_current_user_id() ] = time();
203 + $this->messages[ $key ]['read'][ get_current_user_id() ] = time();
237 204
238 205 $this->update_list();
239 206 }
240 207
@@ -241,15 +208,13 @@
241 208 /**
242 209 * @param string $key
243 210 *
244 211 * @since 4.05.02
245 - *
246 - * @return void
247 212 */
248 213 public function mark_unread( $key ) {
249 - $is_read = isset( self::$messages[ $key ] ) && isset( self::$messages[ $key ]['read'] ) && isset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
214 + $is_read = isset( $this->messages[ $key ] ) && isset( $this->messages[ $key ]['read'] ) && isset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
250 215 if ( $is_read ) {
251 - unset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
216 + unset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
252 217 $this->update_list();
253 218 }
254 219 }
255 220
@@ -254,10 +219,8 @@
254 219 }
255 220
256 221 /**
257 222 * @param string $key
258 - *
259 - * @return void
260 223 */
261 224 public function dismiss( $key ) {
262 225 if ( $key === 'all' ) {
263 226 $this->dismiss_all();
@@ -263,16 +226,16 @@
263 226 $this->dismiss_all();
264 227 return;
265 228 }
266 229
267 - if ( ! isset( self::$messages[ $key ] ) ) {
230 + if ( ! isset( $this->messages[ $key ] ) ) {
268 231 return;
269 232 }
270 233
271 - if ( ! isset( self::$messages[ $key ]['dismissed'] ) ) {
272 - self::$messages[ $key ]['dismissed'] = array();
234 + if ( ! isset( $this->messages[ $key ]['dismissed'] ) ) {
235 + $this->messages[ $key ]['dismissed'] = array();
273 236 }
274 - self::$messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
237 + $this->messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
275 238
276 239 $this->update_list();
277 240 }
278 241
@@ -277,20 +240,18 @@
277 240 }
278 241
279 242 /**
280 243 * @since 4.06
281 - *
282 - * @return void
283 244 */
284 245 private function dismiss_all() {
285 246 $user_id = get_current_user_id();
286 - foreach ( self::$messages as $key => $message ) {
247 + foreach ( $this->messages as $key => $message ) {
287 248 if ( ! isset( $message['dismissed'] ) ) {
288 - self::$messages[ $key ]['dismissed'] = array();
249 + $this->messages[ $key ]['dismissed'] = array();
289 250 }
290 251
291 252 if ( ! isset( $message['dismissed'][ $user_id ] ) ) {
292 - self::$messages[ $key ]['dismissed'][ $user_id ] = time();
253 + $this->messages[ $key ]['dismissed'][ $user_id ] = time();
293 254 }
294 255 }
295 256 $this->update_list();
296 257 }
@@ -321,44 +282,28 @@
321 282 }
322 283
323 284 /**
324 285 * @since 4.05.02
325 - *
326 - * @param string $key
327 - *
328 - * @return void
329 286 */
330 287 public function remove( $key ) {
331 - if ( isset( self::$messages[ $key ] ) ) {
332 - unset( self::$messages[ $key ] );
288 + if ( isset( $this->messages[ $key ] ) ) {
289 + unset( $this->messages[ $key ] );
333 290 $this->update_list();
334 291 }
335 292 }
336 293
337 - /**
338 - * @return void
339 - */
340 294 private function update_list() {
341 - update_option( $this->option, self::$messages, 'no' );
295 + update_option( $this->option, $this->messages, 'no' );
342 296 }
343 297
344 - /**
345 - * Show a banner message if one is available.
346 - *
347 - * @return bool True if a banner is available and shown.
348 - */
349 298 public static function maybe_show_banner() {
350 299 if ( empty( self::$banner_messages ) ) {
351 - return false;
300 + return;
352 301 }
353 302 $message = end( self::$banner_messages );
354 303 require FrmAppHelper::plugin_path() . '/classes/views/inbox/banner.php';
355 - return true;
356 304 }
357 305
358 - /**
359 - * @return void
360 - */
361 306 public static function maybe_disable_screen_options() {
362 307 self::$banner_messages = self::get_banner_messages();
363 308 if ( self::$banner_messages ) {
364 309 // disable screen options tab when displaying banner messages because it gets in the way of the banner.