PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.39.2
Advanced Ads – Ad Manager & AdSense v1.39.2
2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / classes / frontend-notices.php
advanced-ads / classes Last commit date
Advanced_Ads_Modal.php 3 years ago EDD_SL_Plugin_Updater.php 4 years ago ad-ajax.php 3 years ago ad-debug.php 3 years ago ad-expiration.php 3 years ago ad-health-notices.php 3 years ago ad-model.php 3 years ago ad-select.php 3 years ago ad.php 3 years ago ad_ajax_callbacks.php 3 years ago ad_group.php 3 years ago ad_placements.php 3 years ago ad_type_abstract.php 3 years ago ad_type_content.php 3 years ago ad_type_dummy.php 3 years ago ad_type_group.php 3 years ago ad_type_image.php 3 years ago ad_type_plain.php 3 years ago checks.php 3 years ago compatibility.php 3 years ago display-conditions.php 3 years ago filesystem.php 3 years ago frontend-notices.php 3 years ago frontend_checks.php 3 years ago in-content-injector.php 3 years ago inline-css.php 3 years ago plugin.php 3 years ago upgrades.php 6 years ago utils.php 3 years ago visitor-conditions.php 3 years ago widget.php 3 years ago
frontend-notices.php
133 lines
1 <?php
2
3 /**
4 * Container class for frontend notice handling
5 *
6 * @package WordPress
7 * @subpackage Advanced Ads Plugin
8 * @since 1.16
9 *
10 * related scripts / functions
11 * @todo build interface or parent class to share with other notice management in Advanced Ads, e.g., Ad Health Notices
12 *
13 */
14 class Advanced_Ads_Frontend_Notices {
15
16 /**
17 * Instance of this class.
18 *
19 * @var object
20 */
21 protected static $instance = null;
22
23 /**
24 * Options
25 *
26 * @var array
27 */
28 protected $options;
29
30 /**
31 * All detected notices
32 *
33 * @var array
34 */
35 public $notices = [];
36
37 /**
38 * Advanced_Ads_Ad_Health_Notices constructor.
39 */
40 public function __construct() {
41
42 // failsafe for there were some reports of 502 errors.
43 if ( 1 < did_action( 'plugins_loaded' ) ) {
44 return;
45 }
46
47 }
48
49 /**
50 * Return an instance of this class.
51 *
52 * @return object A single instance of this class.
53 */
54 public static function get_instance() {
55
56 // If the single instance hasn't been set, set it now.
57 if ( null === self::$instance ) {
58 self::$instance = new self();
59 }
60
61 return self::$instance;
62 }
63
64 /**
65 * Updating an existing notice or add it, if it doesn’t exist, yet
66 *
67 * @param string $notice_key notice key to be added to the notice array.
68 * @param array $atts additional attributes.
69 *
70 * attributes:
71 * - append_text – text added to the default message
72 */
73 public function update( $notice_key, $atts = [] ) {
74
75 // check if the notice already exists.
76 $notice_key = esc_attr( $notice_key );
77 $options_before = $options = $this->options();
78
79 // load notices from "queue".
80 $notices = isset( $options['notices'] ) ? $options['notices'] : [];
81
82 // check if notice_key was already saved, this prevents the same notice from showing up in different forms.
83 if ( ! isset( $notices[ $notice_key ] ) ) {
84 $notices[ $notice_key ] = [];
85 } else {
86 // add `closed` marker, if given.
87 if ( ! empty( $atts['closed'] ) ) {
88 $notices[ $notice_key ]['closed'] = absint( $atts['closed'] );
89 }
90 }
91
92 // update db.
93 $options['notices'] = $notices;
94
95 // update db if changed.
96 if ( $options_before !== $options ) {
97 $this->update_options( $options );
98 }
99
100 }
101
102 /**
103 * Return notices option from DB
104 *
105 * @return array $options
106 */
107 public function options() {
108 if ( ! isset( $this->options ) ) {
109 $this->options = get_option( ADVADS_SLUG . '-frontend-notices', [] );
110 }
111 if ( ! is_array( $this->options ) ) {
112 $this->options = [];
113 }
114
115 return $this->options;
116 }
117
118 /**
119 * Update notice options
120 *
121 * @param array $options new options.
122 */
123 public function update_options( array $options ) {
124 // do not allow to clear options.
125 if ( [] === $options ) {
126 return;
127 }
128
129 $this->options = $options;
130 update_option( ADVADS_SLUG . '-frontend-notices', $options );
131 }
132 }
133