PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.0.08
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.0.08
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 +34 -90 6.55.0.08 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,19 +81,16 @@
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 - if ( ! is_array( $message ) || ! isset( $message['key'] ) ) {
87 + if ( ! is_array( $message ) ) {
103 88 // if the API response is invalid, $message may not be an array.
104 - // 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 89 return;
106 90 }
107 91
108 - if ( isset( self::$messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
92 + if ( isset( $this->messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
109 93 // Don't replace messages unless required.
110 94 return;
111 95 }
112 96
@@ -113,15 +97,15 @@
113 97 if ( $this->is_expired( $message ) ) {
114 98 return;
115 99 }
116 100
117 - if ( isset( self::$messages[ $message['key'] ] ) ) {
101 + if ( isset( $this->messages[ $message['key'] ] ) ) {
118 102 // Move up and mark as new.
119 - unset( self::$messages[ $message['key'] ] );
103 + unset( $this->messages[ $message['key'] ] );
120 104 }
121 105
122 106 $this->fill_message( $message );
123 - self::$messages[ $message['key'] ] = $message;
107 + $this->messages[ $message['key'] ] = $message;
124 108
125 109 $this->update_list();
126 110
127 111 $this->clean_messages();
@@ -126,13 +110,8 @@
126 110
127 111 $this->clean_messages();
128 112 }
129 113
130 - /**
131 - * @param array $message
132 - *
133 - * @return void
134 - */
135 114 private function fill_message( &$message ) {
136 115 $defaults = array(
137 116 'time' => time(),
138 117 'message' => '',
@@ -149,19 +128,16 @@
149 128 $message['created'] = $message['time'];
150 129 unset( $message['time'] );
151 130 }
152 131
153 - /**
154 - * @return void
155 - */
156 132 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' );
133 + $removed = false;
134 + foreach ( $this->messages as $t => $message ) {
135 + $read = isset( $message['read'] ) && ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
160 136 $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 );
137 + $expired = $this->is_expired( $message );
162 138 if ( $read || $expired || $dismissed ) {
163 - unset( self::$messages[ $t ] );
139 + unset( $this->messages[ $t ] );
164 140 $removed = true;
165 141 }
166 142 }
167 143
@@ -169,11 +145,8 @@
169 145 $this->update_list();
170 146 }
171 147 }
172 148
173 - /**
174 - * @return void
175 - */
176 149 private function filter_messages( &$messages ) {
177 150 $user_id = get_current_user_id();
178 151 foreach ( $messages as $k => $message ) {
179 152 $dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] );
@@ -185,13 +158,8 @@
185 158 }
186 159 $messages = apply_filters( 'frm_filter_inbox', $messages );
187 160 }
188 161
189 - /**
190 - * @param array $message
191 - *
192 - * @return bool
193 - */
194 162 private function is_expired( $message ) {
195 163 return isset( $message['expires'] ) && ! empty( $message['expires'] ) && $message['expires'] < time();
196 164 }
197 165
@@ -221,20 +189,18 @@
221 189 }
222 190
223 191 /**
224 192 * @param string $key
225 - *
226 - * @return void
227 193 */
228 194 public function mark_read( $key ) {
229 - if ( ! $key || ! isset( self::$messages[ $key ] ) ) {
195 + if ( ! $key || ! isset( $this->messages[ $key ] ) ) {
230 196 return;
231 197 }
232 198
233 - if ( ! isset( self::$messages[ $key ]['read'] ) ) {
234 - self::$messages[ $key ]['read'] = array();
199 + if ( ! isset( $this->messages[ $key ]['read'] ) ) {
200 + $this->messages[ $key ]['read'] = array();
235 201 }
236 - self::$messages[ $key ]['read'][ get_current_user_id() ] = time();
202 + $this->messages[ $key ]['read'][ get_current_user_id() ] = time();
237 203
238 204 $this->update_list();
239 205 }
240 206
@@ -241,15 +207,13 @@
241 207 /**
242 208 * @param string $key
243 209 *
244 210 * @since 4.05.02
245 - *
246 - * @return void
247 211 */
248 212 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() ] );
213 + $is_read = isset( $this->messages[ $key ] ) && isset( $this->messages[ $key ]['read'] ) && isset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
250 214 if ( $is_read ) {
251 - unset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
215 + unset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
252 216 $this->update_list();
253 217 }
254 218 }
255 219
@@ -254,10 +218,8 @@
254 218 }
255 219
256 220 /**
257 221 * @param string $key
258 - *
259 - * @return void
260 222 */
261 223 public function dismiss( $key ) {
262 224 if ( $key === 'all' ) {
263 225 $this->dismiss_all();
@@ -263,16 +225,16 @@
263 225 $this->dismiss_all();
264 226 return;
265 227 }
266 228
267 - if ( ! isset( self::$messages[ $key ] ) ) {
229 + if ( ! isset( $this->messages[ $key ] ) ) {
268 230 return;
269 231 }
270 232
271 - if ( ! isset( self::$messages[ $key ]['dismissed'] ) ) {
272 - self::$messages[ $key ]['dismissed'] = array();
233 + if ( ! isset( $this->messages[ $key ]['dismissed'] ) ) {
234 + $this->messages[ $key ]['dismissed'] = array();
273 235 }
274 - self::$messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
236 + $this->messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
275 237
276 238 $this->update_list();
277 239 }
278 240
@@ -277,20 +239,18 @@
277 239 }
278 240
279 241 /**
280 242 * @since 4.06
281 - *
282 - * @return void
283 243 */
284 244 private function dismiss_all() {
285 245 $user_id = get_current_user_id();
286 - foreach ( self::$messages as $key => $message ) {
246 + foreach ( $this->messages as $key => $message ) {
287 247 if ( ! isset( $message['dismissed'] ) ) {
288 - self::$messages[ $key ]['dismissed'] = array();
248 + $this->messages[ $key ]['dismissed'] = array();
289 249 }
290 250
291 251 if ( ! isset( $message['dismissed'][ $user_id ] ) ) {
292 - self::$messages[ $key ]['dismissed'][ $user_id ] = time();
252 + $this->messages[ $key ]['dismissed'][ $user_id ] = time();
293 253 }
294 254 }
295 255 $this->update_list();
296 256 }
@@ -321,44 +281,28 @@
321 281 }
322 282
323 283 /**
324 284 * @since 4.05.02
325 - *
326 - * @param string $key
327 - *
328 - * @return void
329 285 */
330 286 public function remove( $key ) {
331 - if ( isset( self::$messages[ $key ] ) ) {
332 - unset( self::$messages[ $key ] );
287 + if ( isset( $this->messages[ $key ] ) ) {
288 + unset( $this->messages[ $key ] );
333 289 $this->update_list();
334 290 }
335 291 }
336 292
337 - /**
338 - * @return void
339 - */
340 293 private function update_list() {
341 - update_option( $this->option, self::$messages, 'no' );
294 + update_option( $this->option, $this->messages, 'no' );
342 295 }
343 296
344 - /**
345 - * Show a banner message if one is available.
346 - *
347 - * @return bool True if a banner is available and shown.
348 - */
349 297 public static function maybe_show_banner() {
350 298 if ( empty( self::$banner_messages ) ) {
351 - return false;
299 + return;
352 300 }
353 301 $message = end( self::$banner_messages );
354 302 require FrmAppHelper::plugin_path() . '/classes/views/inbox/banner.php';
355 - return true;
356 303 }
357 304
358 - /**
359 - * @return void
360 - */
361 305 public static function maybe_disable_screen_options() {
362 306 self::$banner_messages = self::get_banner_messages();
363 307 if ( self::$banner_messages ) {
364 308 // disable screen options tab when displaying banner messages because it gets in the way of the banner.