PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.10
Advanced Ads – Ad Manager & AdSense v1.10
2.0.25 2.0.24 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 / modules / privacy / classes / plugin.php
advanced-ads / modules / privacy / classes Last commit date
plugin.php 8 years ago
plugin.php
161 lines
1 <?php
2 class Advanced_Ads_Privacy
3 {
4 /**
5 * Singleton instance of the plugin
6 *
7 * @var Advanced_Ads_Privacy
8 */
9 protected static $instance;
10
11 /**
12 * module options
13 *
14 * @var array (if loaded)
15 */
16 protected $options;
17
18 /**
19 * option key
20 *
21 * @const array
22 */
23 const OPTION_KEY = 'advanced-ads-privacy';
24
25 /**
26 * Initialize the module
27 */
28 private function __construct() {
29 $options = $this->options();
30
31 add_filter( 'advanced-ads-can-display', array( $this, 'can_display_by_consent' ), 10, 3 );
32
33 }
34
35 /**
36 * Return an instance of Advanced_Ads_Privacy
37 *
38 * @return Advanced_Ads_Privacy
39 */
40 public static function get_instance() {
41 // If the single instance hasn't been set, set it now.
42 if ( null === self::$instance )
43 {
44 self::$instance = new self;
45 }
46
47 return self::$instance;
48 }
49
50 /**
51 * Return module options
52 *
53 * @return array $options
54 */
55 public function options() {
56 if ( ! isset( $this->options ) ) {
57 $this->options = get_option( self::OPTION_KEY, array() );
58 }
59 return $this->options;
60 }
61
62 /**
63 * Check if ad can be displayed based on user's consent.
64 *
65 * @return bool
66 */
67 public function can_display_by_consent( $can_display, Advanced_Ads_Ad $ad, $check_options ) {
68 if ( ! $can_display ) {
69 return $can_display;
70 }
71
72 if ( $check_options['passive_cache_busting'] ) {
73 return true;
74 }
75
76 $ad_options = $ad->options();
77 // If consent is not needed for the ad.
78 if ( ! empty( $ad_options['privacy']['ignore-consent'] ) ) {
79 return true;
80 }
81
82 $privacy_options = $this->options();
83 if ( $ad->type === 'adsense' ) {
84 if ( ! empty( $privacy_options['show-non-personalized-adsense'] ) ) {
85 // Either personalized or non-personalized ad will be shown.
86 return true;
87 }
88 }
89
90 $state = $this->get_state();
91 return ( $state === 'accepted' || $state === 'not_needed' );
92 }
93
94 /**
95 * Check if consent is not needed or was given by the user.
96 *
97 * @return str
98 * 'not_needed' - consent is not needed.
99 * 'accepted' - consent was given.
100 * 'unknown' - consent was not given yet.
101 */
102 public function get_state() {
103 if ( empty ( $this->options['enabled'] ) ) {
104 return 'not_needed';
105 }
106
107 $consent_method = isset( $this->options['consent-method'] ) ? $this->options['consent-method'] : 0;
108 switch ( $consent_method ) {
109 case '0':
110 return 'not_needed';
111 break;
112 case 'custom':
113 if ( ! isset( $this->options['custom-cookie-name'] ) || ! isset( $this->options['custom-cookie-value'] ) ) {
114 return 'not_needed';
115 }
116 $name = $this->options['custom-cookie-name'];
117 $value = $this->options['custom-cookie-value'];
118 if ( ! isset( $_COOKIE[ $name ] ) ) {
119 return 'unknown';
120 }
121
122 if ( ( $value === '' && $_COOKIE[ $name ] === '' )
123 || ($value !== '' && strpos( $_COOKIE[ $name ], $value ) !== false ) ) {
124 return 'accepted';
125 }
126 return 'unknown';
127 break;
128 default:
129 return isset( $_COOKIE[ $consent_method ] ) ? 'accepted' : 'unknown';
130 break;
131 }
132 }
133
134 /**
135 * Get consent methods.
136 *
137 * @return arr
138 */
139 public function get_consent_methods() {
140 $methods = array(
141 '0' => __( 'Show all ads even without consent.', 'advanced-ads' ),
142 'custom' => __( 'Cookie', 'advanced-ads' ),
143 );
144 /*
145 // https://wordpress.org/plugins/cookie-notice/
146 if ( class_exists( 'Cookie_Notice' ) ) {
147 $methods['cookie_notice_accepted'] = 'Cookie Notice by dFactory';
148 }
149 // https://wordpress.org/plugins/uk-cookie-consent/
150 if ( defined( 'CTCC_PLUGIN_URL' ) ) {
151 $methods['catAccCookies'] = 'Cookie Consent';
152 }
153 // https://wordpress.org/plugins/cookie-law-info/
154 if ( defined( 'CLI_PLUGIN_DEVELOPMENT_MODE' ) ) {
155 $methods['viewed_cookie_policy'] = 'GDPR Cookie Consent';
156 }
157 */
158 return $methods;
159 }
160 }
161