PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.10.7
Advanced Ads – Ad Manager & AdSense v1.10.7
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 / checks.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 7 years ago ad-ajax.php 8 years ago ad-debug.php 8 years ago ad-model.php 8 years ago ad-select.php 9 years ago ad.php 7 years ago ad_ajax_callbacks.php 7 years ago ad_group.php 7 years ago ad_placements.php 7 years ago ad_type_abstract.php 8 years ago ad_type_content.php 8 years ago ad_type_dummy.php 8 years ago ad_type_group.php 8 years ago ad_type_image.php 7 years ago ad_type_plain.php 8 years ago checks.php 7 years ago compatibility.php 7 years ago display-conditions.php 7 years ago filesystem.php 8 years ago frontend_checks.php 7 years ago plugin.php 7 years ago upgrades.php 9 years ago utils.php 7 years ago visitor-conditions.php 7 years ago widget.php 7 years ago
checks.php
274 lines
1 <?php
2
3 /**
4 * checks for various things
5 *
6 * @since 1.6.9
7 */
8 class Advanced_Ads_Checks {
9
10 /**
11 * Minimum required PHP version of Advanced Ads
12 */
13 const MINIMUM_PHP_VERSION = 5.4;
14
15
16 /**
17 * show the list of potential issues
18 */
19 public static function show_issues(){
20 include_once ADVADS_BASE_PATH . '/admin/views/checks.php';
21 }
22
23 /**
24 * php version minimum 5.4
25 *
26 * @return bool true if 5.4 and higher
27 */
28 public static function php_version_minimum(){
29
30 if (version_compare(phpversion(), self::MINIMUM_PHP_VERSION, '>=')) {
31 return true;
32 }
33
34 return false;
35 }
36
37 /**
38 * caching used
39 *
40 * @return bool true if active
41 */
42 public static function cache(){
43 if ( ( defined( 'WP_CACHE' ) && WP_CACHE ) // general cache constant
44 || defined('W3TC') // W3 Total Cache
45 || function_exists( 'wp_super_cache_text_domain' ) // WP SUper Cache
46 || defined( 'WP_ROCKET_SLUG' ) //WP Rocket
47 || defined( 'WPFC_WP_CONTENT_DIR' ) //WP Fastest Cache
48 || class_exists( 'HyperCache', false ) // Hyper Cache
49 || defined( 'CE_CACHE_DIR' ) // Cache Enabler
50 ){
51 return true;
52 }
53
54 return false;
55 }
56
57 /**
58 * WordPress update available
59 *
60 * @return bool true if WordPress update available
61 */
62 public static function wp_update_available(){
63
64 $update_data = wp_get_update_data();
65 $count = absint( $update_data['counts']['wordpress'] );
66
67 if( $count ){
68 return true;
69 }
70
71 return false;
72 }
73
74 /**
75 * any plugin updates available
76 *
77 * @return bool true if plugin updates are available
78 */
79 public static function plugin_updates_available(){
80
81 // iterate throught the plugins and check if any of them is ours (i.e., starts with the string "advanced-ads")
82 $update_plugins = get_site_transient( 'update_plugins' );
83 if ( ! empty( $update_plugins->response ) ) {
84 foreach( $update_plugins->response as $_key => $_responsive ){
85 if( 0 === strpos( $_key, 'advanced-ads') ){
86 return true;
87 }
88 }
89 }
90
91 return false;
92 }
93
94 /**
95 * check if license keys are missing or invalid or expired
96 *
97 * @since 1.6.6
98 * @update 1.6.9 moved from Advanced_Ads_Plugin
99 * @update 1.8.21 also check for expired licenses
100 * @return true if there are missing licenses
101 */
102 public static function licenses_invalid(){
103
104 $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
105
106 if( $add_ons === array() ) {
107 return false;
108 }
109
110 foreach( $add_ons as $_add_on_key => $_add_on ){
111 $status = Advanced_Ads_Admin_Licenses::get_instance()->get_license_status( $_add_on['options_slug'] );
112
113 // check expiry date
114 $expiry_date = Advanced_Ads_Admin_Licenses::get_instance()->get_license_expires( $_add_on['options_slug'] );
115
116 if( $expiry_date && 'lifetime' !== $expiry_date && strtotime( $expiry_date ) < time() ){
117 return true;
118 }
119
120 // don’t check if license is valid
121 if( $status === 'valid' ) {
122 continue;
123 }
124
125 // retrieve our license key from the DB
126 $licenses = Advanced_Ads_Admin_Licenses::get_instance()->get_licenses();
127
128 $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : false;
129
130 if( ! $license_key || $status !== 'valid' ){
131 return true;
132 }
133 }
134
135 return false;
136 }
137
138 /**
139 * Autoptimize plugin installed
140 * can change ad tags, especially inline css and scripts
141 *
142 * @link https://wordpress.org/plugins/autoptimize/
143 * @return bool true if Autoptimize is installed
144 */
145 public static function active_autoptimize(){
146
147 if( defined( 'AUTOPTIMIZE_CACHE_DIR' ) ){
148 return true;
149 }
150
151 return false;
152 }
153
154 /**
155 * check for additional conflicting plugins
156 *
157 * @return arr $plugins names of conflicting plugins
158 */
159 public static function conflicting_plugins(){
160
161 $conflicting_plugins = array();
162
163 if( defined( 'Publicize_Base' ) ){ // JetPack Publicize module
164 $conflicting_plugins[] = 'Jetpack – Publicize';
165 }
166 if( defined( 'PF__PLUGIN_DIR' ) ){ // Facebook Instant Articles & Google AMP Pages by PageFrog
167 $conflicting_plugins[] = 'Facebook Instant Articles & Google AMP Pages by PageFrog';
168 }
169 if( defined( 'GT_VERSION' ) ){ // GT ShortCodes
170 $conflicting_plugins[] = 'GT ShortCodes';
171 }
172 if( class_exists( 'ITSEC_Core', false ) && defined ( 'AAP_VERSION' ) ){ // iThemes Security, but only if Pro is enabled
173 $conflicting_plugins[] = 'iThemes Security';
174 }
175
176 return $conflicting_plugins;
177 }
178
179 /**
180 * check if any of the global hide ads options is set
181 * ignore feed setting, because it is standard
182 *
183 * @since 1.7.10
184 * @return bool
185 */
186 public static function ads_disabled(){
187 $options = Advanced_Ads::get_instance()->options();
188 if( isset( $options['disabled-ads'] ) && is_array( $options['disabled-ads'] ) ){
189 foreach( $options['disabled-ads'] as $_key => $_value ){
190 // don’t warn if "feed" and "404" option are enabled, because they are normally not critical
191 if( !empty( $_value ) && !in_array($_key, array( 'feed', '404') ) ){
192 return true;
193 }
194 }
195 }
196 return false;
197 }
198
199 /**
200 * check for required php extensions
201 *
202 * @since 1.8.21
203 * @return bool
204 */
205 public static function php_extensions(){
206
207 $missing_extensions = array();
208
209 if( !extension_loaded('dom') ){
210 $missing_extensions[] = 'dom';
211 }
212
213 if( !extension_loaded('xml') ){
214 $missing_extensions[] = 'xml';
215 }
216
217 return $missing_extensions;
218 }
219
220 /**
221 * Get the list of Advanced Ads constant defined by the user.
222 *
223 * @return array
224 */
225 public static function get_defined_constants() {
226 $constants = apply_filters( 'advanced-ads-constants', array(
227 'ADVADS_ADS_DISABLED',
228 'ADVADS_ALLOW_ADSENSE_ON_404',
229 'ADVADS_DISABLE_RESPONSIVE_IMAGES',
230 'ADVANCED_ADS_AD_DEBUG_FOR_ADMIN_ONLY',
231 'ADVANCED_ADS_DISABLE_ANALYTICS_ANONYMIZE_IP',
232 'ADVANCED_ADS_DISABLE_CHANGE',
233 'ADVANCED_ADS_DISABLE_CODE_HIGHLIGHTING',
234 'ADVANCED_ADS_DISABLE_FRONTEND_AD_WEIGHT_UPDATE',
235 'ADVANCED_ADS_DISABLE_SHORTCODE_BUTTON',
236 'ADVANCED_ADS_DISALLOW_PHP',
237 'ADVANCED_ADS_ENABLE_REVISIONS',
238 'ADVANCED_ADS_PRO_CUSTOM_POSITION_MOVE_INTO_HIDDEN',
239 'ADVANCED_ADS_PRO_PAGE_IMPR_EXDAYS',
240 'ADVANCED_ADS_PRO_REFERRER_EXDAYS',
241 'ADVANCED_ADS_RESPONSIVE_DISABLE_BROWSER_WIDTH',
242 'ADVANCED_ADS_SUPPRESS_PLUGIN_ERROR_NOTICES',
243 'ADVANCED_ADS_TRACKING_DEBUG',
244 'ADVANCED_ADS_TRACKING_NO_HOURLY_LIMIT',
245 ) );
246
247 $result = array();
248 foreach ( $constants as $constant ) {
249 if ( defined( $constant ) ) {
250 $result[] = $constant;
251 }
252 }
253 return $result;
254 }
255
256 /**
257 * check for potential jQuery errors
258 * only script, so no return, but direct output
259 *
260 */
261 public static function jquery_ui_conflict(){
262 ?>
263 <div id="advads-jqueryui-conflict-message" style="display:none;" class="message error"><p><?php printf( __( 'Possible conflict between jQueryUI library, used by Advanced Ads and other libraries (probably <a href="%s">Twitter Bootstrap</a>). This might lead to misfortunate formats in forms, but should not damage features.', 'advanced-ads' ), 'http://getbootstrap.com/javascript/#js-noconflict' ); ?></p></div>
264 <script>// string from jquery-ui source code
265 jQuery(document).ready(function(){
266 var needle = 'var g="string"==typeof f,h=c.call(arguments,1)';
267 if ( jQuery.fn.button.toString().indexOf( needle ) === -1 || jQuery.fn.tooltip.toString().indexOf( needle ) === -1 ) {
268 jQuery( '#advads-jqueryui-conflict-message' ).show();
269 }
270 });
271 </script><?php
272 }
273 }
274