PluginProbe
Autoptimize / 3.0.3
Autoptimize v3.0.3
2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 All 107 releases
← All changes | classes/autoptimizeUtils.php +116 -2 2.6.03.0.3 View file →
@@ -58,9 +58,9 @@
58 58 *
59 59 * @param string $string String.
60 60 * @param string|null $encoding Encoding.
61 61 *
62 - * @return int Number of charcters or bytes in given $string
62 + * @return int Number of characters or bytes in given $string
63 63 * (characters if/when supported, bytes otherwise).
64 64 */
65 65 public static function strlen( $string, $encoding = null )
66 66 {
@@ -203,9 +203,9 @@
203 203 return $results[ $cdn_url ];
204 204 }
205 205
206 206 /**
207 - * When siteurl contans a path other than '/' and the CDN URL does not have
207 + * When siteurl contains a path other than '/' and the CDN URL does not have
208 208 * a path or it's path is '/', this will modify the CDN URL's path component
209 209 * to match that of the siteurl.
210 210 * This is to support "magic" CDN urls that worked that way before v2.4...
211 211 *
@@ -392,6 +392,120 @@
392 392
393 393 $length = strlen( $test );
394 394
395 395 return ( substr( $str, -$length, $length ) === $test );
396 + }
397 +
398 + /**
399 + * Returns true if a pagecache is found, false if not.
400 + * Now used to show notice, might be used later on to (un)hide page caching in AO if no page cache found.
401 + *
402 + * @return bool
403 + */
404 + public static function find_pagecache( $disregard_transient = false ) {
405 + static $_found_pagecache = null;
406 +
407 + if ( null === $_found_pagecache ) {
408 + $_page_cache_constants = array( 'NgInx' => 'NGINX_HELPER_BASENAME', 'Kinsta' => 'KINSTA_CACHE_ZONE', 'Presslabs' => 'PL_INSTANCE_REF', '' => 'Pressidium', 'Cache Enabler' => 'CACHE_ENABLER_VERSION', 'Speed Booster Pack' => 'SBP_PLUGIN_NAME', 'Servebolt' => 'SERVEBOLT_PLUGIN_FILE', 'WP CloudFlare Super Page Cache' => 'SWCFPC_PLUGIN_PATH', 'Cachify' => 'CACHIFY_CACHE_DIR', 'WP Rocket' => 'WP_ROCKET_CACHE_PATH', 'WP Optimize' => 'WPO_VERSION', 'Autoptimize Pro' => 'AO_PRO_PAGECACHE_CACHE_DIR' );
409 + $_page_cache_classes = array( 'Swift Performance' => 'Swift_Performance_Cache', 'WP Fastest Cache' => 'WpFastestCache', 'Quick Cache' => 'c_ws_plugin__qcache_purging_routines', 'ZenCache' => 'zencache', 'Comet Cache' => 'comet_cache', 'WP Engine' => 'WpeCommon', 'Flywheel' => 'FlywheelNginxCompat', 'Pagely' => 'PagelyCachePurge' );
410 + $_page_cache_functions = array( 'WP Super Cache' => 'wp_cache_clear_cache', 'W3 Total Cache' => 'w3tc_pgcache_flush', 'WP Fast Cache' => 'wp_fast_cache_bulk_delete_all', 'Rapidcache' => 'rapidcache_clear_cache', 'Siteground' => 'sg_cachepress_purge_cache', 'WP Super Cache' => 'prune_super_cache' );
411 +
412 + $_found_pagecache = false;
413 + if ( true !== $disregard_transient ) {
414 + $_ao_pagecache_transient = 'autoptimize_pagecache_check';
415 + $_found_pagecache = get_transient( $_ao_pagecache_transient );
416 + }
417 +
418 + if ( current_user_can( 'manage_options' ) && false === $_found_pagecache ) {
419 + // loop through known pagecache constants.
420 + foreach ( $_page_cache_constants as $_name => $_constant ) {
421 + if ( defined( $_constant ) ) {
422 + $_found_pagecache = $_name;
423 + break;
424 + }
425 + }
426 + // and loop through known pagecache classes.
427 + if ( false === $_found_pagecache ) {
428 + foreach ( $_page_cache_classes as $_name => $_class ) {
429 + if ( class_exists( $_class ) ) {
430 + $_found_pagecache = $_name;
431 + break;
432 + }
433 + }
434 + }
435 + // and loop through known pagecache functions.
436 + if ( false === $_found_pagecache ) {
437 + foreach ( $_page_cache_functions as $_name => $_function ) {
438 + if ( function_exists( $_function ) ) {
439 + $_found_pagecache = $_name;
440 + break;
441 + }
442 + }
443 + }
444 +
445 + // store in transient for 1 week if pagecache found.
446 + if ( true === $_found_pagecache && true !== $disregard_transient ) {
447 + set_transient( $_ao_pagecache_transient, true, WEEK_IN_SECONDS );
448 + }
449 + }
450 + }
451 +
452 + return $_found_pagecache;
453 + }
454 +
455 + /**
456 + * Returns true if on one of the AO settings tabs, false if not.
457 + * Used to limit notifications to AO settings pages.
458 + *
459 + * @return bool
460 + */
461 + public static function is_ao_settings() {
462 + $_is_ao_settings = ( str_replace( array( 'autoptimize', 'autoptimize_imgopt', 'ao_critcss', 'autoptimize_extra', 'ao_partners' ), '', $_SERVER['REQUEST_URI'] ) !== $_SERVER['REQUEST_URI'] ? true : false );
463 + return $_is_ao_settings;
464 + }
465 +
466 + /**
467 + * Returns false if no conflicting plugins are found, the name if the plugin if found.
468 + *
469 + * @return bool|string
470 + */
471 + public static function find_potential_conflicts() {
472 + if ( defined( 'WPFC_WP_CONTENT_BASENAME' ) ) {
473 + $_wpfc_options = json_decode( get_option( 'WpFastestCache' ) );
474 + foreach ( array( 'wpFastestCacheMinifyCss', 'wpFastestCacheCombineCss','wpFastestCacheCombineJs' ) as $_wpfc_conflicting ) {
475 + if ( isset( $_wpfc_options->$_wpfc_conflicting ) && $_wpfc_options->$_wpfc_conflicting === 'on' ) {
476 + return 'WP Fastest Cache';
477 + }
478 + }
479 + } elseif ( defined( 'W3TC_VERSION' ) ) {
480 + $w3tcConfig = file_get_contents( WP_CONTENT_DIR . '/w3tc-config/master.php' );
481 + $w3tc_minify_on = strpos( $w3tcConfig, '"minify.enabled": true' );
482 + if ( $w3tc_minify_on ) {
483 + return 'W3 Total Cache';
484 + }
485 + } elseif ( defined('SiteGround_Optimizer\VERSION') ) {
486 + if ( get_option('siteground_optimizer_optimize_css') == 1 || get_option('siteground_optimizer_optimize_javascript') == 1 || get_option('siteground_optimizer_combine_javascript') == 1 || get_option('siteground_optimizer_combine_css') == 1 ) {
487 + return 'Siteground Optimizer';
488 + }
489 + } elseif ( defined( 'WPO_VERSION' ) ) {
490 + $_wpo_options = get_site_option( 'wpo_minify_config' );
491 + if ( is_array( $_wpo_options ) && $_wpo_options['enabled'] == 1 && ( $_wpo_options['enable_css'] == 1 || $_wpo_options['enable_js'] == 1 ) ) {
492 + return 'WP Optimize';
493 + }
494 + } elseif ( defined( 'WPACU_PLUGIN_VERSION' ) || defined( 'WPACU_PRO_PLUGIN_VERSION' ) ) {
495 + $wpacuSettingsClass = new \WpAssetCleanUp\Settings();
496 + $wpacuSettings = $wpacuSettingsClass->getAll();
497 +
498 + if ( $wpacuSettings['minify_loaded_css'] || $wpacuSettings['minify_loaded_js'] || $wpacuSettings['combine_loaded_js'] || $wpacuSettings['combine_loaded_css'] ) {
499 + return 'Asset Cleanup';
500 + }
501 + } elseif ( defined( 'WP_ROCKET_VERSION' ) && function_exists( 'get_rocket_option' ) ) {
502 + if ( get_rocket_option( 'minify_js' ) || get_rocket_option( 'minify_concatenate_js' ) || get_rocket_option( 'minify_css' ) || get_rocket_option( 'minify_concatenate_css' ) || get_rocket_option('async_css' ) ) {
503 + return 'WP Rocket';
504 + }
505 + } elseif ( function_exists( 'fvm_get_settings' ) ) {
506 + return 'Fast Velocity Minify';
507 + }
508 +
509 + return false;
396 510 }
397 511 }