PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
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 +32 -26 6.26 → trunk View file →
@@ -53,9 +53,9 @@
53 53
54 54 /**
55 55 * @since 4.05
56 56 *
57 - * @param array|false $filter
57 + * @param false|string $filter
58 58 *
59 59 * @return array
60 60 */
61 61 public function get_messages( $filter = false ) {
@@ -63,8 +63,9 @@
63 63
64 64 if ( $filter === 'filter' ) {
65 65 $this->filter_messages( $messages );
66 66 }
67 +
67 68 return $messages;
68 69 }
69 70
70 71 /**
@@ -94,9 +95,9 @@
94 95 */
95 96 private function add_api_messages() {
96 97 $api = $this->get_api_info();
97 98
98 - if ( empty( $api ) ) {
99 + if ( ! $api ) {
99 100 return;
100 101 }
101 102
102 103 foreach ( $api as $message ) {
@@ -110,10 +111,10 @@
110 111 * @return void
111 112 */
112 113 public function add_message( $message ) {
113 114 if ( ! is_array( $message ) || ! isset( $message['key'] ) ) {
114 - // if the API response is invalid, $message may not be an array.
115 - // 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.
115 + // If the API response is invalid, $message may not be an array.
116 + // 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.
116 117 return;
117 118 }
118 119
119 120 if ( isset( self::$messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
@@ -169,14 +170,16 @@
169 170 $removed = false;
170 171
171 172 foreach ( self::$messages as $t => $message ) {
172 173 $read = ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
173 - $dismissed = ! empty( $message['dismissed'] ) && isset( $message['dismissed'][ get_current_user_id() ] ) && $message['dismissed'][ get_current_user_id() ] < strtotime( '-1 week' );
174 + $dismissed = ! empty( $message['dismissed'] ) && isset( $message['dismissed'][ get_current_user_id() ] ) && $message['dismissed'][ get_current_user_id() ] < strtotime( '-1 week' ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
174 175
175 - if ( $read || $dismissed || ! $this->within_valid_timeframe( $message ) ) {
176 - unset( self::$messages[ $t ] );
177 - $removed = true;
176 + if ( ! $read && ! $dismissed && $this->within_valid_timeframe( $message ) ) {
177 + continue;
178 178 }
179 +
180 + unset( self::$messages[ $t ] );
181 + $removed = true;
179 182 }
180 183
181 184 if ( $removed ) {
182 185 $this->update_list();
@@ -194,9 +197,9 @@
194 197
195 198 foreach ( $messages as $k => $message ) {
196 199 $dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] );
197 200
198 - if ( empty( $k ) || ! $this->within_valid_timeframe( $message ) || ( $type === 'dismissed' ) !== $dismissed ) {
201 + if ( ! $k || ! $this->within_valid_timeframe( $message ) || ( $type === 'dismissed' ) !== $dismissed ) {
199 202 unset( $messages[ $k ] );
200 203 } elseif ( ! $this->is_for_user( $message ) ) {
201 204 unset( $messages[ $k ] );
202 205 }
@@ -227,13 +230,9 @@
227 230 *
228 231 * @return bool
229 232 */
230 233 private function has_started( $message ) {
231 - if ( empty( $message['starts'] ) ) {
232 - return true;
233 - }
234 -
235 - return $message['starts'] <= time();
234 + return ! empty( $message['starts'] ) ? $message['starts'] <= time() : true;
236 235 }
237 236
238 237 /**
239 238 * @param array $message
@@ -297,12 +296,14 @@
297 296 */
298 297 public function mark_unread( $key ) {
299 298 $is_read = isset( self::$messages[ $key ] ) && isset( self::$messages[ $key ]['read'] ) && isset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
300 299
301 - if ( $is_read ) {
302 - unset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
303 - $this->update_list();
300 + if ( ! $is_read ) {
301 + return;
304 302 }
303 +
304 + unset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
305 + $this->update_list();
305 306 }
306 307
307 308 /**
308 309 * @param string $key
@@ -358,8 +359,9 @@
358 359 if ( isset( $message['read'] ) && isset( $message['read'][ $user_id ] ) ) {
359 360 unset( $messages[ $t ] );
360 361 }
361 362 }
363 +
362 364 return $messages;
363 365 }
364 366
365 367 /**
@@ -397,12 +399,14 @@
397 399 *
398 400 * @return void
399 401 */
400 402 public function remove( $key ) {
401 - if ( isset( self::$messages[ $key ] ) ) {
402 - unset( self::$messages[ $key ] );
403 - $this->update_list();
403 + if ( ! isset( self::$messages[ $key ] ) ) {
404 + return;
404 405 }
406 +
407 + unset( self::$messages[ $key ] );
408 + $this->update_list();
405 409 }
406 410
407 411 /**
408 412 * @return void
@@ -407,9 +411,9 @@
407 411 /**
408 412 * @return void
409 413 */
410 414 private function update_list() {
411 - update_option( $this->option, self::$messages, 'no' );
415 + update_option( $this->option, self::$messages, false );
412 416 }
413 417
414 418 /**
415 419 * Show a banner message if one is available.
@@ -416,9 +420,9 @@
416 420 *
417 421 * @return bool True if a banner is available and shown.
418 422 */
419 423 public static function maybe_show_banner() {
420 - if ( empty( self::$banner_messages ) ) {
424 + if ( ! self::$banner_messages ) {
421 425 return false;
422 426 }
423 427
424 428 $message = end( self::$banner_messages );
@@ -448,23 +452,24 @@
448 452 *
449 453 * @return string
450 454 */
451 455 function ( $matches ) {
452 - $url = $matches[2];
453 - $parts = parse_url( $url );
456 + $url = $matches[2];
454 457
455 458 if ( '#' === $url ) {
456 459 return 'href="#"';
457 460 }
458 461
462 + $parts = parse_url( $url );
459 463 $query = array();
460 464
461 465 if ( isset( $parts['query'] ) ) {
462 466 parse_str( $parts['query'], $query );
463 467 }
468 +
464 469 $query['utm_medium'] = 'banner';
465 470 $parts['query'] = http_build_query( $query );
466 - return 'href="' . $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . $parts['query'] . '"';
471 + return 'href="' . esc_url( $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . $parts['query'] ) . '"';
467 472 },
468 473 $cta
469 474 );
470 475 }
@@ -475,9 +480,9 @@
475 480 public static function maybe_disable_screen_options() {
476 481 self::$banner_messages = self::get_banner_messages();
477 482
478 483 if ( self::$banner_messages ) {
479 - // disable screen options tab when displaying banner messages because it gets in the way of the banner.
484 + // Disable screen options tab when displaying banner messages because it gets in the way of the banner.
480 485 add_filter( 'screen_options_show_screen', '__return_false' );
481 486 }
482 487 }
483 488
@@ -596,7 +601,8 @@
596 601 if ( is_array( $message ) && isset( $message['type'] ) && 'error' === $message['type'] ) {
597 602 return $message;
598 603 }
599 604 }
605 +
600 606 return false;
601 607 }
602 608 }