Media Cleaner - Version 5.5.0

Version Description

  • Fix: Support for ACF Aspect Ratio Crop, Tasty Pins, and more extensions.
  • Info: This plugin is a lot of work. Please help by giving it a nice review, here: https://wordpress.org/support/plugin/media-cleaner/reviews/?rate=5#new-post. Thank you :)
Download this release

Release Info

Developer TigrouMeow
Plugin Icon 128x128 Media Cleaner
Version 5.5.0
Comparing to
See all releases

Code changes from version 5.4.9 to 5.5.0

Files changed (6) hide show
  1. common/admin.css +3 -4
  2. common/admin.php +105 -8
  3. core.php +1 -1
  4. media-cleaner.php +2 -2
  5. readme.txt +8 -3
  6. views/menu-screen.php +35 -57
common/admin.css CHANGED
@@ -63,7 +63,7 @@
63
  .meow-box {
64
  box-sizing: border-box;
65
  border: 1px solid #e5e5e5;
66
- box-shadow: 2px 2px 1px rgba(0,0,0,.02);
67
  background: #fff;
68
  color: #444;
69
  margin-bottom: 15px;
@@ -80,13 +80,12 @@
80
  }
81
 
82
  .meow-box h3 {
83
- font-size: 13px;
84
- padding: 4px 12px;
85
  margin: 0;
86
  background: #3c3c3c;
87
  color: #ffffff;
88
  text-transform: uppercase;
89
- border-top-right-radius: 8px;
90
  /*border-bottom: 1px solid #eee;*/
91
  }
92
 
63
  .meow-box {
64
  box-sizing: border-box;
65
  border: 1px solid #e5e5e5;
66
+ box-shadow: 0px 3px 5px rgba(0, 0, 0, .1);
67
  background: #fff;
68
  color: #444;
69
  margin-bottom: 15px;
80
  }
81
 
82
  .meow-box h3 {
83
+ font-size: 14px;
84
+ padding: 10px 12px;
85
  margin: 0;
86
  background: #3c3c3c;
87
  color: #ffffff;
88
  text-transform: uppercase;
 
89
  /*border-bottom: 1px solid #eee;*/
90
  }
91
 
common/admin.php CHANGED
@@ -7,7 +7,7 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
7
  public static $logo = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxIiB2aWV3Qm94PSIwIDAgMTY1IDE2NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c3R5bGU+CiAgICAuc3Qye2ZpbGw6IzgwNDYyNX0uc3Qze2ZpbGw6I2ZkYTk2MH0KICA8L3N0eWxlPgogIDxwYXRoIGQ9Ik03MiA3YTc2IDc2IDAgMCAxIDg0IDkxQTc1IDc1IDAgMSAxIDcyIDd6IiBmaWxsPSIjNGE2YjhjIi8+CiAgPHBhdGggZD0iTTQ4IDQ4YzIgNSAyIDEwIDUgMTQgNSA4IDEzIDE3IDIyIDIwbDEtMTBjMS0yIDMtMyA1LTNoMTNjMiAwIDQgMSA1IDNsMyA5IDQtMTBjMi0zIDYtMiA5LTJoMTFjMyAyIDMgNSAzIDhsMiAzN2MwIDMtMSA3LTQgOGgtMTJjLTIgMC0zLTItNS00LTEgMS0yIDMtNCAzLTUgMS05IDEtMTMtMS0zIDItNSAyLTkgMnMtOSAxLTEwLTNjLTItNC0xLTggMC0xMi04LTMtMTUtNy0yMi0xMi03LTctMTUtMTQtMjAtMjMtMy00LTUtOC01LTEzIDEtNCAzLTEwIDYtMTMgNC0zIDEyLTIgMTUgMnoiIGZpbGw9IiMxMDEwMTAiLz4KICA8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNDMgNTFsNCAxMS02IDVoLTZjLTMtNS0zLTExIDAtMTYgMi0yIDYtMyA4IDB6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3IDYybDMgNmMwIDMgMCA0LTIgNnMtNCAyLTcgMmwtNi05aDZsNi01eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01MCA2OGw4IDljLTMgMy01IDYtOSA4bC04LTljMyAwIDUgMCA3LTJzMy0zIDItNnoiLz4KICA8cGF0aCBkPSJNODIgNzRoMTJsNSAxOCAzIDExIDgtMjloMTNsMiA0MmgtOGwtMS0yLTEtMzEtMTAgMzItNyAxLTktMzMtMSAyOS0xIDRoLThsMy00MnoiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTggNzdsNSA1Yy0xIDQtMiA4LTcgOGwtNy01YzQtMiA2LTUgOS04eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MyA4Mmw5IDUtNiA5LTEwLTZjNSAwIDYtNCA3LTh6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTcyIDg3bDMgMS0xIDExLTgtMyA2LTEweiIvPgo8L3N2Zz4K';
8
 
9
  public static $loaded = false;
10
- public static $admin_version = "2.2";
11
 
12
  public $prefix; // prefix used for actions, filters (mfrh)
13
  public $mainfile; // plugin main file (media-file-renamer.php)
@@ -21,6 +21,11 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
21
  add_action( 'admin_menu', array( $this, 'admin_menu_start' ) );
22
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
23
  add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
 
 
 
 
 
24
  }
25
  MeowApps_Admin::$loaded = true;
26
  }
@@ -51,6 +56,16 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
51
  add_filter( 'edd_sl_api_request_verify_ssl', array( $this, 'request_verify_ssl' ), 10, 0 );
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
54
  function request_verify_ssl() {
55
  return get_option( 'force_sslverify', false );
56
  }
@@ -390,13 +405,91 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
390
  </div>
391
  </div>
392
 
393
- <h2>Recommendations</h2>
394
- <div style="background: white; padding: 5px 15px 5px 15px; box-shadow: 2px 2px 1px rgba(0,0,0,.02);">
395
- <p>
396
- <?php _e( 'Too many WordPress installs are blown-up with useless and/or huge plugins, and bad practices. But that is because most users are overwhelmed by the diversity and immensity of the WordPress jungle. One rule of thumb is to keep your install the simplest as possible, with the least amount of plugins, in number and weight.', 'meowapps' )?>
397
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  <p>
399
- <?php _e( 'Articles are kept being updated on the Meow Apps website, with all the latest recommendations. Please have a look and make your WordPress simpler, faster, better: ', 'meowapps' )?>
400
  <a href='https://meowapps.com/debugging-wordpress/' target='_blank'>
401
  How To Debug</a>,
402
  <a href='https://meowapps.com/seo-optimization/' target='_blank'>
@@ -452,7 +545,11 @@ if ( !class_exists( 'MeowApps_Admin' ) ) {
452
 
453
  <?php
454
  }
455
- echo "<br /><small style='color: lightgray;'>Meow Admin " . MeowApps_Admin::$admin_version . "</small></div>";
 
 
 
 
456
  }
457
 
458
  // HELPERS
7
  public static $logo = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxIiB2aWV3Qm94PSIwIDAgMTY1IDE2NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8c3R5bGU+CiAgICAuc3Qye2ZpbGw6IzgwNDYyNX0uc3Qze2ZpbGw6I2ZkYTk2MH0KICA8L3N0eWxlPgogIDxwYXRoIGQ9Ik03MiA3YTc2IDc2IDAgMCAxIDg0IDkxQTc1IDc1IDAgMSAxIDcyIDd6IiBmaWxsPSIjNGE2YjhjIi8+CiAgPHBhdGggZD0iTTQ4IDQ4YzIgNSAyIDEwIDUgMTQgNSA4IDEzIDE3IDIyIDIwbDEtMTBjMS0yIDMtMyA1LTNoMTNjMiAwIDQgMSA1IDNsMyA5IDQtMTBjMi0zIDYtMiA5LTJoMTFjMyAyIDMgNSAzIDhsMiAzN2MwIDMtMSA3LTQgOGgtMTJjLTIgMC0zLTItNS00LTEgMS0yIDMtNCAzLTUgMS05IDEtMTMtMS0zIDItNSAyLTkgMnMtOSAxLTEwLTNjLTItNC0xLTggMC0xMi04LTMtMTUtNy0yMi0xMi03LTctMTUtMTQtMjAtMjMtMy00LTUtOC01LTEzIDEtNCAzLTEwIDYtMTMgNC0zIDEyLTIgMTUgMnoiIGZpbGw9IiMxMDEwMTAiLz4KICA8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNDMgNTFsNCAxMS02IDVoLTZjLTMtNS0zLTExIDAtMTYgMi0yIDYtMyA4IDB6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTQ3IDYybDMgNmMwIDMgMCA0LTIgNnMtNCAyLTcgMmwtNi05aDZsNi01eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01MCA2OGw4IDljLTMgMy01IDYtOSA4bC04LTljMyAwIDUgMCA3LTJzMy0zIDItNnoiLz4KICA8cGF0aCBkPSJNODIgNzRoMTJsNSAxOCAzIDExIDgtMjloMTNsMiA0MmgtOGwtMS0yLTEtMzEtMTAgMzItNyAxLTktMzMtMSAyOS0xIDRoLThsMy00MnoiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTggNzdsNSA1Yy0xIDQtMiA4LTcgOGwtNy01YzQtMiA2LTUgOS04eiIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik02MyA4Mmw5IDUtNiA5LTEwLTZjNSAwIDYtNCA3LTh6Ii8+CiAgPHBhdGggY2xhc3M9InN0MyIgZD0iTTcyIDg3bDMgMS0xIDExLTgtMyA2LTEweiIvPgo8L3N2Zz4K';
8
 
9
  public static $loaded = false;
10
+ public static $admin_version = "2.3";
11
 
12
  public $prefix; // prefix used for actions, filters (mfrh)
13
  public $mainfile; // plugin main file (media-file-renamer.php)
21
  add_action( 'admin_menu', array( $this, 'admin_menu_start' ) );
22
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
23
  add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
24
+ add_action( 'wp_ajax_meow_perf_load', array( $this, 'wp_ajax_meow_perf_load' ) );
25
+ add_action( 'wp_ajax_meow_file_check', array( $this, 'wp_ajax_meow_file_check' ) );
26
+ if ( $_GET['page'] === 'meowapps-main-menu' ) {
27
+ add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
28
+ }
29
  }
30
  MeowApps_Admin::$loaded = true;
31
  }
56
  add_filter( 'edd_sl_api_request_verify_ssl', array( $this, 'request_verify_ssl' ), 10, 0 );
57
  }
58
 
59
+ function wp_ajax_meow_perf_load() {
60
+ return 'Did nothing but a blank request.';
61
+ }
62
+
63
+ function wp_ajax_meow_file_check() {
64
+ $tmpfile = wp_tempnam();
65
+ unlink( $tmpfile );
66
+ return "Created and deleted $tmpfile.";
67
+ }
68
+
69
  function request_verify_ssl() {
70
  return get_option( 'force_sslverify', false );
71
  }
405
  </div>
406
  </div>
407
 
408
+ <h2>WordPress Performance & Recommendations</h2>
409
+ <div style="background: white; padding: 5px 15px 5px 15px; box-shadow: 2px 2px 1px rgba(0,0,0,.02); margin-bottom: 15px;">
410
+ <p><?php _e( 'The <b>Empty Request Time</b> helps you analyzing the raw performance of your install by giving you the average time it takes to run an empty request to your server. You can try to disable some plugins (or change their options) then and click on Reset to see how it influences the results. With <b>File Operation Time</b>, you will find out if your server is slow with files. An excellent install would have an Empty Request Time of less than 500 ms. Keep it absolutely under 2,000 ms. File Operation Time should take only a few milliseconds more than the Empty Request Time. For more information about this, <a href="https://meowapps.com/clean-optimize-wordpress/#Optimize_your_Empty_Request_Time" target="_blank">click here</a>.', 'meowapps' ); ?></p>
411
+ </div>
412
+
413
+ <div style="float: left; margin-right: 10px; text-align: center; padding: 10px; background: white; width: 200px; border: 1px solid #e2e2e2;">
414
+ <div style='font-size: 14px; line-height: 14px; margin-bottom: 20px;'>Empty Request Time</div>
415
+ <div style='font-size: 32px; line-height: 32px; margin-bottom: 10px;' id='meow-perf-load-average'>N/A</div>
416
+ <div style='font-size: 12px; line-height: 12px; margin-bottom: 20px;'>Based on
417
+ <span id='meow-perf-load-count'>0</span> request(s)
418
+ </div>
419
+ <input type='submit' style='text-align: center; width: 100%;' id="meow-perf-reset" value="Reset" class="button button-primary">
420
+ </div>
421
+
422
+ <div style="float: left; margin-right: 10px; text-align: center; padding: 10px; background: white; width: 200px; border: 1px solid #e2e2e2;">
423
+ <div style='font-size: 14px; line-height: 14px; margin-bottom: 20px;'>File Operation Time</div>
424
+ <div style='font-size: 32px; line-height: 32px; margin-bottom: 10px;' id='meow-file-check-time'>N/A</div>
425
+ <div style='font-size: 12px; line-height: 12px; margin-bottom: 20px;'>Create temporary file and delete it.</div>
426
+ <input type='submit' style='text-align: center; width: 100%;' id="meow-file-check-start" value="Check" class="button button-primary">
427
+ </div>
428
+
429
+ <div style="clear: both;"></div>
430
+
431
+ <script>
432
+ (function ($) {
433
+ var calls = 0;
434
+ var times = [];
435
+
436
+ $('#meow-perf-reset').on('click', function () {
437
+ calls = 0;
438
+ times = [];
439
+ $('#meow-perf-load-average').text('N/A');
440
+ $('#meow-perf-load-count').text('0');
441
+ });
442
+
443
+ function perfLoad() {
444
+ var start = new Date().getTime();
445
+ $.ajax(ajaxurl, {
446
+ method: 'post',
447
+ dataType: 'json',
448
+ data: {
449
+ action: 'meow_perf_load',
450
+ }
451
+ }).done(function (response) {
452
+ var end = new Date().getTime();
453
+ var time = end - start;
454
+ calls++;
455
+ times.push(time);
456
+ var sum = times.reduce(function(a, b) { return a + b; });
457
+ var avg = Math.ceil(sum / times.length);
458
+ $('#meow-perf-load-average').text(avg + ' ms');
459
+ $('#meow-perf-load-count').text(calls);
460
+ setTimeout(perfLoad, 5000);
461
+ });
462
+ };
463
+
464
+ function perfFile() {
465
+ var start = new Date().getTime();
466
+ $.ajax(ajaxurl, {
467
+ method: 'post',
468
+ dataType: 'json',
469
+ data: {
470
+ action: 'meow_file_check',
471
+ }
472
+ }).done(function (response) {
473
+ var end = new Date().getTime();
474
+ var time = end - start;
475
+ $('#meow-file-check-time').text(time + ' ms');
476
+ $('#meow-file-check-start').text('Check');
477
+ });
478
+ };
479
+
480
+ $('#meow-file-check-start').on('click', function () {
481
+ $('#meow-file-check-start').text('...');
482
+ perfFile();
483
+ });
484
+
485
+ setTimeout(perfLoad, 1500);
486
+
487
+ })(jQuery);
488
+ </script>
489
+
490
+ <div style="background: white; padding: 5px 15px 5px 15px; box-shadow: 2px 2px 1px rgba(0,0,0,.02); margin-top: 15px;">
491
  <p>
492
+ <?php _e( 'Too many WordPress installs are blown-up with useless and/or huge plugins, and bad practices. But that is because most users are overwhelmed by the diversity and immensity of the WordPress jungle. One rule of thumb is to keep your install the simplest as possible, with the least number of plugins (avoiding heavy ones too) and a good hosting service (avoid VPS except if you know exactly what you are doing). Articles are kept being updated on the Meow Apps website, with all the latest recommendations: ', 'meowapps' )?>
493
  <a href='https://meowapps.com/debugging-wordpress/' target='_blank'>
494
  How To Debug</a>,
495
  <a href='https://meowapps.com/seo-optimization/' target='_blank'>
545
 
546
  <?php
547
  }
548
+ }
549
+
550
+ function admin_footer_text( $current ) {
551
+ return "Thanks for using <a href='https://meowapps.com'>Meow Apps</a>! This is the Meow Admin " .
552
+ MeowApps_Admin::$admin_version . ". <br /><i>Loaded from " . __FILE__ . "</i>";
553
  }
554
 
555
  // HELPERS
core.php CHANGED
@@ -23,7 +23,7 @@ class Meow_WPMC_Core {
23
  $this->admin = $admin;
24
  $this->site_url = get_site_url();
25
  $this->current_method = get_option( 'wpmc_method', 'media' );
26
- $types = "jpg|jpeg|jpe|gif|png|tiff|bmp|csv|pdf|xls|xlsx|doc|docx|tiff|mp3|mp4|wav|lua";
27
  $this->regex_file = str_replace( "MIMETYPES", $types, $this->regex_file );
28
  $this->servername = str_replace( 'http://', '', str_replace( 'https://', '', $this->site_url ) );
29
  $this->upload_folder = wp_upload_dir();
23
  $this->admin = $admin;
24
  $this->site_url = get_site_url();
25
  $this->current_method = get_option( 'wpmc_method', 'media' );
26
+ $types = "jpg|jpeg|jpe|gif|png|tiff|bmp|csv|pdf|xls|xlsx|doc|docx|odt|wpd|rtf|tiff|mp3|mp4|wav|lua";
27
  $this->regex_file = str_replace( "MIMETYPES", $types, $this->regex_file );
28
  $this->servername = str_replace( 'http://', '', str_replace( 'https://', '', $this->site_url ) );
29
  $this->upload_folder = wp_upload_dir();
media-cleaner.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Media Cleaner
4
  Plugin URI: https://meowapps.com
5
  Description: Clean your Media Library, many options, trash system.
6
- Version: 5.4.9
7
  Author: Jordy Meow
8
  Author URI: https://meowapps.com
9
  Text Domain: media-cleaner
@@ -25,7 +25,7 @@ if ( is_admin() ) {
25
 
26
  global $wpmc_version;
27
  global $wpmc;
28
- $wpmc_version = '5.4.9';
29
 
30
  require __DIR__ . '/admin.php';
31
  require __DIR__ . '/core.php';
3
  Plugin Name: Media Cleaner
4
  Plugin URI: https://meowapps.com
5
  Description: Clean your Media Library, many options, trash system.
6
+ Version: 5.5.0
7
  Author: Jordy Meow
8
  Author URI: https://meowapps.com
9
  Text Domain: media-cleaner
25
 
26
  global $wpmc_version;
27
  global $wpmc;
28
+ $wpmc_version = '5.5.0';
29
 
30
  require __DIR__ . '/admin.php';
31
  require __DIR__ . '/core.php';
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: TigrouMeow
3
  Tags: clean, delete, file, files, images, image, media, library, upload, acf, gutenberg
4
  Donate link: https://commerce.coinbase.com/checkout/d047546a-77a8-41c8-9ea9-4a950f61832f
5
  Requires at least: 4.8
6
- Tested up to: 5.2
7
  Requires PHP: 7.0
8
- Stable tag: 5.4.9
9
 
10
  Clean your WordPress from unused or broken media and files. It has its own trash system and recovery features. Please read the description.
11
 
@@ -38,7 +38,8 @@ With the Filesystem Analysis, [Media Cleaner Pro](https://meowapps.com/media-cle
38
  - ACF (+ ACF Widgets)
39
  - Divi Builder
40
  - Fusion Builder (Avada)
41
- - Visual Composer (WPBakery)
 
42
  - Elementor
43
  - Beaver Builder
44
  - Brizy Builder
@@ -71,6 +72,10 @@ Better to be safe than sorry. This plugin deletes files! Therefore, backup is no
71
 
72
  == Changelog ==
73
 
 
 
 
 
74
  = 5.4.9 =
75
  * Fix: ACF File field wasn't being detected properly in some cases.
76
  * Fix: Support for WPBakery Masonry Grid and probably for many more cases than just this one.
3
  Tags: clean, delete, file, files, images, image, media, library, upload, acf, gutenberg
4
  Donate link: https://commerce.coinbase.com/checkout/d047546a-77a8-41c8-9ea9-4a950f61832f
5
  Requires at least: 4.8
6
+ Tested up to: 5.3
7
  Requires PHP: 7.0
8
+ Stable tag: 5.5.0
9
 
10
  Clean your WordPress from unused or broken media and files. It has its own trash system and recovery features. Please read the description.
11
 
38
  - ACF (+ ACF Widgets)
39
  - Divi Builder
40
  - Fusion Builder (Avada)
41
+ - WPBakery Page Builder
42
+ - Visual Composer
43
  - Elementor
44
  - Beaver Builder
45
  - Brizy Builder
72
 
73
  == Changelog ==
74
 
75
+ = 5.5.0 =
76
+ * Fix: Support for ACF Aspect Ratio Crop, Tasty Pins, and more extensions.
77
+ * Info: This plugin is a lot of work. Please help by giving it a nice review, here: https://wordpress.org/support/plugin/media-cleaner/reviews/?rate=5#new-post. Thank you :)
78
+
79
  = 5.4.9 =
80
  * Fix: ACF File field wasn't being detected properly in some cases.
81
  * Fix: Support for WPBakery Masonry Grid and probably for many more cases than just this one.
views/menu-screen.php CHANGED
@@ -154,75 +154,53 @@
154
  _e( "<b>This version is not Pro.</b> This plugin is a lot of work so please consider <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a> in order to receive support and to contribute in the evolution of it. Also, <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a> version will also give you the option <b>to scan the physical files in your /uploads folder</b> and extra checks for the common Page Builders.", 'media-cleaner' );
155
  echo "</p></div>";
156
 
157
- if ( class_exists( 'ACF' ) ) {
158
- echo "<div class='notice notice-warning'><p>";
159
- _e( "<b>ACF has been detected</b>. The free version might detect the files used by ACF correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
160
- echo "</p></div>";
161
- }
162
 
163
- if ( function_exists( '_et_core_find_latest' ) ) {
164
- echo "<div class='notice notice-warning'><p>";
165
- _e( "<b>Divi has been detected</b>. The free version might detect the files used by Divi correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
166
- echo "</p></div>";
167
- }
168
 
169
- if ( class_exists( 'Vc_Manager' ) ) {
170
- echo "<div class='notice notice-warning'><p>";
171
- _e( "<b>Visual Composer has been detected</b>. The free version might detect the files used by Visual Composer correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
172
- echo "</p></div>";
173
- }
174
 
175
- if ( function_exists( 'fusion_builder_map' ) ) {
176
- echo "<div class='notice notice-warning'><p>";
177
- _e( "<b>Fusion Builder has been detected</b>. The free version might detect the files used by Fusion Builder correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
178
- echo "</p></div>";
179
- }
180
 
181
- if ( class_exists( 'FLBuilderModel' ) ) {
182
- echo "<div class='notice notice-warning'><p>";
183
- _e( "<b>Beaver Builder has been detected</b>. The free version might detect the files used by Beaver Builder correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
184
- echo "</p></div>";
185
- }
186
 
187
- if ( function_exists( 'elementor_load_plugin_textdomain' ) ) {
188
- echo "<div class='notice notice-warning'><p>";
189
- _e( "<b>Elementor has been detected</b>. The free version might detect the files used by Elementor correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
190
- echo "</p></div>";
191
- }
192
 
193
- if ( class_exists( 'Oxygen_VSB_Dynamic_Shortcodes' ) ) {
194
- echo "<div class='notice notice-warning'><p>";
195
- _e( "<b>Oxygen Builder has been detected</b>. The free version might detect the files used by Oxygen Builder correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
196
- echo "</p></div>";
197
- }
198
 
199
- if ( class_exists( 'Brizy_Editor_Post' ) ) {
200
- echo "<div class='notice notice-warning'><p>";
201
- _e( "<b>Brizy has been detected</b>. The free version might detect the files used by Brizy correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
202
- echo "</p></div>";
203
- }
204
 
205
- if ( function_exists( 'amd_zlrecipe_convert_to_recipe' ) ) {
206
- echo "<div class='notice notice-warning'><p>";
207
- _e( "<b>ZipList Recipe has been detected</b>. The free version might detect the files used by ZipList Recipe correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
208
- echo "</p></div>";
209
- }
210
 
211
- if ( class_exists( 'UberMenu' ) ) {
212
- echo "<div class='notice notice-warning'><p>";
213
- _e( "<b>UberMenu has been detected</b>. The free version might detect the files used by UberMenu correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
214
- echo "</p></div>";
215
- }
216
 
217
- if ( class_exists( 'X_Bootstrap' ) ) {
218
- echo "<div class='notice notice-warning'><p>";
219
- _e( "<b>Theme X has been detected</b>. The free version might detect the files used by Theme X correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
220
- echo "</p></div>";
221
- }
 
 
 
 
 
 
 
222
 
223
- if ( class_exists( 'SiteOrigin_Panels' ) ) {
224
  echo "<div class='notice notice-warning'><p>";
225
- _e( "<b>SiteOrigin Page Builder has been detected</b>. The free version might detect the files used by SiteOrigin Page Builder correctly, but its full support is only available in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
 
 
226
  echo "</p></div>";
227
  }
228
 
154
  _e( "<b>This version is not Pro.</b> This plugin is a lot of work so please consider <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a> in order to receive support and to contribute in the evolution of it. Also, <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a> version will also give you the option <b>to scan the physical files in your /uploads folder</b> and extra checks for the common Page Builders.", 'media-cleaner' );
155
  echo "</p></div>";
156
 
157
+ $unsupported = array();
 
 
 
 
158
 
159
+ if ( class_exists( 'ACF' ) || function_exists( 'acfw_globals' ) )
160
+ array_push( $unsupported, 'ACF' );
 
 
 
161
 
162
+ if ( function_exists( '_et_core_find_latest' ) )
163
+ array_push( $unsupported, 'Divi' );
 
 
 
164
 
165
+ if ( class_exists( 'Vc_Manager' ) )
166
+ array_push( $unsupported, 'Visual Composer' );
 
 
 
167
 
168
+ if ( function_exists( 'fusion_builder_map' ) )
169
+ array_push( $unsupported, 'Fusion Builder' );
 
 
 
170
 
171
+ if ( function_exists( 'elementor_load_plugin_textdomain' ) )
172
+ array_push( $unsupported, 'Elementor' );
 
 
 
173
 
174
+ if ( class_exists( 'FLBuilderModel' ) )
175
+ array_push( $unsupported, 'Beaver Builder' );
 
 
 
176
 
177
+ if ( class_exists( 'Oxygen_VSB_Dynamic_Shortcodes' ) )
178
+ array_push( $unsupported, 'Oxygen Builder' );
 
 
 
179
 
180
+ if ( class_exists( 'Brizy_Editor_Post' ) )
181
+ array_push( $unsupported, 'Brizy Editor' );
 
 
 
182
 
183
+ if ( function_exists( 'amd_zlrecipe_convert_to_recipe' ) )
184
+ array_push( $unsupported, 'ZipList Recipe' );
 
 
 
185
 
186
+ if ( class_exists( 'UberMenu' ) )
187
+ array_push( $unsupported, 'UberMenu' );
188
+
189
+ if ( class_exists( 'X_Bootstrap' ) )
190
+ array_push( $unsupported, 'Theme X' );
191
+
192
+ if ( class_exists( 'SiteOrigin_Panels' ) )
193
+ array_push( $unsupported, 'SiteOrigin PageBuilder' );
194
+
195
+ // Tasty Pins
196
+ if ( defined( 'TASTY_PINS_PLUGIN_FILE' ) )
197
+ array_push( $unsupported, 'Tasty Pins' );
198
 
199
+ if ( !empty( $unsupported ) ) {
200
  echo "<div class='notice notice-warning'><p>";
201
+ _e( "The following plugins have been detected: ", 'media-cleaner' );
202
+ echo '<b>' . join( ', ', $unsupported ) . '</b>. ';
203
+ _e( "Since they require additional checks, they are only fully supported in <a target='_blank' href='//meowapps.com/media-cleaner'>Media Cleaner Pro</a>.", 'media-cleaner' );
204
  echo "</p></div>";
205
  }
206