Bulk Delete - Version 5.4

Version Description

Ability to delete post, comment and user meta fields

Download this release

Release Info

Developer sudar
Plugin Icon 128x128 Bulk Delete
Version 5.4
Comparing to
See all releases

Code changes from version 5.3 to 5.4

bulk-delete.php CHANGED
@@ -5,7 +5,7 @@ Plugin Script: bulk-delete.php
5
  Plugin URI: http://bulkwp.com
6
  Description: Bulk delete users and posts from selected categories, tags, post types, custom taxonomies or by post status like drafts, scheduled posts, revisions etc.
7
  Donate Link: http://sudarmuthu.com/if-you-wanna-thank-me
8
- Version: 5.3
9
  License: GPL
10
  Author: Sudar
11
  Author URI: http://sudarmuthu.com/
@@ -16,7 +16,7 @@ Domain Path: languages/
16
  Check readme file for full release notes
17
  */
18
 
19
- /* Copyright 2009 Sudar Muthu (email : sudar@sudarmuthu.com)
20
 
21
  This program is free software; you can redistribute it and/or modify
22
  it under the terms of the GNU General Public License, version 2, as
@@ -36,7 +36,7 @@ Check readme file for full release notes
36
  * @package Bulk_Delete
37
  * @subpackage core
38
  * @author Sudar
39
- * @version 5.3
40
  */
41
 
42
  // Exit if accessed directly
@@ -57,7 +57,7 @@ final class Bulk_Delete {
57
  private static $instance;
58
 
59
  // version
60
- const VERSION = '5.3';
61
 
62
  // Numeric constants
63
  const MENU_ORDER = '26.9966';
@@ -72,7 +72,7 @@ final class Bulk_Delete {
72
 
73
  // JS constants
74
  const JS_HANDLE = 'bulk-delete';
75
- const JS_VARIABLE = 'BULK_DELETE';
76
 
77
  // Cron hooks
78
  const CRON_HOOK_CATEGORY = 'do-bulk-delete-cat';
@@ -208,6 +208,11 @@ final class Bulk_Delete {
208
  require_once self::$PLUGIN_DIR . '/include/class-bulk-delete-pages.php';
209
  require_once self::$PLUGIN_DIR . '/include/class-bulk-delete-users.php';
210
 
 
 
 
 
 
211
  require_once self::$PLUGIN_DIR . '/include/misc/class-bulk-delete-misc.php';
212
  require_once self::$PLUGIN_DIR . '/include/misc/class-bulk-delete-jetpack-contact-form-messages.php';
213
 
@@ -245,6 +250,8 @@ final class Bulk_Delete {
245
  private function setup_actions() {
246
  add_action( 'admin_menu', array( &$this, 'add_menu' ) );
247
  add_action( 'admin_init', array( &$this, 'request_handler' ) );
 
 
248
  }
249
 
250
  /**
@@ -253,9 +260,9 @@ final class Bulk_Delete {
253
  function add_menu() {
254
  add_menu_page( __( 'Bulk WP', 'bulk-delete' ), __( 'Bulk WP', 'bulk-delete' ), 'manage_options', self::POSTS_PAGE_SLUG, array( &$this, 'display_posts_page' ), 'dashicons-trash', self::MENU_ORDER );
255
 
256
- $this->posts_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Bulk Delete Posts' , 'bulk-delete' ) , __( 'Bulk Delete Posts' , 'bulk-delete' ) , 'delete_posts' , self::POSTS_PAGE_SLUG , array( &$this , 'display_posts_page' ) );
257
- $this->pages_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Bulk Delete Pages' , 'bulk-delete' ) , __( 'Bulk Delete Pages' , 'bulk-delete' ) , 'delete_pages' , self::PAGES_PAGE_SLUG , array( &$this , 'display_pages_page' ) );
258
- $this->users_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Bulk Delete Users' , 'bulk-delete' ) , __( 'Bulk Delete Users' , 'bulk-delete' ) , 'delete_users' , self::USERS_PAGE_SLUG , array( &$this , 'display_users_page' ) );
259
 
260
  /**
261
  * Runs just after adding all *delete* menu items to Bulk WP main menu
@@ -275,9 +282,9 @@ final class Bulk_Delete {
275
  */
276
  do_action( 'bd_before_secondary_menus' );
277
 
278
- $this->cron_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Bulk Delete Schedules' , 'bulk-delete' ) , __( 'Scheduled Jobs' , 'bulk-delete' ) , 'delete_posts' , self::CRON_PAGE_SLUG , array( &$this , 'display_cron_page' ) );
279
- $this->addon_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Addon Licenses' , 'bulk-delete' ) , __( 'Addon Licenses' , 'bulk-delete' ) , 'activate_plugins' , self::ADDON_PAGE_SLUG , array( 'BD_License' , 'display_addon_page' ) );
280
- $this->info_page = add_submenu_page( self::POSTS_PAGE_SLUG , __( 'Bulk Delete System Info' , 'bulk-delete' ) , __( 'System Info' , 'bulk-delete' ) , 'manage_options' , self::INFO_PAGE_SLUG , array( 'Bulk_Delete_System_Info' , 'display_system_info' ) );
281
 
282
  /**
283
  * Runs just after adding all menu items to Bulk WP main menu
@@ -440,25 +447,27 @@ final class Bulk_Delete {
440
  wp_enqueue_style('jquery-ui-smoothness', $url, false, $ui->ver);
441
  wp_enqueue_style('jquery-ui-timepicker', plugins_url('/style/jquery-ui-timepicker.css', __FILE__), array(), '1.1.1');
442
 
443
- // JavaScript messages
444
- $msg = array(
445
- 'deletewarning' => __('Are you sure you want to delete all the selected posts', 'bulk-delete'),
446
- 'deletewarningusers' => __( 'Are you sure you want to delete all the selected users', 'bulk-delete' )
447
- );
448
-
449
- $error = array(
450
- 'selectone' => __( 'Please select posts from at least one option', 'bulk-delete' ),
451
- 'enterurl' => __( 'Please enter at least one page url', 'bulk-delete' ),
452
- 'enter_cf_key' => __( 'Please enter some value for custom field key', 'bulk-delete' ),
453
- 'enter_title' => __( 'Please enter some value for title', 'bulk-delete' )
454
- );
455
-
456
- $translation_array = array( 'msg' => $msg, 'error' => $error );
457
  wp_localize_script( self::JS_HANDLE, self::JS_VARIABLE, $translation_array );
458
  }
459
 
460
  /**
461
- * Show the delete posts page
 
 
462
  */
463
  function display_posts_page() {
464
  ?>
@@ -478,14 +487,12 @@ final class Bulk_Delete {
478
  <div id = "poststuff">
479
  <div id="post-body" class="metabox-holder columns-2">
480
 
481
- <div id="post-body-content">
482
- <div class="updated" >
483
- <p><strong><?php _e("WARNING: Posts deleted once cannot be retrieved back. Use with caution.", 'bulk-delete'); ?></strong></p>
484
- </div>
485
- </div><!-- #post-body-content -->
486
 
487
  <div id="postbox-container-1" class="postbox-container">
488
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
489
  </div>
490
 
491
  <div id="postbox-container-2" class="postbox-container">
@@ -511,6 +518,7 @@ final class Bulk_Delete {
511
  /**
512
  * Display the delete pages page
513
  *
 
514
  * @since 5.0
515
  */
516
  function display_pages_page() {
@@ -531,14 +539,12 @@ final class Bulk_Delete {
531
  <div id = "poststuff">
532
  <div id="post-body" class="metabox-holder columns-2">
533
 
534
- <div id="post-body-content">
535
- <div class = "updated">
536
- <p><strong><?php _e( 'WARNING: Pages deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
537
- </div>
538
- </div><!-- #post-body-content -->
539
 
540
  <div id="postbox-container-1" class="postbox-container">
541
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
542
  </div>
543
 
544
  <div id="postbox-container-2" class="postbox-container">
@@ -563,6 +569,7 @@ final class Bulk_Delete {
563
 
564
  /**
565
  * Display bulk delete users page
 
566
  */
567
  function display_users_page() {
568
  ?>
@@ -582,14 +589,12 @@ final class Bulk_Delete {
582
  <div id = "poststuff">
583
  <div id="post-body" class="metabox-holder columns-2">
584
 
585
- <div id="post-body-content">
586
- <div class = "updated">
587
- <p><strong><?php _e("WARNING: Users deleted once cannot be retrieved back. Use with caution.", 'bulk-delete'); ?></strong></p>
588
- </div>
589
- </div><!-- #post-body-content -->
590
 
591
  <div id="postbox-container-1" class="postbox-container">
592
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
593
  </div>
594
 
595
  <div id="postbox-container-2" class="postbox-container">
@@ -653,31 +658,56 @@ final class Bulk_Delete {
653
  *
654
  * This method automatically triggers all the actions
655
  */
656
- function request_handler() {
657
 
658
  if ( isset( $_POST['bd_action'] ) ) {
659
  if ( 'delete_pages_' === substr( $_POST['bd_action'], 0, strlen('delete_pages_') ) &&
660
- !check_admin_referer( 'sm-bulk-delete-pages', 'sm-bulk-delete-pages-nonce' ) ) {
661
  return FALSE;
662
  }
663
 
664
  if ( 'delete_posts_' === substr( $_POST['bd_action'], 0, strlen('delete_posts_') ) &&
665
- !check_admin_referer( 'sm-bulk-delete-posts', 'sm-bulk-delete-posts-nonce' ) ) {
666
  return FALSE;
667
  }
668
 
669
  if ( 'delete_users_' === substr( $_POST['bd_action'], 0, strlen('delete_users_') ) &&
670
- !check_admin_referer( 'sm-bulk-delete-users', 'sm-bulk-delete-users-nonce' ) ) {
671
  return FALSE;
672
  }
673
 
 
 
 
 
 
 
 
 
 
 
 
 
 
674
  do_action( 'bd_' . $_POST['bd_action'], $_POST );
675
  }
676
 
677
  if ( isset( $_GET['bd_action'] ) ) {
678
  do_action( 'bd_' . $_GET['bd_action'], $_GET );
679
  }
 
680
 
 
 
 
 
 
 
 
 
 
 
 
681
  }
682
  }
683
 
5
  Plugin URI: http://bulkwp.com
6
  Description: Bulk delete users and posts from selected categories, tags, post types, custom taxonomies or by post status like drafts, scheduled posts, revisions etc.
7
  Donate Link: http://sudarmuthu.com/if-you-wanna-thank-me
8
+ Version: 5.4
9
  License: GPL
10
  Author: Sudar
11
  Author URI: http://sudarmuthu.com/
16
  Check readme file for full release notes
17
  */
18
 
19
+ /** Copyright 2009 Sudar Muthu (email : sudar@sudarmuthu.com)
20
 
21
  This program is free software; you can redistribute it and/or modify
22
  it under the terms of the GNU General Public License, version 2, as
36
  * @package Bulk_Delete
37
  * @subpackage core
38
  * @author Sudar
39
+ * @version 5.4
40
  */
41
 
42
  // Exit if accessed directly
57
  private static $instance;
58
 
59
  // version
60
+ const VERSION = '5.4';
61
 
62
  // Numeric constants
63
  const MENU_ORDER = '26.9966';
72
 
73
  // JS constants
74
  const JS_HANDLE = 'bulk-delete';
75
+ const JS_VARIABLE = 'BulkWP';
76
 
77
  // Cron hooks
78
  const CRON_HOOK_CATEGORY = 'do-bulk-delete-cat';
208
  require_once self::$PLUGIN_DIR . '/include/class-bulk-delete-pages.php';
209
  require_once self::$PLUGIN_DIR . '/include/class-bulk-delete-users.php';
210
 
211
+ require_once self::$PLUGIN_DIR . '/include/meta/class-bulk-delete-meta.php';
212
+ require_once self::$PLUGIN_DIR . '/include/meta/class-bulk-delete-post-meta.php';
213
+ require_once self::$PLUGIN_DIR . '/include/meta/class-bulk-delete-comment-meta.php';
214
+ require_once self::$PLUGIN_DIR . '/include/meta/class-bulk-delete-user-meta.php';
215
+
216
  require_once self::$PLUGIN_DIR . '/include/misc/class-bulk-delete-misc.php';
217
  require_once self::$PLUGIN_DIR . '/include/misc/class-bulk-delete-jetpack-contact-form-messages.php';
218
 
250
  private function setup_actions() {
251
  add_action( 'admin_menu', array( &$this, 'add_menu' ) );
252
  add_action( 'admin_init', array( &$this, 'request_handler' ) );
253
+ add_action( 'bd_pre_bulk_action', array( &$this, 'increase_timeout' ), 9 );
254
+ add_action( 'bd_before_scheduler', array( &$this, 'increase_timeout' ), 9 );
255
  }
256
 
257
  /**
260
  function add_menu() {
261
  add_menu_page( __( 'Bulk WP', 'bulk-delete' ), __( 'Bulk WP', 'bulk-delete' ), 'manage_options', self::POSTS_PAGE_SLUG, array( &$this, 'display_posts_page' ), 'dashicons-trash', self::MENU_ORDER );
262
 
263
+ $this->posts_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Bulk Delete Posts', 'bulk-delete' ), __( 'Bulk Delete Posts', 'bulk-delete' ), 'delete_posts', self::POSTS_PAGE_SLUG, array( &$this, 'display_posts_page' ) );
264
+ $this->pages_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Bulk Delete Pages', 'bulk-delete' ), __( 'Bulk Delete Pages', 'bulk-delete' ), 'delete_pages', self::PAGES_PAGE_SLUG, array( &$this, 'display_pages_page' ) );
265
+ $this->users_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Bulk Delete Users', 'bulk-delete' ), __( 'Bulk Delete Users', 'bulk-delete' ), 'delete_users', self::USERS_PAGE_SLUG, array( &$this, 'display_users_page' ) );
266
 
267
  /**
268
  * Runs just after adding all *delete* menu items to Bulk WP main menu
282
  */
283
  do_action( 'bd_before_secondary_menus' );
284
 
285
+ $this->cron_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Bulk Delete Schedules' , 'bulk-delete' ), __( 'Scheduled Jobs', 'bulk-delete' ), 'delete_posts' , self::CRON_PAGE_SLUG , array( &$this , 'display_cron_page' ) );
286
+ $this->addon_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Addon Licenses' , 'bulk-delete' ), __( 'Addon Licenses', 'bulk-delete' ), 'activate_plugins', self::ADDON_PAGE_SLUG, array( 'BD_License' , 'display_addon_page' ) );
287
+ $this->info_page = add_submenu_page( self::POSTS_PAGE_SLUG, __( 'Bulk Delete System Info', 'bulk-delete' ), __( 'System Info' , 'bulk-delete' ), 'manage_options' , self::INFO_PAGE_SLUG , array( 'Bulk_Delete_System_Info', 'display_system_info' ) );
288
 
289
  /**
290
  * Runs just after adding all menu items to Bulk WP main menu
447
  wp_enqueue_style('jquery-ui-smoothness', $url, false, $ui->ver);
448
  wp_enqueue_style('jquery-ui-timepicker', plugins_url('/style/jquery-ui-timepicker.css', __FILE__), array(), '1.1.1');
449
 
450
+ /**
451
+ * Filter JavaScript array
452
+ *
453
+ * This filter can be used to extend the array that is passed to JavaScript
454
+ *
455
+ * @since 5.4
456
+ */
457
+ $translation_array = apply_filters( 'bd_javascript_array', array(
458
+ 'msg' => array(),
459
+ 'validators' => array(),
460
+ 'dt_iterators' => array(),
461
+ 'pre_action_msg' => array(),
462
+ 'error_msg' => array()
463
+ ) );
464
  wp_localize_script( self::JS_HANDLE, self::JS_VARIABLE, $translation_array );
465
  }
466
 
467
  /**
468
+ * Show the delete posts page.
469
+ *
470
+ * @Todo Move this function to Bulk_Delete_Posts class
471
  */
472
  function display_posts_page() {
473
  ?>
487
  <div id = "poststuff">
488
  <div id="post-body" class="metabox-holder columns-2">
489
 
490
+ <div class="updated" >
491
+ <p><strong><?php _e( 'WARNING: Posts deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
492
+ </div>
 
 
493
 
494
  <div id="postbox-container-1" class="postbox-container">
495
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
496
  </div>
497
 
498
  <div id="postbox-container-2" class="postbox-container">
518
  /**
519
  * Display the delete pages page
520
  *
521
+ * @Todo Move this function to Bulk_Delete_Pages class
522
  * @since 5.0
523
  */
524
  function display_pages_page() {
539
  <div id = "poststuff">
540
  <div id="post-body" class="metabox-holder columns-2">
541
 
542
+ <div class = "updated">
543
+ <p><strong><?php _e( 'WARNING: Pages deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
544
+ </div>
 
 
545
 
546
  <div id="postbox-container-1" class="postbox-container">
547
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
548
  </div>
549
 
550
  <div id="postbox-container-2" class="postbox-container">
569
 
570
  /**
571
  * Display bulk delete users page
572
+ * @Todo Move this function to Bulk_Delete_Users class
573
  */
574
  function display_users_page() {
575
  ?>
589
  <div id = "poststuff">
590
  <div id="post-body" class="metabox-holder columns-2">
591
 
592
+ <div class = "updated">
593
+ <p><strong><?php _e( 'WARNING: Users deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
594
+ </div>
 
 
595
 
596
  <div id="postbox-container-1" class="postbox-container">
597
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo self::VERSION; ?>"></iframe>
598
  </div>
599
 
600
  <div id="postbox-container-2" class="postbox-container">
658
  *
659
  * This method automatically triggers all the actions
660
  */
661
+ public function request_handler() {
662
 
663
  if ( isset( $_POST['bd_action'] ) ) {
664
  if ( 'delete_pages_' === substr( $_POST['bd_action'], 0, strlen('delete_pages_') ) &&
665
+ ! check_admin_referer( 'sm-bulk-delete-pages', 'sm-bulk-delete-pages-nonce' ) ) {
666
  return FALSE;
667
  }
668
 
669
  if ( 'delete_posts_' === substr( $_POST['bd_action'], 0, strlen('delete_posts_') ) &&
670
+ ! check_admin_referer( 'sm-bulk-delete-posts', 'sm-bulk-delete-posts-nonce' ) ) {
671
  return FALSE;
672
  }
673
 
674
  if ( 'delete_users_' === substr( $_POST['bd_action'], 0, strlen('delete_users_') ) &&
675
+ ! check_admin_referer( 'sm-bulk-delete-users', 'sm-bulk-delete-users-nonce' ) ) {
676
  return FALSE;
677
  }
678
 
679
+ if ( 'delete_meta_' === substr( $_POST['bd_action'], 0, strlen('delete_meta_' ) ) &&
680
+ ! check_admin_referer( 'sm-bulk-delete-meta', 'sm-bulk-delete-meta-nonce' ) ) {
681
+ return FALSE;
682
+ }
683
+
684
+ /**
685
+ * Before performing a bulk action
686
+ *
687
+ * This hook is for doing actions just before performing any bulk operation
688
+ *
689
+ * @since 5.4
690
+ */
691
+ do_action( 'bd_pre_bulk_action' );
692
  do_action( 'bd_' . $_POST['bd_action'], $_POST );
693
  }
694
 
695
  if ( isset( $_GET['bd_action'] ) ) {
696
  do_action( 'bd_' . $_GET['bd_action'], $_GET );
697
  }
698
+ }
699
 
700
+ /**
701
+ * Increase PHP timeout.
702
+ *
703
+ * This is to prevent bulk operations from timing out
704
+ *
705
+ * @since 5.4
706
+ */
707
+ public function increase_timeout() {
708
+ if ( ! ini_get( 'safe_mode' ) ) {
709
+ @set_time_limit( 0 );
710
+ }
711
  }
712
  }
713
 
include/class-bd-license-handler.php CHANGED
@@ -83,17 +83,17 @@ class BD_License_Handler {
83
  private function hook_updater( $license_code ) {
84
  $bd = BULK_DELETE();
85
 
86
- if( ! class_exists( 'EDD_SL_Plugin_Updater' ) ) {
87
  require_once Bulk_Delete::$PLUGIN_DIR . '/include/libraries/EDD_SL_Plugin_Updater.php';
88
  }
89
 
90
  $this->updater = new EDD_SL_Plugin_Updater( BD_EDD_API_Wrapper::STORE_URL, $this->plugin_file, array(
91
- 'version' => rawurlencode( $this->version ),
92
- 'license' => rawurlencode( $license_code ),
93
- 'item_name' => rawurlencode( $this->addon_name ),
94
- 'addon_code' => rawurlencode( $this->addon_code ),
95
- 'author' => rawurlencode( $this->author ),
96
- 'url' => rawurlencode( home_url() )
97
  ));
98
  }
99
 
@@ -165,10 +165,10 @@ class BD_License_Handler {
165
  if ( is_array( $input ) && key_exists( $this->addon_code, $input ) ) {
166
  $license_code = trim( $input[ $this->addon_code ] );
167
 
168
- if ( !empty( $license_code ) ) {
169
  if ( ! BD_License::has_valid_license( $this->addon_name, $this->addon_code ) ) {
170
  $activated = BD_License::activate_license( $this->addon_name, $this->addon_code, $license_code );
171
- if ( !$activated ) {
172
  unset( $input[ $this->addon_code ] );
173
  }
174
  }
83
  private function hook_updater( $license_code ) {
84
  $bd = BULK_DELETE();
85
 
86
+ if ( ! class_exists( 'EDD_SL_Plugin_Updater' ) ) {
87
  require_once Bulk_Delete::$PLUGIN_DIR . '/include/libraries/EDD_SL_Plugin_Updater.php';
88
  }
89
 
90
  $this->updater = new EDD_SL_Plugin_Updater( BD_EDD_API_Wrapper::STORE_URL, $this->plugin_file, array(
91
+ 'version' => $this->version,
92
+ 'license' => $license_code,
93
+ 'item_name' => $this->addon_name,
94
+ 'addon_code' => $this->addon_code,
95
+ 'author' => $this->author,
96
+ 'url' => home_url()
97
  ));
98
  }
99
 
165
  if ( is_array( $input ) && key_exists( $this->addon_code, $input ) ) {
166
  $license_code = trim( $input[ $this->addon_code ] );
167
 
168
+ if ( ! empty( $license_code ) ) {
169
  if ( ! BD_License::has_valid_license( $this->addon_name, $this->addon_code ) ) {
170
  $activated = BD_License::activate_license( $this->addon_name, $this->addon_code, $license_code );
171
+ if ( ! $activated ) {
172
  unset( $input[ $this->addon_code ] );
173
  }
174
  }
include/class-bd-license.php CHANGED
@@ -361,85 +361,109 @@ class BD_License {
361
  echo '<li>';
362
  echo '<strong>', __('Delete posts by custom field', 'bulk-delete'), '</strong>', ' - ';
363
  echo __('Adds the ability to delete posts based on custom fields', 'bulk-delete');
364
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
365
  echo '</li>';
366
 
367
  echo '<li>';
368
  echo '<strong>', __( 'Delete posts by title', 'bulk-delete' ), '</strong>', ' - ';
369
  echo __( 'Adds the ability to delete posts based on title', 'bulk-delete' );
370
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
371
  echo '</li>';
372
 
373
  echo '<li>';
374
  echo '<strong>', __( 'Delete posts by duplicate title', 'bulk-delete' ), '</strong>', ' - ';
375
  echo __( 'Adds the ability to delete posts based on duplicate title', 'bulk-delete' );
376
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
 
 
 
 
 
 
377
  echo '</li>';
378
 
379
  echo '<li>';
380
  echo '<strong>', __( 'Delete posts by user role', 'bulk-delete' ), '</strong>', ' - ';
381
  echo __( 'Adds the ability to delete posts based on user role', 'bulk-delete' );
382
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
383
  echo '</li>';
384
 
385
  echo '<li>';
386
  echo '<strong>', __( 'Delete from trash', 'bulk-delete' ), '</strong>', ' - ';
387
  echo __( 'Adds the ability to delete posts and pages from trash', 'bulk-delete' );
388
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
389
- echo '</li>';
390
-
391
- echo '<li>';
392
- echo '<strong>', __( 'Delete Jetpack Contact Form Messages', 'bulk-delete' ), '</strong>', ' - ';
393
- echo __( 'Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion', 'bulk-delete' );
394
- echo ' <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
395
  echo '</li>';
396
 
397
  echo '<li>';
398
  echo '<strong>', __( 'Scheduler Email', 'bulk-delete' ), '</strong>', ' - ';
399
  echo __( 'Sends an email every time a Bulk WP scheduler runs', 'bulk-delete' );
400
- echo ' <a href = "http://bulkwp.com/addons/scheduler-email/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __( 'More Info', 'bulk-delete' ), '</a>.';
401
  echo '</li>';
402
 
403
  echo '<li>';
404
  echo '<strong>', __('Scheduler for deleting Posts by Category', 'bulk-delete'), '</strong>', ' - ';
405
  echo __('Adds the ability to schedule auto delete of posts based on category', 'bulk-delete');
406
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
407
  echo '</li>';
408
 
409
  echo '<li>';
410
  echo '<strong>', __('Scheduler for deleting Posts by Tag', 'bulk-delete'), '</strong>', ' - ';
411
  echo __('Adds the ability to schedule auto delete of posts based on tag', 'bulk-delete');
412
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
413
  echo '</li>';
414
 
415
  echo '<li>';
416
  echo '<strong>', __('Scheduler for deleting Posts by Custom Taxonomy', 'bulk-delete'), '</strong>', ' - ';
417
  echo __('Adds the ability to schedule auto delete of posts based on custom taxonomy', 'bulk-delete');
418
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
419
  echo '</li>';
420
 
421
  echo '<li>';
422
  echo '<strong>', __('Scheduler for deleting Posts by Custom Post Type', 'bulk-delete'), '</strong>', ' - ';
423
  echo __('Adds the ability to schedule auto delete of posts based on custom post type', 'bulk-delete');
424
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
425
  echo '</li>';
426
 
427
  echo '<li>';
428
  echo '<strong>', __('Scheduler for deleting Posts by Post Status', 'bulk-delete'), '</strong>', ' - ';
429
  echo __('Adds the ability to schedule auto delete of posts based on post status like drafts, pending posts, scheduled posts etc.', 'bulk-delete');
430
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
431
  echo '</li>';
432
 
433
  echo '<li>';
434
  echo '<strong>', __('Scheduler for deleting Pages by Status', 'bulk-delete'), '</strong>', ' - ';
435
  echo __('Adds the ability to schedule auto delete pages based on status', 'bulk-delete');
436
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
437
  echo '</li>';
438
 
439
  echo '<li>';
440
  echo '<strong>', __('Scheduler for deleting Users by User Role', 'bulk-delete'), '</strong>', ' - ';
441
  echo __('Adds the ability to schedule auto delete of users based on user role', 'bulk-delete');
442
- echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist">', __('More Info', 'bulk-delete'), '</a>.';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
  echo '</li>';
444
 
445
  echo '</ul>';
@@ -447,8 +471,8 @@ class BD_License {
447
  }
448
 
449
  // hooks
450
- add_action( 'bd_license_form' , array( 'BD_License' , 'display_activate_license_form' ), 100 );
451
- add_action( 'bd_deactivate_license' , array( 'BD_License' , 'deactivate_license' ) );
452
- add_action( 'bd_delete_license' , array( 'BD_License' , 'delete_license' ) );
453
- add_action( 'bd_validate_license' , array( 'BD_License' , 'validate_license' ), 10, 2 );
454
  ?>
361
  echo '<li>';
362
  echo '<strong>', __('Delete posts by custom field', 'bulk-delete'), '</strong>', ' - ';
363
  echo __('Adds the ability to delete posts based on custom fields', 'bulk-delete');
364
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-cf">', __('More Info', 'bulk-delete'), '</a>.';
365
  echo '</li>';
366
 
367
  echo '<li>';
368
  echo '<strong>', __( 'Delete posts by title', 'bulk-delete' ), '</strong>', ' - ';
369
  echo __( 'Adds the ability to delete posts based on title', 'bulk-delete' );
370
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-ti">', __( 'More Info', 'bulk-delete' ), '</a>.';
371
  echo '</li>';
372
 
373
  echo '<li>';
374
  echo '<strong>', __( 'Delete posts by duplicate title', 'bulk-delete' ), '</strong>', ' - ';
375
  echo __( 'Adds the ability to delete posts based on duplicate title', 'bulk-delete' );
376
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-dti">', __( 'More Info', 'bulk-delete' ), '</a>.';
377
+ echo '</li>';
378
+
379
+ echo '<li>';
380
+ echo '<strong>', __( 'Delete posts by attachment', 'bulk-delete' ), '</strong>', ' - ';
381
+ echo __( 'Adds the ability to delete posts based on whether it contains attachment or not', 'bulk-delete' );
382
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-attachment/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-p-at">', __( 'More Info', 'bulk-delete' ), '</a>.';
383
  echo '</li>';
384
 
385
  echo '<li>';
386
  echo '<strong>', __( 'Delete posts by user role', 'bulk-delete' ), '</strong>', ' - ';
387
  echo __( 'Adds the ability to delete posts based on user role', 'bulk-delete' );
388
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-ur">', __( 'More Info', 'bulk-delete' ), '</a>.';
389
  echo '</li>';
390
 
391
  echo '<li>';
392
  echo '<strong>', __( 'Delete from trash', 'bulk-delete' ), '</strong>', ' - ';
393
  echo __( 'Adds the ability to delete posts and pages from trash', 'bulk-delete' );
394
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-th">', __( 'More Info', 'bulk-delete' ), '</a>.';
 
 
 
 
 
 
395
  echo '</li>';
396
 
397
  echo '<li>';
398
  echo '<strong>', __( 'Scheduler Email', 'bulk-delete' ), '</strong>', ' - ';
399
  echo __( 'Sends an email every time a Bulk WP scheduler runs', 'bulk-delete' );
400
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-email/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-se">', __( 'More Info', 'bulk-delete' ), '</a>.';
401
  echo '</li>';
402
 
403
  echo '<li>';
404
  echo '<strong>', __('Scheduler for deleting Posts by Category', 'bulk-delete'), '</strong>', ' - ';
405
  echo __('Adds the ability to schedule auto delete of posts based on category', 'bulk-delete');
406
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-sc">', __('More Info', 'bulk-delete'), '</a>.';
407
  echo '</li>';
408
 
409
  echo '<li>';
410
  echo '<strong>', __('Scheduler for deleting Posts by Tag', 'bulk-delete'), '</strong>', ' - ';
411
  echo __('Adds the ability to schedule auto delete of posts based on tag', 'bulk-delete');
412
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-st">', __('More Info', 'bulk-delete'), '</a>.';
413
  echo '</li>';
414
 
415
  echo '<li>';
416
  echo '<strong>', __('Scheduler for deleting Posts by Custom Taxonomy', 'bulk-delete'), '</strong>', ' - ';
417
  echo __('Adds the ability to schedule auto delete of posts based on custom taxonomy', 'bulk-delete');
418
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-stx">', __('More Info', 'bulk-delete'), '</a>.';
419
  echo '</li>';
420
 
421
  echo '<li>';
422
  echo '<strong>', __('Scheduler for deleting Posts by Custom Post Type', 'bulk-delete'), '</strong>', ' - ';
423
  echo __('Adds the ability to schedule auto delete of posts based on custom post type', 'bulk-delete');
424
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-spt">', __('More Info', 'bulk-delete'), '</a>.';
425
  echo '</li>';
426
 
427
  echo '<li>';
428
  echo '<strong>', __('Scheduler for deleting Posts by Post Status', 'bulk-delete'), '</strong>', ' - ';
429
  echo __('Adds the ability to schedule auto delete of posts based on post status like drafts, pending posts, scheduled posts etc.', 'bulk-delete');
430
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-sps">', __('More Info', 'bulk-delete'), '</a>.';
431
  echo '</li>';
432
 
433
  echo '<li>';
434
  echo '<strong>', __('Scheduler for deleting Pages by Status', 'bulk-delete'), '</strong>', ' - ';
435
  echo __('Adds the ability to schedule auto delete pages based on status', 'bulk-delete');
436
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-sp">', __('More Info', 'bulk-delete'), '</a>.';
437
  echo '</li>';
438
 
439
  echo '<li>';
440
  echo '<strong>', __('Scheduler for deleting Users by User Role', 'bulk-delete'), '</strong>', ' - ';
441
  echo __('Adds the ability to schedule auto delete of users based on user role', 'bulk-delete');
442
+ echo ' <a href = "http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-u-ur">', __('More Info', 'bulk-delete'), '</a>.';
443
+ echo '</li>';
444
+
445
+ echo '<li>';
446
+ echo '<strong>', __( 'Delete Post Meta Fields', 'bulk-delete' ), '</strong>', ' - ';
447
+ echo __( 'Adds the ability to delete post meta fields based on value and to schedule automatic deletion', 'bulk-delete' );
448
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-post-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-m-p">', __( 'More Info', 'bulk-delete' ), '</a>.';
449
+ echo '</li>';
450
+
451
+ echo '<li>';
452
+ echo '<strong>', __( 'Delete Comment Meta Fields', 'bulk-delete' ), '</strong>', ' - ';
453
+ echo __( 'Adds the ability to delete comment meta fields based on value and to schedule automatic deletion', 'bulk-delete' );
454
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-comment-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-m-c">', __( 'More Info', 'bulk-delete' ), '</a>.';
455
+ echo '</li>';
456
+
457
+ echo '<li>';
458
+ echo '<strong>', __( 'Delete User Meta Fields', 'bulk-delete' ), '</strong>', ' - ';
459
+ echo __( 'Adds the ability to delete user meta fields based on value and to schedule automatic deletion', 'bulk-delete' );
460
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-user-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-m-u">', __( 'More Info', 'bulk-delete' ), '</a>.';
461
+ echo '</li>';
462
+
463
+ echo '<li>';
464
+ echo '<strong>', __( 'Delete Jetpack Contact Form Messages', 'bulk-delete' ), '</strong>', ' - ';
465
+ echo __( 'Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion', 'bulk-delete' );
466
+ echo ' <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=addonlist&utm_content=bd-jcm">', __( 'More Info', 'bulk-delete' ), '</a>.';
467
  echo '</li>';
468
 
469
  echo '</ul>';
471
  }
472
 
473
  // hooks
474
+ add_action( 'bd_license_form' , array( 'BD_License', 'display_activate_license_form' ), 100 );
475
+ add_action( 'bd_deactivate_license', array( 'BD_License', 'deactivate_license' ) );
476
+ add_action( 'bd_delete_license' , array( 'BD_License', 'delete_license' ) );
477
+ add_action( 'bd_validate_license' , array( 'BD_License', 'validate_license' ), 10, 2 );
478
  ?>
include/class-bulk-delete-pages.php CHANGED
@@ -120,7 +120,7 @@ class Bulk_Delete_Pages {
120
  }
121
  ?>
122
  </select>
123
- <span class = "bd-pages-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
124
  </td>
125
  </tr>
126
  </table>
@@ -268,16 +268,35 @@ class Bulk_Delete_Pages {
268
  <p>
269
  <span class = "bd-pages-trash-pro" style = "color:red">
270
  <?php _e( 'You need "Bulk Delete From Trash" Addon, to delete pages in Trash.', 'bulk-delete' ); ?>
271
- <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
272
  </span>
273
  </p>
274
  <!-- pages In Trash box end-->
275
  <?php
276
  } else {
277
- Bulk_Delete_From_Trash::render_delete_pages_from_trash();
 
 
 
 
 
278
  }
279
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  }
281
 
282
  add_action( 'bd_delete_pages_by_status', array( 'Bulk_Delete_Pages', 'do_delete_pages_by_status' ) );
 
283
  ?>
120
  }
121
  ?>
122
  </select>
123
+ <span class = "bd-pages-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-sp">Buy now</a></span>
124
  </td>
125
  </tr>
126
  </table>
268
  <p>
269
  <span class = "bd-pages-trash-pro" style = "color:red">
270
  <?php _e( 'You need "Bulk Delete From Trash" Addon, to delete pages in Trash.', 'bulk-delete' ); ?>
271
+ <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-th">Buy now</a>
272
  </span>
273
  </p>
274
  <!-- pages In Trash box end-->
275
  <?php
276
  } else {
277
+ /**
278
+ * Render delete pages from trash box
279
+ *
280
+ * @since 5.4
281
+ */
282
+ do_action( 'bd_render_delete_pages_from_trash' );
283
  }
284
  }
285
+
286
+ /**
287
+ * Filter JS Array and add validation hooks
288
+ *
289
+ * @since 5.4
290
+ * @static
291
+ * @param array $js_array JavaScript Array
292
+ * @return array Modified JavaScript Array
293
+ */
294
+ public static function filter_js_array( $js_array ) {
295
+ $js_array['dt_iterators'][] = '_pages';
296
+ return $js_array;
297
+ }
298
  }
299
 
300
  add_action( 'bd_delete_pages_by_status', array( 'Bulk_Delete_Pages', 'do_delete_pages_by_status' ) );
301
+ add_filter( 'bd_javascript_array', array( 'Bulk_Delete_Pages' , 'filter_js_array' ) );
302
  ?>
include/class-bulk-delete-posts.php CHANGED
@@ -129,7 +129,7 @@ class Bulk_Delete_Posts {
129
  }
130
  ?>
131
  </select>
132
- <span class = "bd-post-status-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
133
  </td>
134
  </tr>
135
  </table>
@@ -425,7 +425,7 @@ class Bulk_Delete_Posts {
425
  }
426
  ?>
427
  </select>
428
- <span class = "bd-cats-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
429
  </td>
430
  </tr>
431
 
@@ -658,7 +658,7 @@ class Bulk_Delete_Posts {
658
  }
659
  ?>
660
  </select>
661
- <span class = "bd-tags-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
662
  </td>
663
  </tr>
664
 
@@ -934,7 +934,7 @@ class Bulk_Delete_Posts {
934
  }
935
  ?>
936
  </select>
937
- <span class = "bd-taxs-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
938
  </td>
939
  </tr>
940
 
@@ -1186,7 +1186,7 @@ class Bulk_Delete_Posts {
1186
  }
1187
  ?>
1188
  </select>
1189
- <span class = "bd-types-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
1190
  </td>
1191
  </tr>
1192
 
@@ -1498,7 +1498,7 @@ class Bulk_Delete_Posts {
1498
  <p>
1499
  <span class = "bd-post-custom-field-pro" style = "color:red">
1500
  <?php _e( 'You need "Bulk Delete Posts by Custom Field" Addon, to delete post by custom field.', 'bulk-delete' ); ?>
1501
- <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
1502
  </span>
1503
  </p>
1504
  <!-- Custom Field box end-->
@@ -1527,7 +1527,7 @@ class Bulk_Delete_Posts {
1527
  <p>
1528
  <span class = "bd-post-title-pro" style = "color:red">
1529
  <?php _e( 'You need "Bulk Delete Posts by Title" Addon, to delete post by title.', 'bulk-delete' ); ?>
1530
- <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
1531
  </span>
1532
  </p>
1533
  <!-- Title box end-->
@@ -1557,7 +1557,7 @@ class Bulk_Delete_Posts {
1557
  <p>
1558
  <span class = "bd-post-title-pro" style = "color:red">
1559
  <?php _e( 'You need "Bulk Delete Posts by Duplicate Title" Addon, to delete post by duplicate title.', 'bulk-delete' ); ?>
1560
- <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
1561
  </span>
1562
  </p>
1563
  <!-- Duplicate Title box end-->
@@ -1585,7 +1585,7 @@ class Bulk_Delete_Posts {
1585
  <p>
1586
  <span class = "bd-post-by-role-pro" style = "color:red">
1587
  <?php _e( 'You need "Bulk Delete Posts by User Role" Addon, to delete post based on User Role', 'bulk-delete' ); ?>
1588
- <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
1589
  </span>
1590
  </p>
1591
  <!-- Posts by user role end-->
@@ -1613,16 +1613,45 @@ class Bulk_Delete_Posts {
1613
  <p>
1614
  <span class = "bd-post-trash-pro" style = "color:red">
1615
  <?php _e( 'You need "Bulk Delete From Trash" Addon, to delete post in Trash.', 'bulk-delete' ); ?>
1616
- <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a>
1617
  </span>
1618
  </p>
1619
  <!-- Posts In Trash box end-->
1620
  <?php
1621
  } else {
1622
- Bulk_Delete_From_Trash::render_delete_posts_from_trash();
 
 
 
 
 
1623
  }
1624
  }
1625
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1626
  /**
1627
  * Process delete cron job request.
1628
  * This should ideally go in a separate class. But I was
@@ -1659,4 +1688,5 @@ add_action( 'bd_delete_posts_by_url' , array( 'Bulk_Delete_Posts' , 'do_de
1659
  add_action( 'bd_delete_posts_by_revision' , array( 'Bulk_Delete_Posts' , 'do_delete_posts_by_revision' ) );
1660
 
1661
  add_action( 'bd_delete_cron' , array( 'Bulk_Delete_Posts' , 'do_delete_cron' ) );
 
1662
  ?>
129
  }
130
  ?>
131
  </select>
132
+ <span class = "bd-post-status-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-sps">Buy now</a></span>
133
  </td>
134
  </tr>
135
  </table>
425
  }
426
  ?>
427
  </select>
428
+ <span class = "bd-cats-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-sc">Buy now</a></span>
429
  </td>
430
  </tr>
431
 
658
  }
659
  ?>
660
  </select>
661
+ <span class = "bd-tags-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-st">Buy now</a></span>
662
  </td>
663
  </tr>
664
 
934
  }
935
  ?>
936
  </select>
937
+ <span class = "bd-taxs-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-stx">Buy now</a></span>
938
  </td>
939
  </tr>
940
 
1186
  }
1187
  ?>
1188
  </select>
1189
+ <span class = "bd-types-pro" style = "color:red"><?php _e('Only available in Pro Addon', 'bulk-delete'); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-spt">Buy now</a></span>
1190
  </td>
1191
  </tr>
1192
 
1498
  <p>
1499
  <span class = "bd-post-custom-field-pro" style = "color:red">
1500
  <?php _e( 'You need "Bulk Delete Posts by Custom Field" Addon, to delete post by custom field.', 'bulk-delete' ); ?>
1501
+ <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-cf">Buy now</a>
1502
  </span>
1503
  </p>
1504
  <!-- Custom Field box end-->
1527
  <p>
1528
  <span class = "bd-post-title-pro" style = "color:red">
1529
  <?php _e( 'You need "Bulk Delete Posts by Title" Addon, to delete post by title.', 'bulk-delete' ); ?>
1530
+ <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-ti">Buy now</a>
1531
  </span>
1532
  </p>
1533
  <!-- Title box end-->
1557
  <p>
1558
  <span class = "bd-post-title-pro" style = "color:red">
1559
  <?php _e( 'You need "Bulk Delete Posts by Duplicate Title" Addon, to delete post by duplicate title.', 'bulk-delete' ); ?>
1560
+ <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-dti">Buy now</a>
1561
  </span>
1562
  </p>
1563
  <!-- Duplicate Title box end-->
1585
  <p>
1586
  <span class = "bd-post-by-role-pro" style = "color:red">
1587
  <?php _e( 'You need "Bulk Delete Posts by User Role" Addon, to delete post based on User Role', 'bulk-delete' ); ?>
1588
+ <a href = "http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-ur">Buy now</a>
1589
  </span>
1590
  </p>
1591
  <!-- Posts by user role end-->
1613
  <p>
1614
  <span class = "bd-post-trash-pro" style = "color:red">
1615
  <?php _e( 'You need "Bulk Delete From Trash" Addon, to delete post in Trash.', 'bulk-delete' ); ?>
1616
+ <a href = "http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-th">Buy now</a>
1617
  </span>
1618
  </p>
1619
  <!-- Posts In Trash box end-->
1620
  <?php
1621
  } else {
1622
+ /**
1623
+ * Render delete posts from trash box
1624
+ *
1625
+ * @since 5.4
1626
+ */
1627
+ do_action( 'bd_render_delete_posts_from_trash' );
1628
  }
1629
  }
1630
 
1631
+ /**
1632
+ * Filter JS Array and add validation hooks
1633
+ *
1634
+ * @since 5.4
1635
+ * @static
1636
+ * @param array $js_array JavaScript Array
1637
+ * @return array Modified JavaScript Array
1638
+ */
1639
+ public static function filter_js_array( $js_array ) {
1640
+ $js_array['msg']['deletePostsWarning'] = __( 'Are you sure you want to delete all the posts based on the selected option?', 'bulk-delete' );
1641
+ $js_array['msg']['selectPostOption'] = __( 'Please select posts from at least one option', 'bulk-delete' );
1642
+
1643
+ $js_array['validators']['delete_posts_by_url'] = 'validateUrl';
1644
+ $js_array['error_msg']['delete_posts_by_url'] = 'enterUrl';
1645
+ $js_array['msg']['enterUrl'] = __( 'Please enter at least one post url', 'bulk-delete' );
1646
+
1647
+ $js_array['dt_iterators'][] = '_cats';
1648
+ $js_array['dt_iterators'][] = '_tags';
1649
+ $js_array['dt_iterators'][] = '_taxs';
1650
+ $js_array['dt_iterators'][] = '_types';
1651
+ $js_array['dt_iterators'][] = '_post_status';
1652
+ return $js_array;
1653
+ }
1654
+
1655
  /**
1656
  * Process delete cron job request.
1657
  * This should ideally go in a separate class. But I was
1688
  add_action( 'bd_delete_posts_by_revision' , array( 'Bulk_Delete_Posts' , 'do_delete_posts_by_revision' ) );
1689
 
1690
  add_action( 'bd_delete_cron' , array( 'Bulk_Delete_Posts' , 'do_delete_cron' ) );
1691
+ add_filter( 'bd_javascript_array' , array( 'Bulk_Delete_Posts' , 'filter_js_array' ) );
1692
  ?>
include/class-bulk-delete-system-info.php CHANGED
@@ -70,7 +70,7 @@ class Bulk_Delete_System_Info {
70
  </div><!-- #post-body-content -->
71
 
72
  <div id="postbox-container-1" class="postbox-container">
73
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
74
  </div>
75
 
76
  <div id="postbox-container-2" class="postbox-container">
@@ -103,8 +103,9 @@ MySQL Version: <?php echo mysql_get_server_info() . "\n"; ?>
103
  Web Server Info: <?php echo $_SERVER['SERVER_SOFTWARE'] . "\n"; ?>
104
 
105
  WordPress Memory Limit: <?php echo WP_MEMORY_LIMIT; ?><?php echo "\n"; ?>
106
- PHP Safe Mode: <?php echo ini_get( 'safe_mode' ) ? "Yes" : "No\n"; ?>
107
  PHP Memory Limit: <?php echo ini_get( 'memory_limit' ) . "\n"; ?>
 
 
108
  PHP Upload Max Size: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
109
  PHP Post Max Size: <?php echo ini_get( 'post_max_size' ) . "\n"; ?>
110
  PHP Upload Max Filesize: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
@@ -115,7 +116,6 @@ PHP Allow URL File Open: <?php echo ini_get( 'allow_url_fopen' ) ? "Yes" : "No\
115
 
116
  WP_DEBUG: <?php echo defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' . "\n" : 'Disabled' . "\n" : 'Not set' . "\n" ?>
117
  DISABLE_WP_CRON: <?php echo defined( 'DISABLE_WP_CRON' ) ? DISABLE_WP_CRON ? 'Yes' . "\n" : 'No' . "\n" : 'Not set' . "\n" ?>
118
-
119
  EMPTY_TRASH_DAYS: <?php echo defined( 'EMPTY_TRASH_DAYS' ) ? EMPTY_TRASH_DAYS : 'Not set' . "\n" ?>
120
 
121
  WP Table Prefix: <?php echo "Length: ". strlen( $wpdb->prefix ); echo " Status:"; if ( strlen( $wpdb->prefix )>16 ) {echo " ERROR: Too Long";} else {echo " Acceptable";} echo "\n"; ?>
70
  </div><!-- #post-body-content -->
71
 
72
  <div id="postbox-container-1" class="postbox-container">
73
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
74
  </div>
75
 
76
  <div id="postbox-container-2" class="postbox-container">
103
  Web Server Info: <?php echo $_SERVER['SERVER_SOFTWARE'] . "\n"; ?>
104
 
105
  WordPress Memory Limit: <?php echo WP_MEMORY_LIMIT; ?><?php echo "\n"; ?>
 
106
  PHP Memory Limit: <?php echo ini_get( 'memory_limit' ) . "\n"; ?>
107
+
108
+ PHP Safe Mode: <?php echo ini_get( 'safe_mode' ) ? "Yes" : "No\n"; ?>
109
  PHP Upload Max Size: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
110
  PHP Post Max Size: <?php echo ini_get( 'post_max_size' ) . "\n"; ?>
111
  PHP Upload Max Filesize: <?php echo ini_get( 'upload_max_filesize' ) . "\n"; ?>
116
 
117
  WP_DEBUG: <?php echo defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' . "\n" : 'Disabled' . "\n" : 'Not set' . "\n" ?>
118
  DISABLE_WP_CRON: <?php echo defined( 'DISABLE_WP_CRON' ) ? DISABLE_WP_CRON ? 'Yes' . "\n" : 'No' . "\n" : 'Not set' . "\n" ?>
 
119
  EMPTY_TRASH_DAYS: <?php echo defined( 'EMPTY_TRASH_DAYS' ) ? EMPTY_TRASH_DAYS : 'Not set' . "\n" ?>
120
 
121
  WP Table Prefix: <?php echo "Length: ". strlen( $wpdb->prefix ); echo " Status:"; if ( strlen( $wpdb->prefix )>16 ) {echo " ERROR: Too Long";} else {echo " Acceptable";} echo "\n"; ?>
include/class-bulk-delete-users.php CHANGED
@@ -99,7 +99,7 @@ class Bulk_Delete_Users {
99
  }
100
  ?>
101
  </select>
102
- <span class = "bdu-users-by-role-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow">Buy now</a></span>
103
  </td>
104
  </tr>
105
 
@@ -209,6 +209,26 @@ class Bulk_Delete_Users {
209
  return $count;
210
  }
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  /**
213
  * Find the last login date/time of a user
214
  *
@@ -224,4 +244,5 @@ class Bulk_Delete_Users {
224
  }
225
 
226
  add_action( 'bd_delete_users_by_role', array( 'Bulk_Delete_Users', 'do_delete_users_by_role' ) );
 
227
  ?>
99
  }
100
  ?>
101
  </select>
102
+ <span class = "bdu-users-by-role-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-u-ur">Buy now</a></span>
103
  </td>
104
  </tr>
105
 
209
  return $count;
210
  }
211
 
212
+ /**
213
+ * Filter JS Array and add validation hooks
214
+ *
215
+ * @since 5.4
216
+ * @static
217
+ * @param array $js_array JavaScript Array
218
+ * @return array Modified JavaScript Array
219
+ */
220
+ public static function filter_js_array( $js_array ) {
221
+ $js_array['dt_iterators'][] = 'u_userrole';
222
+
223
+ $js_array['pre_action_msg']['delete_users_by_role'] = 'deleteUsersWarning';
224
+ $js_array['msg']['deleteUsersWarning'] = __( 'Are you sure you want to delete all the users from the selected user role?', 'bulk-delete' );
225
+
226
+ $js_array['error_msg']['delete_users_by_role'] = 'selectOneUserRole';
227
+ $js_array['msg']['selectOneUserRole'] = __( 'Select at least one user role from which users should be deleted', 'bulk-delete' );
228
+
229
+ return $js_array;
230
+ }
231
+
232
  /**
233
  * Find the last login date/time of a user
234
  *
244
  }
245
 
246
  add_action( 'bd_delete_users_by_role', array( 'Bulk_Delete_Users', 'do_delete_users_by_role' ) );
247
+ add_filter( 'bd_javascript_array', array( 'Bulk_Delete_Users' , 'filter_js_array' ) );
248
  ?>
include/class-bulk-delete-util.php CHANGED
@@ -205,15 +205,28 @@ class Bulk_Delete_Util {
205
  * Get a value from an array based on key.
206
  * If key is present returns the value, else returns the default value
207
  *
208
- * @param array $array Array from which value has to be retrieved
209
- * @param string $key key, whose value to be retrieved
210
- * @param string $default Optional. Default value to be returned, if the key is not found
211
- *
212
- * @return mixed Value if key is present, else the default value
213
  */
214
- if ( !function_exists( 'array_get' ) ) {
215
  function array_get( $array, $key, $default = NULL ) {
216
  return isset( $array[ $key ] ) ? $array[ $key ] : $default;
217
  }
218
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  ?>
205
  * Get a value from an array based on key.
206
  * If key is present returns the value, else returns the default value
207
  *
208
+ * @param array $array Array from which value has to be retrieved
209
+ * @param string $key Key, whose value to be retrieved
210
+ * @param string $default Optional. Default value to be returned, if the key is not found
211
+ * @return mixed Value if key is present, else the default value
 
212
  */
213
+ if ( ! function_exists( 'array_get' ) ) {
214
  function array_get( $array, $key, $default = NULL ) {
215
  return isset( $array[ $key ] ) ? $array[ $key ] : $default;
216
  }
217
  }
218
+
219
+ /**
220
+ * Get a value from an array based on key and convert it into bool.
221
+ *
222
+ * @param array $array Array from which value has to be retrieved
223
+ * @param string $key Key, whose value to be retrieved
224
+ * @param string $default Optional. Default value to be returned, if the key is not found
225
+ * @return mixed Boolean converted Value if key is present, else the default value
226
+ */
227
+ if ( ! function_exists( 'array_get_bool' ) ) {
228
+ function array_get_bool( $array, $key, $default = NULL ) {
229
+ return filter_var( array_get( $array, $key, $default ), FILTER_VALIDATE_BOOLEAN );
230
+ }
231
+ }
232
  ?>
include/libraries/EDD_SL_Plugin_Updater.php CHANGED
@@ -7,13 +7,14 @@
7
  * Allows plugins to use their own update API.
8
  *
9
  * @author Pippin Williamson
10
- * @version 1.1
11
  */
12
  class EDD_SL_Plugin_Updater {
13
  private $api_url = '';
14
  private $api_data = array();
15
  private $name = '';
16
  private $slug = '';
 
17
 
18
  /**
19
  * Class constructor.
@@ -28,7 +29,7 @@ class EDD_SL_Plugin_Updater {
28
  */
29
  function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
30
  $this->api_url = trailingslashit( $_api_url );
31
- $this->api_data = $_api_data;
32
  $this->name = plugin_basename( $_plugin_file );
33
  $this->slug = basename( $_plugin_file, '.php');
34
  $this->version = $_api_data['version'];
@@ -38,7 +39,7 @@ class EDD_SL_Plugin_Updater {
38
  }
39
 
40
  /**
41
- * Set up Wordpress filters to hook into WP's update process.
42
  *
43
  * @uses add_filter()
44
  *
@@ -53,28 +54,35 @@ class EDD_SL_Plugin_Updater {
53
  /**
54
  * Check for Updates at the defined API endpoint and modify the update array.
55
  *
56
- * This function dives into the update api just when Wordpress creates its update array,
57
  * then adds a custom API call and injects the custom plugin data retrieved from the API.
58
- * It is reassembled from parts of the native Wordpress plugin update code.
59
  * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
60
  *
61
  * @uses api_request()
62
  *
63
- * @param array $_transient_data Update array build by Wordpress.
64
  * @return array Modified update array with custom plugin data.
65
  */
66
  function pre_set_site_transient_update_plugins_filter( $_transient_data ) {
67
 
 
68
 
69
- if( empty( $_transient_data ) ) return $_transient_data;
 
 
 
 
70
 
71
  $to_send = array( 'slug' => $this->slug );
72
 
73
  $api_response = $this->api_request( 'plugin_latest_version', $to_send );
74
 
75
  if( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
76
- if( version_compare( $this->version, $api_response->new_version, '<' ) )
 
77
  $_transient_data->response[$this->name] = $api_response;
 
78
  }
79
  return $_transient_data;
80
  }
@@ -141,12 +149,12 @@ class EDD_SL_Plugin_Updater {
141
  return;
142
 
143
  $api_params = array(
144
- 'edd_action' => 'get_version',
145
- 'license' => $data['license'],
146
- 'name' => $data['item_name'],
147
- 'slug' => $this->slug,
148
- 'author' => $data['author'],
149
- 'url' => home_url()
150
  );
151
  $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
152
 
7
  * Allows plugins to use their own update API.
8
  *
9
  * @author Pippin Williamson
10
+ * @version 1.2
11
  */
12
  class EDD_SL_Plugin_Updater {
13
  private $api_url = '';
14
  private $api_data = array();
15
  private $name = '';
16
  private $slug = '';
17
+ private $do_check = false;
18
 
19
  /**
20
  * Class constructor.
29
  */
30
  function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
31
  $this->api_url = trailingslashit( $_api_url );
32
+ $this->api_data = rawurlencode_deep( $_api_data );
33
  $this->name = plugin_basename( $_plugin_file );
34
  $this->slug = basename( $_plugin_file, '.php');
35
  $this->version = $_api_data['version'];
39
  }
40
 
41
  /**
42
+ * Set up WordPress filters to hook into WP's update process.
43
  *
44
  * @uses add_filter()
45
  *
54
  /**
55
  * Check for Updates at the defined API endpoint and modify the update array.
56
  *
57
+ * This function dives into the update API just when WordPress creates its update array,
58
  * then adds a custom API call and injects the custom plugin data retrieved from the API.
59
+ * It is reassembled from parts of the native WordPress plugin update code.
60
  * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
61
  *
62
  * @uses api_request()
63
  *
64
+ * @param array $_transient_data Update array build by WordPress.
65
  * @return array Modified update array with custom plugin data.
66
  */
67
  function pre_set_site_transient_update_plugins_filter( $_transient_data ) {
68
 
69
+ if( empty( $_transient_data ) || ! $this->do_check ) {
70
 
71
+ // This ensures that the custom API request only runs on the second time that WP fires the update check
72
+ $this->do_check = true;
73
+
74
+ return $_transient_data;
75
+ }
76
 
77
  $to_send = array( 'slug' => $this->slug );
78
 
79
  $api_response = $this->api_request( 'plugin_latest_version', $to_send );
80
 
81
  if( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
82
+
83
+ if( version_compare( $this->version, $api_response->new_version, '<' ) ) {
84
  $_transient_data->response[$this->name] = $api_response;
85
+ }
86
  }
87
  return $_transient_data;
88
  }
149
  return;
150
 
151
  $api_params = array(
152
+ 'edd_action' => 'get_version',
153
+ 'license' => $data['license'],
154
+ 'name' => $data['item_name'],
155
+ 'slug' => $this->slug,
156
+ 'author' => $data['author'],
157
+ 'url' => home_url()
158
  );
159
  $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
160
 
include/meta/class-bulk-delete-comment-meta.php ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Utility class for deleting Comment Meta.
4
+ *
5
+ * @package Bulk_Delete
6
+ * @subpackage meta
7
+ * @author Sudar
8
+ * @since 5.4
9
+ */
10
+ class Bulk_Delete_Comment_Meta {
11
+
12
+ /**
13
+ * Box slug.
14
+ * @since 5.4
15
+ */
16
+ const BOX_COMMENT_META = 'bd-comment-meta';
17
+
18
+ /**
19
+ * Cron Hook.
20
+ * @since 5.4
21
+ */
22
+ const CRON_HOOK = 'do-bulk-delete-comment-meta';
23
+
24
+ /**
25
+ * Register comment-meta meta box for delete meta page.
26
+ *
27
+ * @static
28
+ * @since 5.4
29
+ */
30
+ public static function add_delete_comment_meta_box() {
31
+ $bd = BULK_DELETE();
32
+
33
+ add_meta_box(
34
+ self::BOX_COMMENT_META,
35
+ __( 'Bulk Delete Comment Meta', 'bulk-delete' ),
36
+ array( __CLASS__, 'render_delete_comment_meta_box' ),
37
+ $bd->meta_page,
38
+ 'advanced'
39
+ );
40
+ }
41
+
42
+ /**
43
+ * Render delete comment-meta meta box for delete meta page.
44
+ *
45
+ * @static
46
+ * @since 5.4
47
+ */
48
+ public static function render_delete_comment_meta_box() {
49
+ if ( Bulk_Delete_Meta::is_meta_box_hidden( self::BOX_COMMENT_META ) ) {
50
+ printf( __( 'This section just got enabled. Kindly <a href = "%1$s">refresh</a> the page to fully enable it.', 'bulk-delete' ), 'admin.php?page=' . Bulk_Delete_meta::META_PAGE_SLUG );
51
+ return;
52
+ }
53
+ ?>
54
+ <!-- Comment Meta box start-->
55
+ <fieldset class="options">
56
+ <?php
57
+ $types = get_post_types( array(
58
+ 'public' => true,
59
+ '_builtin' => false,
60
+ ), 'names'
61
+ );
62
+
63
+ array_unshift( $types, 'post' );
64
+ ?>
65
+ <h4><?php _e( 'Select the post type whose comment meta fields you want to delete', 'bulk-delete' ); ?></h4>
66
+ <table class="optiontable">
67
+ <?php
68
+ foreach ( $types as $type ) {
69
+ ?>
70
+ <tr>
71
+ <td>
72
+ <input name="smbd_cm_post_type" value = "<?php echo $type; ?>" type = "radio" class = "smbd_cm_post_type" <?php checked( $type, 'post' ); ?>>
73
+ <label for="smbd_cm_post_type"><?php echo $type; ?> </label>
74
+ </td>
75
+ </tr>
76
+ <?php
77
+ }
78
+ ?>
79
+ </table>
80
+
81
+ <h4><?php _e( 'Choose your comment meta field settings', 'bulk-delete' ); ?></h4>
82
+ <table class="optiontable">
83
+ <tr>
84
+ <td>
85
+ <input name="smbd_cm_use_value" value="false" type="radio" checked>
86
+ <label for="smbd_cm_use_value"><?php echo __( 'Delete based on comment meta key name only', 'bulk-delete' ); ?></label>
87
+ </td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <td>
92
+ <input name="smbd_cm_use_value" id="smbd_cm_use_value" value="true" type="radio" disabled>
93
+ <label for="smbd_cm_use_value"><?php echo __( 'Delete based on comment meta key name and value', 'bulk-delete' ); ?></label>
94
+ <span class="bd-cm-pro" style="color:red; vertical-align: middle;">
95
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-comment-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-c" target="_blank">Buy now</a>
96
+ </span>
97
+ </td>
98
+ </tr>
99
+
100
+ <tr>
101
+ <td>
102
+ <label for="smbd_cm_key"><?php _e( 'Comment Meta Key ', 'bulk-delete' ); ?></label>
103
+ <input name="smbd_cm_key" id="smbd_cm_key" placeholder="<?php _e( 'Meta Key', 'bulk-delete' ); ?>">
104
+ </td>
105
+ </tr>
106
+ </table>
107
+ <?php
108
+ /**
109
+ * Add more fields to the delete comment meta field form.
110
+ * This hook can be used to add more fields to the delete comment meta field form
111
+ *
112
+ * @since 5.4
113
+ */
114
+ do_action( 'bd_delete_comment_meta_form' );
115
+ ?>
116
+ <table class="optiontable">
117
+ <tr>
118
+ <td>
119
+ <h4><?php _e( 'Choose your deletion options', 'bulk-delete' ); ?></h4>
120
+ </td>
121
+ </tr>
122
+
123
+ <tr>
124
+ <td>
125
+ <input name="smbd_cm_restrict" id="smbd_cm_restrict" value = "true" type = "checkbox">
126
+ <?php _e( 'Only restrict to comments which are ', 'bulk-delete' );?>
127
+ <select name="smbd_cm_op" id="smbd_cm_op" disabled="disabled">
128
+ <option value ="before"><?php _e( 'older than', 'bulk-delete' );?></option>
129
+ <option value ="after"><?php _e( 'commented within last', 'bulk-delete' );?></option>
130
+ </select>
131
+ <input type ="textbox" name="smbd_cm_days" id="smbd_cm_days" disabled value ="0" maxlength="4" size="4"><?php _e( 'days', 'bulk-delete' );?>
132
+ </td>
133
+ </tr>
134
+
135
+ <tr>
136
+ <td>
137
+ <input name="smbd_cm_limit" id="smbd_cm_limit" value = "true" type = "checkbox">
138
+ <?php _e( 'Only delete comment meta field from first ', 'bulk-delete' );?>
139
+ <input type ="textbox" name="smbd_cm_limit_to" id="smbd_cm_limit_to" disabled value ="0" maxlength="4" size="4"><?php _e( 'comments.', 'bulk-delete' );?>
140
+ <?php _e( 'Use this option if there are more than 1000 posts and the script timesout.', 'bulk-delete' ) ?>
141
+ </td>
142
+ </tr>
143
+
144
+ <tr>
145
+ <td>
146
+ <input name="smbd_cm_cron" value="false" type = "radio" checked="checked"> <?php _e( 'Delete now', 'bulk-delete' ); ?>
147
+ <input name="smbd_cm_cron" value="true" type = "radio" id = "smbd_cm_cron" disabled > <?php _e( 'Schedule', 'bulk-delete' ); ?>
148
+ <input name="smbd_cm_cron_start" id="smbd_cm_cron_start" value = "now" type = "text" disabled><?php _e( 'repeat ', 'bulk-delete' );?>
149
+ <select name="smbd_cm_cron_freq" id="smbd_cm_cron_freq" disabled>
150
+ <option value = "-1"><?php _e( "Don't repeat", 'bulk-delete' ); ?></option>
151
+ <?php
152
+ $schedules = wp_get_schedules();
153
+ foreach ( $schedules as $key => $value ) {
154
+ ?>
155
+ <option value = "<?php echo $key; ?>"><?php echo $value['display']; ?></option>
156
+ <?php
157
+ }
158
+ ?>
159
+ </select>
160
+ <span class="bd-cm-pro" style="color:red">
161
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-comment-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-c">Buy now</a>
162
+ </span>
163
+ </td>
164
+ </tr>
165
+
166
+ <tr>
167
+ <td>
168
+ <?php _e( 'Enter time in Y-m-d H:i:s format or enter now to use current time', 'bulk-delete' );?>
169
+ </td>
170
+ </tr>
171
+
172
+ </table>
173
+ </fieldset>
174
+
175
+ <p>
176
+ <button type="submit" name="bd_action" value="delete_meta_comment" class="button-primary"><?php _e( 'Bulk Delete ', 'bulk-delete' ) ?>&raquo;</button>
177
+ </p>
178
+ <!-- Comment Meta box end-->
179
+ <?php
180
+ }
181
+
182
+ /**
183
+ * Filter JS Array and add validation hooks.
184
+ *
185
+ * @since 5.4
186
+ * @static
187
+ * @param array $js_array JavaScript Array
188
+ * @return array Modified JavaScript Array
189
+ */
190
+ public static function filter_js_array( $js_array ) {
191
+ $js_array['dt_iterators'][] = '_cm';
192
+ $js_array['validators']['delete_meta_comment'] = 'noValidation';
193
+
194
+ $js_array['pre_action_msg']['delete_meta_comment'] = 'deleteCMWarning';
195
+ $js_array['msg']['deleteCMWarning'] = __( 'Are you sure you want to delete all the comment meta fields that match the selected filters?', 'bulk-delete' );
196
+
197
+ return $js_array;
198
+ }
199
+
200
+ /**
201
+ * Controller for deleting comment meta fields.
202
+ *
203
+ * @static
204
+ * @since 5.4
205
+ */
206
+ public static function do_delete_comment_meta() {
207
+ $delete_options = array();
208
+ $delete_options['post_type'] = esc_sql( array_get( $_POST, 'smbd_cm_post_type', 'post' ) );
209
+
210
+ $delete_options['use_value'] = array_get_bool( $_POST, 'smbd_cm_use_value', FALSE );
211
+ $delete_options['meta_key'] = esc_sql( array_get( $_POST, 'smbd_cm_key', '' ) );
212
+
213
+ $delete_options['limit_to'] = absint( array_get( $_POST, 'smbd_cm_limit_to', 0 ) );
214
+
215
+ $delete_options['restrict'] = array_get_bool( $_POST, 'smbd_cm_restrict', FALSE );
216
+ $delete_options['op'] = esc_sql( array_get( $_POST, 'smbd_cm_op', 'before' ) );
217
+ $delete_options['days'] = absint( array_get( $_POST, 'smbd_cm_days', 0 ) );
218
+
219
+ /**
220
+ * Delete comment-meta delete options filter.
221
+ * This filter is for processing filtering options for deleting comment meta
222
+ *
223
+ * @since 5.4
224
+ */
225
+ $delete_options = apply_filters( 'bd_delete_comment_meta_options', $delete_options, $_POST );
226
+
227
+ if ( array_get( $_POST, 'smbd_cm_cron', 'false' ) == 'true' ) {
228
+ $freq = $_POST['smbd_cm_cron_freq'];
229
+ $time = strtotime( $_POST['smbd_cm_cron_start'] ) - ( get_option( 'gmt_offset' ) * 60 * 60 );
230
+
231
+ if ( $freq == -1 ) {
232
+ wp_schedule_single_event( $time, self::CRON_HOOK, array( $delete_options ) );
233
+ } else {
234
+ wp_schedule_event( $time, $freq, self::CRON_HOOK, array( $delete_options ) );
235
+ }
236
+ $msg = __( 'Comment meta fields from the comments with the selected criteria are scheduled for deletion.', 'bulk-delete' ) . ' ' .
237
+ sprintf( __( 'See the full list of <a href = "%s">scheduled tasks</a>' , 'bulk-delete' ), get_bloginfo( 'wpurl' ) . '/wp-admin/admin.php?page=' . Bulk_Delete::CRON_PAGE_SLUG );
238
+ } else {
239
+ $deleted_count = self::delete_comment_meta( $delete_options );
240
+ $msg = sprintf( _n( 'Deleted comment meta field from %d comment', 'Deleted comment meta field from %d comments' , $deleted_count, 'bulk-delete' ), $deleted_count );
241
+ }
242
+
243
+ add_settings_error(
244
+ Bulk_Delete_Meta::META_PAGE_SLUG,
245
+ 'deleted-comments',
246
+ $msg,
247
+ 'updated'
248
+ );
249
+ }
250
+
251
+ /**
252
+ * Delete Comment Meta.
253
+ *
254
+ * @static
255
+ * @since 5.4
256
+ * @param array $delete_options Options for deleting
257
+ * @return int Number of comments that were deleted
258
+ */
259
+ public static function delete_comment_meta( $delete_options ) {
260
+ $count = 0;
261
+ $post_type = $delete_options['post_type'];
262
+ $limit_to = $delete_options['limit_to'];
263
+ $meta_key = $delete_options['meta_key'];
264
+ $use_value = $delete_options['use_value'];
265
+ $restrict = $delete_options['restrict'];
266
+ $days = $delete_options['days'];
267
+ $op = $delete_options['op'];
268
+
269
+ $options = array(
270
+ 'post_type' => $post_type,
271
+ );
272
+
273
+ if ( $limit_to > 0 ) {
274
+ $options['number'] = $limit_to;
275
+ }
276
+
277
+ if ( $restrict ) {
278
+ $options['date_query'] = array(
279
+ array(
280
+ 'column' => 'comment_date',
281
+ $op => "{$days} day ago",
282
+ ),
283
+ );
284
+ }
285
+
286
+ if ( $use_value ) {
287
+ $meta_value = $delete_options['meta_value'];
288
+ $options['meta_query'] = apply_filters( 'bd_delete_comment_meta_query', array(), $delete_options );
289
+ } else {
290
+ $options['meta_key'] = $meta_key;
291
+ }
292
+
293
+ $comments = get_comments( $options );
294
+
295
+ foreach ( $comments as $comment ) {
296
+ if ( delete_comment_meta( $comment->comment_ID, $meta_key ) ) {
297
+ $count++;
298
+ }
299
+ }
300
+ return $count;
301
+ }
302
+ }
303
+
304
+ // hooks
305
+ add_action( 'bd_add_meta_box_for_meta', array( 'Bulk_Delete_Comment_Meta', 'add_delete_comment_meta_box' ) );
306
+ add_action( 'bd_delete_meta_comment', array( 'Bulk_Delete_Comment_Meta', 'do_delete_comment_meta' ) );
307
+
308
+ add_filter( 'bd_javascript_array', array( 'Bulk_Delete_Comment_Meta', 'filter_js_array' ) );
309
+ ?>
include/meta/class-bulk-delete-meta.php ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Utility class for deleting Meta Fields.
4
+ *
5
+ * @package Bulk_Delete
6
+ * @subpackage Meta
7
+ * @author Sudar
8
+ * @since 5.4
9
+ */
10
+ class Bulk_Delete_Meta {
11
+
12
+ /**
13
+ * Slug for *meta* page.
14
+ * @since 5.4
15
+ */
16
+ const META_PAGE_SLUG = 'bulk-delete-meta';
17
+
18
+ /**
19
+ * User meta that stores box preferences.
20
+ * @since 5.4
21
+ */
22
+ const VISIBLE_META_BOXES = 'metaboxhidden_bulk-delete_page_bulk-delete-meta';
23
+
24
+ /**
25
+ * Add *meta* menu.
26
+ *
27
+ * @static
28
+ * @since 5.4
29
+ */
30
+ public static function add_menu() {
31
+ $bd = BULK_DELETE();
32
+
33
+ $bd->meta_page = add_submenu_page(
34
+ Bulk_Delete::POSTS_PAGE_SLUG,
35
+ __( 'Bulk Delete Meta Fields', 'bulk-delete' ),
36
+ __( 'Bulk Delete Meta Fields', 'bulk-delete' ),
37
+ 'delete_posts',
38
+ self::META_PAGE_SLUG,
39
+ array( __CLASS__, 'display_meta_page' )
40
+ );
41
+
42
+ // enqueue JavaScript
43
+ add_action( 'admin_print_scripts-' . $bd->meta_page, array( $bd, 'add_script') );
44
+
45
+ // delete menus page
46
+ add_action( "load-{$bd->meta_page}", array( __CLASS__, 'add_delete_meta_settings_panel' ) );
47
+ add_action( "add_meta_boxes_{$bd->meta_page}", array( __CLASS__, 'add_delete_meta_meta_boxes' ) );
48
+ }
49
+
50
+ /**
51
+ * Add settings Panel for delete meta page.
52
+ *
53
+ * @static
54
+ * @since 5.4
55
+ */
56
+ public static function add_delete_meta_settings_panel() {
57
+ $bd = BULK_DELETE();
58
+
59
+ /**
60
+ * Add contextual help for admin screens.
61
+ *
62
+ * @since 5.4
63
+ */
64
+ do_action( 'bd_add_contextual_help', $bd->meta_page );
65
+
66
+ /* Trigger the add_meta_boxes hooks to allow meta boxes to be added */
67
+ do_action( 'add_meta_boxes_' . $bd->meta_page, null );
68
+
69
+ /* Enqueue WordPress' script for handling the meta boxes */
70
+ wp_enqueue_script( 'postbox' );
71
+ }
72
+
73
+ /**
74
+ * Register meta boxes for delete meta page.
75
+ *
76
+ * @static
77
+ * @since 5.4
78
+ */
79
+ public static function add_delete_meta_meta_boxes() {
80
+ /**
81
+ * Add meta box in meta page.
82
+ * This hook can be used for adding additional meta boxes in *meta* page
83
+ *
84
+ * @since 5.4
85
+ */
86
+ do_action( 'bd_add_meta_box_for_meta' );
87
+ }
88
+
89
+ /**
90
+ * Show the delete meta page.
91
+ *
92
+ * @static
93
+ * @since 5.4
94
+ */
95
+ public static function display_meta_page() {
96
+ ?>
97
+ <div class="wrap">
98
+ <h2><?php _e( 'Bulk Delete Meta Fields', 'bulk-delete' );?></h2>
99
+ <?php settings_errors(); ?>
100
+
101
+ <form method = "post">
102
+ <?php
103
+ wp_nonce_field( 'sm-bulk-delete-meta', 'sm-bulk-delete-meta-nonce' );
104
+
105
+ /* Used to save closed meta boxes and their order */
106
+ wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
107
+ wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
108
+ ?>
109
+ <div id = "poststuff">
110
+ <div id="post-body" class="metabox-holder columns-2">
111
+
112
+ <div class="updated" >
113
+ <p><strong><?php _e( 'WARNING: Items deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
114
+ </div>
115
+
116
+ <div id="postbox-container-1" class="postbox-container">
117
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
118
+ </div>
119
+
120
+ <div id="postbox-container-2" class="postbox-container">
121
+ <?php do_meta_boxes( '', 'advanced', null ); ?>
122
+ </div> <!-- #postbox-container-2 -->
123
+
124
+ </div> <!-- #post-body -->
125
+ </div><!-- #poststuff -->
126
+ </form>
127
+ </div><!-- .wrap -->
128
+ <?php
129
+ /**
130
+ * Runs just before displaying the footer text in the "Bulk Delete Meta" admin page.
131
+ * This action is primarily for adding extra content in the footer of "Bulk Delete Meta" admin page.
132
+ *
133
+ * @since 5.4
134
+ */
135
+ do_action( 'bd_admin_footer_meta_page' );
136
+ }
137
+
138
+ /**
139
+ * Check whether the meta box in meta page is hidden or not.
140
+ *
141
+ * @static
142
+ * @access private
143
+ * @since 5.4
144
+ * @param string $box The name of the box to check
145
+ * @return bool True if the box is hidden, False otherwise
146
+ */
147
+ public static function is_meta_box_hidden( $box ) {
148
+ $hidden_boxes = self::get_meta_hidden_boxes();
149
+ return ( is_array( $hidden_boxes ) && in_array( $box, $hidden_boxes ) );
150
+ }
151
+
152
+ /**
153
+ * Get the list of hidden boxes in meta page.
154
+ *
155
+ * @static
156
+ * @access private
157
+ * @since 5.4
158
+ * @return array The array of hidden meta boxes
159
+ */
160
+ private static function get_meta_hidden_boxes() {
161
+ $current_user = wp_get_current_user();
162
+ return get_user_meta( $current_user->ID, self::VISIBLE_META_BOXES, TRUE );
163
+ }
164
+ }
165
+
166
+ // Add menu
167
+ add_action( 'bd_after_primary_menus', array( 'Bulk_Delete_Meta', 'add_menu' ) );
168
+
169
+ // Modify admin footer
170
+ add_action( 'bd_admin_footer_meta_page', 'bd_modify_admin_footer' );
171
+ ?>
include/meta/class-bulk-delete-post-meta.php ADDED
@@ -0,0 +1,313 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Utility class for deleting Post Meta.
4
+ *
5
+ * @package Bulk_Delete
6
+ * @subpackage meta
7
+ * @author Sudar
8
+ * @since 5.4
9
+ */
10
+ class Bulk_Delete_Post_Meta {
11
+
12
+ /**
13
+ * Box slug.
14
+ * @since 5.4
15
+ */
16
+ const BOX_POST_META = 'bd-post-meta';
17
+
18
+ /**
19
+ * Cron Hook.
20
+ * @since 5.4
21
+ */
22
+ const CRON_HOOK = 'do-bulk-delete-post-meta';
23
+
24
+ /**
25
+ * Register post-meta meta box for delete meta page.
26
+ *
27
+ * @static
28
+ * @since 5.4
29
+ */
30
+ public static function add_delete_post_meta_box() {
31
+ $bd = BULK_DELETE();
32
+
33
+ add_meta_box(
34
+ self::BOX_POST_META,
35
+ __( 'Bulk Delete Post Meta', 'bulk-delete' ),
36
+ array( __CLASS__, 'render_delete_post_meta_box' ),
37
+ $bd->meta_page,
38
+ 'advanced'
39
+ );
40
+ }
41
+
42
+ /**
43
+ * Render delete post-meta meta box for delete meta page.
44
+ *
45
+ * @static
46
+ * @since 5.4
47
+ */
48
+ public static function render_delete_post_meta_box() {
49
+ if ( Bulk_Delete_Meta::is_meta_box_hidden( self::BOX_POST_META ) ) {
50
+ printf( __( 'This section just got enabled. Kindly <a href = "%1$s">refresh</a> the page to fully enable it.', 'bulk-delete' ), 'admin.php?page=' . Bulk_Delete_meta::META_PAGE_SLUG );
51
+ return;
52
+ }
53
+ ?>
54
+ <!-- Post Meta box start-->
55
+ <fieldset class="options">
56
+ <?php
57
+ $types = get_post_types( array(
58
+ 'public' => true,
59
+ '_builtin' => false,
60
+ ), 'names'
61
+ );
62
+
63
+ array_unshift( $types, 'post' );
64
+ ?>
65
+ <h4><?php _e( 'Select the post type whose post meta fields you want to delete', 'bulk-delete' ); ?></h4>
66
+ <table class="optiontable">
67
+ <?php
68
+ foreach ( $types as $type ) {
69
+ ?>
70
+ <tr>
71
+ <td>
72
+ <input name="smbd_pm_post_type" value = "<?php echo $type; ?>" type = "radio" class = "smbd_pm_post_type" <?php checked( $type, 'post' ); ?>>
73
+ <label for="smbd_pm_post_type"><?php echo $type; ?> </label>
74
+ </td>
75
+ </tr>
76
+ <?php
77
+ }
78
+ ?>
79
+ </table>
80
+
81
+ <h4><?php _e( 'Choose your post meta field settings', 'bulk-delete' ); ?></h4>
82
+ <table class="optiontable">
83
+ <tr>
84
+ <td>
85
+ <input name="smbd_pm_use_value" value="false" type="radio" checked>
86
+ <label for="smbd_pm_use_value"><?php echo __( 'Delete based on post meta key name only', 'bulk-delete' ); ?></label>
87
+ </td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <td>
92
+ <input name="smbd_pm_use_value" id="smbd_pm_use_value" value="true" type="radio" disabled>
93
+ <label for="smbd_pm_use_value"><?php echo __( 'Delete based on post meta key name and value', 'bulk-delete' ); ?></label>
94
+ <span class="bd-pm-pro" style="color:red; vertical-align: middle;">
95
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-post-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-p" target="_blank">Buy now</a>
96
+ </span>
97
+ </td>
98
+ </tr>
99
+
100
+ <tr>
101
+ <td>
102
+ <label for="smbd_pm_key"><?php _e( 'Post Meta Key ', 'bulk-delete' ); ?></label>
103
+ <input name="smbd_pm_key" id="smbd_pm_key" placeholder="<?php _e( 'Meta Key', 'bulk-delete' ); ?>">
104
+ </td>
105
+ </tr>
106
+ </table>
107
+ <?php
108
+ /**
109
+ * Add more fields to the delete post meta field form.
110
+ * This hook can be used to add more fields to the delete post meta field form
111
+ *
112
+ * @since 5.4
113
+ */
114
+ do_action( 'bd_delete_post_meta_form' );
115
+ ?>
116
+ <table class="optiontable">
117
+ <tr>
118
+ <td>
119
+ <h4><?php _e( 'Choose your deletion options', 'bulk-delete' ); ?></h4>
120
+ </td>
121
+ </tr>
122
+
123
+ <tr>
124
+ <td>
125
+ <input name="smbd_pm_restrict" id="smbd_pm_restrict" value = "true" type = "checkbox" >
126
+ <?php _e( 'Only restrict to posts which are ', 'bulk-delete' );?>
127
+ <select name="smbd_pm_op" id="smbd_pm_op" disabled>
128
+ <option value ="before"><?php _e( 'older than', 'bulk-delete' );?></option>
129
+ <option value ="after"><?php _e( 'posted within last', 'bulk-delete' );?></option>
130
+ </select>
131
+ <input type ="textbox" name="smbd_pm_days" id="smbd_pm_days" disabled value ="0" maxlength="4" size="4"><?php _e( 'days', 'bulk-delete' );?>
132
+ </td>
133
+ </tr>
134
+
135
+ <tr>
136
+ <td>
137
+ <input name="smbd_pm_limit" id="smbd_pm_limit" value = "true" type = "checkbox">
138
+ <?php _e( 'Only delete post meta field from first ', 'bulk-delete' );?>
139
+ <input type ="textbox" name="smbd_pm_limit_to" id="smbd_pm_limit_to" disabled value ="0" maxlength="4" size="4"><?php _e( 'posts.', 'bulk-delete' );?>
140
+ <?php _e( 'Use this option if there are more than 1000 posts and the script timesout.', 'bulk-delete' ) ?>
141
+ </td>
142
+ </tr>
143
+
144
+ <tr>
145
+ <td>
146
+ <input name="smbd_pm_cron" value = "false" type = "radio" checked="checked"> <?php _e( 'Delete now', 'bulk-delete' ); ?>
147
+ <input name="smbd_pm_cron" value = "true" type = "radio" id = "smbd_pm_cron" disabled > <?php _e( 'Schedule', 'bulk-delete' ); ?>
148
+ <input name="smbd_pm_cron_start" id = "smbd_pm_cron_start" value = "now" type = "text" disabled><?php _e( 'repeat ', 'bulk-delete' );?>
149
+ <select name="smbd_pm_cron_freq" id = "smbd_pm_cron_freq" disabled>
150
+ <option value = "-1"><?php _e( "Don't repeat", 'bulk-delete' ); ?></option>
151
+ <?php
152
+ $schedules = wp_get_schedules();
153
+ foreach ( $schedules as $key => $value ) {
154
+ ?>
155
+ <option value = "<?php echo $key; ?>"><?php echo $value['display']; ?></option>
156
+ <?php
157
+ }
158
+ ?>
159
+ </select>
160
+ <span class="bd-pm-pro" style="color:red">
161
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-post-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-p">Buy now</a>
162
+ </span>
163
+ </td>
164
+ </tr>
165
+
166
+ <tr>
167
+ <td>
168
+ <?php _e( 'Enter time in Y-m-d H:i:s format or enter now to use current time', 'bulk-delete' );?>
169
+ </td>
170
+ </tr>
171
+
172
+ </table>
173
+ </fieldset>
174
+
175
+ <p>
176
+ <button type="submit" name="bd_action" value="delete_meta_post" class="button-primary"><?php _e( 'Bulk Delete ', 'bulk-delete' ) ?>&raquo;</button>
177
+ </p>
178
+ <!-- Post Meta box end-->
179
+ <?php
180
+ }
181
+
182
+ /**
183
+ * Filter JS Array and add validation hooks.
184
+ *
185
+ * @since 5.4
186
+ * @static
187
+ * @param array $js_array JavaScript Array
188
+ * @return array Modified JavaScript Array
189
+ */
190
+ public static function filter_js_array( $js_array ) {
191
+ $js_array['dt_iterators'][] = '_pm';
192
+ $js_array['validators']['delete_meta_post'] = 'noValidation';
193
+
194
+ $js_array['pre_action_msg']['delete_meta_post'] = 'deletePMWarning';
195
+ $js_array['msg']['deletePMWarning'] = __( 'Are you sure you want to delete all the post meta fields that match the selected filters?', 'bulk-delete' );
196
+
197
+ return $js_array;
198
+ }
199
+
200
+ /**
201
+ * Controller for deleting post meta fields.
202
+ *
203
+ * @static
204
+ * @since 5.4
205
+ */
206
+ public static function do_delete_post_meta() {
207
+ $delete_options = array();
208
+ $delete_options['post_type'] = esc_sql( array_get( $_POST, 'smbd_pm_post_type', 'post' ) );
209
+
210
+ $delete_options['use_value'] = array_get_bool( $_POST, 'smbd_pm_use_value', FALSE );
211
+ $delete_options['meta_key'] = esc_sql( array_get( $_POST, 'smbd_pm_key', '' ) );
212
+
213
+ $delete_options['limit_to'] = absint( array_get( $_POST, 'smbd_pm_limit_to', 0 ) );
214
+
215
+ $delete_options['restrict'] = array_get_bool( $_POST, 'smbd_pm_restrict', FALSE );
216
+ $delete_options['op'] = esc_sql( array_get( $_POST, 'smbd_pm_op', 'before' ) );
217
+ $delete_options['days'] = absint( array_get( $_POST, 'smbd_pm_days', 0 ) );
218
+
219
+ /**
220
+ * Delete post-meta delete options filter.
221
+ * This filter is for processing filtering options for deleting post meta
222
+ *
223
+ * @since 5.4
224
+ */
225
+ $delete_options = apply_filters( 'bd_delete_post_meta_options', $delete_options, $_POST );
226
+
227
+ if ( array_get( $_POST, 'smbd_pm_cron', 'false' ) == 'true' ) {
228
+ $freq = $_POST['smbd_pm_cron_freq'];
229
+ $time = strtotime( $_POST['smbd_pm_cron_start'] ) - ( get_option( 'gmt_offset' ) * 60 * 60 );
230
+
231
+ if ( $freq == -1 ) {
232
+ wp_schedule_single_event( $time, self::CRON_HOOK, array( $delete_options ) );
233
+ } else {
234
+ wp_schedule_event( $time, $freq, self::CRON_HOOK, array( $delete_options ) );
235
+ }
236
+ $msg = __( 'Post meta fields from the posts with the selected criteria are scheduled for deletion.', 'bulk-delete' ) . ' ' .
237
+ sprintf( __( 'See the full list of <a href = "%s">scheduled tasks</a>' , 'bulk-delete' ), get_bloginfo( 'wpurl' ) . '/wp-admin/admin.php?page=' . Bulk_Delete::CRON_PAGE_SLUG );
238
+ } else {
239
+ $deleted_count = self::delete_post_meta( $delete_options );
240
+ $msg = sprintf( _n( 'Deleted post meta field from %d post', 'Deleted post meta field from %d posts' , $deleted_count, 'bulk-delete' ), $deleted_count );
241
+ }
242
+
243
+ add_settings_error(
244
+ Bulk_Delete_Meta::META_PAGE_SLUG,
245
+ 'deleted-posts',
246
+ $msg,
247
+ 'updated'
248
+ );
249
+ }
250
+
251
+ /**
252
+ * Delete Post Meta.
253
+ *
254
+ * @static
255
+ * @since 5.4
256
+ * @param array $delete_options Options for deleting
257
+ * @return int Number of posts that were deleted
258
+ */
259
+ public static function delete_post_meta( $delete_options ) {
260
+ $count = 0;
261
+ $post_type = $delete_options['post_type'];
262
+ $limit_to = $delete_options['limit_to'];
263
+ $meta_key = $delete_options['meta_key'];
264
+ $use_value = $delete_options['use_value'];
265
+ $restrict = $delete_options['restrict'];
266
+ $days = $delete_options['days'];
267
+ $op = $delete_options['op'];
268
+
269
+ $options = array(
270
+ 'post_status' => 'publish',
271
+ 'post_type' => $post_type,
272
+ );
273
+
274
+ if ( $limit_to > 0 ) {
275
+ $options['showposts'] = $limit_to;
276
+ } else {
277
+ $options['nopaging'] = 'true';
278
+ }
279
+
280
+ if ( $restrict ) {
281
+ $options['date_query'] = array(
282
+ array(
283
+ 'column' => 'post_date',
284
+ $op => "{$days} day ago",
285
+ ),
286
+ );
287
+ }
288
+
289
+ if ( $use_value ) {
290
+ $meta_value = $delete_options['meta_value'];
291
+ $options['meta_query'] = apply_filters( 'bd_delete_post_meta_query', array(), $delete_options );
292
+ } else {
293
+ $options['meta_key'] = $meta_key;
294
+ }
295
+
296
+ $wp_query = new WP_Query();
297
+ $posts = $wp_query->query( $options );
298
+
299
+ foreach ( $posts as $post ) {
300
+ if ( delete_post_meta( $post->ID, $meta_key ) ) {
301
+ $count++;
302
+ }
303
+ }
304
+ return $count;
305
+ }
306
+ }
307
+
308
+ // hooks
309
+ add_action( 'bd_add_meta_box_for_meta', array( 'Bulk_Delete_Post_Meta', 'add_delete_post_meta_box' ) );
310
+ add_action( 'bd_delete_meta_post', array( 'Bulk_Delete_Post_Meta', 'do_delete_post_meta' ) );
311
+
312
+ add_filter( 'bd_javascript_array', array( 'Bulk_Delete_Post_Meta', 'filter_js_array' ) );
313
+ ?>
include/meta/class-bulk-delete-user-meta.php ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Utility class for deleting User Meta.
4
+ *
5
+ * @package Bulk_Delete
6
+ * @subpackage meta
7
+ * @author Sudar
8
+ * @since 5.4
9
+ */
10
+ class Bulk_Delete_User_Meta {
11
+
12
+ /**
13
+ * Box slug.
14
+ * @since 5.4
15
+ */
16
+ const BOX_USER_META = 'bd-user-meta';
17
+
18
+ /**
19
+ * Cron Hook.
20
+ * @since 5.4
21
+ */
22
+ const CRON_HOOK = 'do-bulk-delete-user-meta';
23
+
24
+ /**
25
+ * Register user-meta meta box for delete meta page.
26
+ *
27
+ * @static
28
+ * @since 5.4
29
+ */
30
+ public static function add_delete_user_meta_box() {
31
+ $bd = BULK_DELETE();
32
+
33
+ add_meta_box(
34
+ self::BOX_USER_META,
35
+ __( 'Bulk Delete User Meta', 'bulk-delete' ),
36
+ array( __CLASS__, 'render_delete_user_meta_box' ),
37
+ $bd->meta_page,
38
+ 'advanced'
39
+ );
40
+ }
41
+
42
+ /**
43
+ * Render delete user-meta meta box for delete meta page.
44
+ *
45
+ * @static
46
+ * @since 5.4
47
+ */
48
+ public static function render_delete_user_meta_box() {
49
+ if ( Bulk_Delete_Meta::is_meta_box_hidden( self::BOX_USER_META ) ) {
50
+ printf( __( 'This section just got enabled. Kindly <a href = "%1$s">refresh</a> the page to fully enable it.', 'bulk-delete' ), 'admin.php?page=' . Bulk_Delete_meta::META_PAGE_SLUG );
51
+ return;
52
+ }
53
+ ?>
54
+ <!-- User Meta box start-->
55
+ <fieldset class="options">
56
+ <h4><?php _e( 'Select the user role whose user meta fields you want to delete', 'bulk-delete' ); ?></h4>
57
+ <table class="optiontable">
58
+ <?php
59
+ $users_count = count_users();
60
+ foreach ( $users_count['avail_roles'] as $role => $count ) {
61
+ ?>
62
+ <tr>
63
+ <td>
64
+ <input name="smbd_um_role" value = "<?php echo $role; ?>" type = "radio" <?php checked( $role, 'administrator' ); ?>>
65
+ <label for="smbd_um_role"><?php echo $role; ?> (<?php echo $count . ' '; _e( 'Users', 'bulk-delete' ); ?>)</label>
66
+ </td>
67
+ </tr>
68
+ <?php
69
+ }
70
+ ?>
71
+ </table>
72
+
73
+ <h4><?php _e( 'Choose your user meta field settings', 'bulk-delete' ); ?></h4>
74
+ <table class="optiontable">
75
+ <tr>
76
+ <td>
77
+ <input name="smbd_um_use_value" value="false" type="radio" checked>
78
+ <label for="smbd_um_use_value"><?php echo __( 'Delete based on user meta key name only', 'bulk-delete' ); ?></label>
79
+ </td>
80
+ </tr>
81
+
82
+ <tr>
83
+ <td>
84
+ <input name="smbd_um_use_value" id="smbd_um_use_value" value="true" type="radio" disabled>
85
+ <label for="smbd_um_use_value"><?php echo __( 'Delete based on user meta key name and value', 'bulk-delete' ); ?></label>
86
+ <span class="bd-um-pro" style="color:red; vertical-align: middle;">
87
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-user-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-u" target="_blank">Buy now</a>
88
+ </span>
89
+ </td>
90
+ </tr>
91
+
92
+ <tr>
93
+ <td>
94
+ <label for="smbd_um_key"><?php _e( 'User Meta Key ', 'bulk-delete' ); ?></label>
95
+ <input name="smbd_um_key" id="smbd_um_key" placeholder="<?php _e( 'Meta Key', 'bulk-delete' ); ?>">
96
+ </td>
97
+ </tr>
98
+ </table>
99
+ <?php
100
+ /**
101
+ * Add more fields to the delete user meta field form.
102
+ * This hook can be used to add more fields to the delete user meta field form
103
+ *
104
+ * @since 5.4
105
+ */
106
+ do_action( 'bd_delete_user_meta_form' );
107
+ ?>
108
+ <table class="optiontable">
109
+ <tr>
110
+ <td>
111
+ <h4><?php _e( 'Choose your deletion options', 'bulk-delete' ); ?></h4>
112
+ </td>
113
+ </tr>
114
+
115
+ <tr>
116
+ <td>
117
+ <input name="smbd_um_limit" id="smbd_um_limit" value = "true" type = "checkbox">
118
+ <?php _e( 'Only delete user meta field from first ', 'bulk-delete' );?>
119
+ <input type ="textbox" name="smbd_um_limit_to" id="smbd_um_limit_to" disabled value ="0" maxlength="4" size="4"><?php _e( 'users.', 'bulk-delete' );?>
120
+ <?php _e( 'Use this option if there are more than 1000 users and the script timesout.', 'bulk-delete' ) ?>
121
+ </td>
122
+ </tr>
123
+
124
+ <tr>
125
+ <td>
126
+ <input name="smbd_um_cron" value = "false" type = "radio" checked="checked"> <?php _e( 'Delete now', 'bulk-delete' ); ?>
127
+ <input name="smbd_um_cron" value = "true" type = "radio" id = "smbd_um_cron" disabled > <?php _e( 'Schedule', 'bulk-delete' ); ?>
128
+ <input name="smbd_um_cron_start" id = "smbd_um_cron_start" value = "now" type = "text" disabled><?php _e( 'repeat ', 'bulk-delete' );?>
129
+ <select name="smbd_um_cron_freq" id = "smbd_um_cron_freq" disabled>
130
+ <option value = "-1"><?php _e( "Don't repeat", 'bulk-delete' ); ?></option>
131
+ <?php
132
+ $schedules = wp_get_schedules();
133
+ foreach ( $schedules as $key => $value ) {
134
+ ?>
135
+ <option value = "<?php echo $key; ?>"><?php echo $value['display']; ?></option>
136
+ <?php
137
+ }
138
+ ?>
139
+ </select>
140
+ <span class="bd-um-pro" style="color:red">
141
+ <?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-user-meta/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-m-u">Buy now</a>
142
+ </span>
143
+ </td>
144
+ </tr>
145
+
146
+ <tr>
147
+ <td>
148
+ <?php _e( 'Enter time in Y-m-d H:i:s format or enter now to use current time', 'bulk-delete' );?>
149
+ </td>
150
+ </tr>
151
+
152
+ </table>
153
+ </fieldset>
154
+
155
+ <p>
156
+ <button type="submit" name="bd_action" value="delete_meta_user" class="button-primary"><?php _e( 'Bulk Delete ', 'bulk-delete' ) ?>&raquo;</button>
157
+ </p>
158
+ <!-- User Meta box end-->
159
+ <?php
160
+ }
161
+
162
+ /**
163
+ * Filter JS Array and add validation hooks.
164
+ *
165
+ * @since 5.4
166
+ * @static
167
+ * @param array $js_array JavaScript Array
168
+ * @return array Modified JavaScript Array
169
+ */
170
+ public static function filter_js_array( $js_array ) {
171
+ $js_array['dt_iterators'][] = '_um';
172
+ $js_array['validators']['delete_meta_user'] = 'noValidation';
173
+
174
+ $js_array['pre_action_msg']['delete_meta_user'] = 'deleteUMWarning';
175
+ $js_array['msg']['deleteUMWarning'] = __( 'Are you sure you want to delete all the user meta fields that match the selected filters?', 'bulk-delete' );
176
+
177
+ return $js_array;
178
+ }
179
+
180
+ /**
181
+ * Controller for deleting user meta fields.
182
+ *
183
+ * @static
184
+ * @since 5.4
185
+ */
186
+ public static function do_delete_user_meta() {
187
+ $delete_options = array();
188
+ $delete_options['user_role'] = array_get( $_POST, 'smbd_um_role', 'administrator' );
189
+
190
+ $delete_options['use_value'] = array_get_bool( $_POST, 'smbd_um_use_value', FALSE );
191
+ $delete_options['meta_key'] = esc_sql( array_get( $_POST, 'smbd_um_key', '' ) );
192
+
193
+ $delete_options['limit_to'] = absint( array_get( $_POST, 'smbd_um_limit_to', 0 ) );
194
+
195
+ /**
196
+ * Delete user-meta delete options filter.
197
+ * This filter is for processing filtering options for deleting user meta
198
+ *
199
+ * @since 5.4
200
+ */
201
+ $delete_options = apply_filters( 'bd_delete_user_meta_options', $delete_options, $_POST );
202
+
203
+ if ( array_get( $_POST, 'smbd_um_cron', 'false' ) == 'true' ) {
204
+ $freq = $_POST['smbd_um_cron_freq'];
205
+ $time = strtotime( $_POST['smbd_um_cron_start'] ) - ( get_option( 'gmt_offset' ) * 60 * 60 );
206
+
207
+ if ( $freq == -1 ) {
208
+ wp_schedule_single_event( $time, self::CRON_HOOK, array( $delete_options ) );
209
+ } else {
210
+ wp_schedule_event( $time, $freq, self::CRON_HOOK, array( $delete_options ) );
211
+ }
212
+ $msg = __( 'User meta fields from the users with the selected criteria are scheduled for deletion.', 'bulk-delete' ) . ' ' .
213
+ sprintf( __( 'See the full list of <a href = "%s">scheduled tasks</a>' , 'bulk-delete' ), get_bloginfo( 'wpurl' ) . '/wp-admin/admin.php?page=' . Bulk_Delete::CRON_PAGE_SLUG );
214
+ } else {
215
+ $deleted_count = self::delete_user_meta( $delete_options );
216
+ $msg = sprintf( _n( 'Deleted user meta field from %d user', 'Deleted user meta field from %d users' , $deleted_count, 'bulk-delete' ), $deleted_count );
217
+ }
218
+
219
+ add_settings_error(
220
+ Bulk_Delete_Meta::META_PAGE_SLUG,
221
+ 'deleted-users',
222
+ $msg,
223
+ 'updated'
224
+ );
225
+ }
226
+
227
+ /**
228
+ * Delete User Meta.
229
+ *
230
+ * @static
231
+ * @since 5.4
232
+ * @param array $delete_options Options for deleting
233
+ * @return int Number of users that were deleted
234
+ */
235
+ public static function delete_user_meta( $delete_options ) {
236
+ $count = 0;
237
+ $user_role = $delete_options['user_role'];
238
+ $meta_key = $delete_options['meta_key'];
239
+ $use_value = $delete_options['use_value'];
240
+ $limit_to = $delete_options['limit_to'];
241
+
242
+ $options = array(
243
+ 'role' => $user_role,
244
+ );
245
+
246
+ if ( $limit_to > 0 ) {
247
+ $options['number'] = $limit_to;
248
+ }
249
+
250
+ if ( $use_value ) {
251
+ $meta_value = $delete_options['meta_value'];
252
+ $options['meta_query'] = apply_filters( 'bd_delete_user_meta_query', array(), $delete_options );
253
+ } else {
254
+ $options['meta_key'] = $meta_key;
255
+ }
256
+
257
+ $users = get_users( $options );
258
+
259
+ foreach ( $users as $user ) {
260
+ if ( delete_user_meta( $user->ID, $meta_key ) ) {
261
+ $count++;
262
+ }
263
+ }
264
+ return $count;
265
+ }
266
+ }
267
+
268
+ // hooks
269
+ add_action( 'bd_add_meta_box_for_meta', array( 'Bulk_Delete_User_Meta', 'add_delete_user_meta_box' ) );
270
+ add_action( 'bd_delete_meta_user', array( 'Bulk_Delete_User_Meta', 'do_delete_user_meta' ) );
271
+
272
+ add_filter( 'bd_javascript_array', array( 'Bulk_Delete_User_Meta', 'filter_js_array' ) );
273
+ ?>
include/misc/class-bulk-delete-jetpack-contact-form-messages.php CHANGED
@@ -76,7 +76,7 @@ class Bulk_Delete_Jetpack_Contact_Form_Message {
76
  </td>
77
  <td>
78
  <label for="smbd_feedback"><?php _e( 'Delete Messages based on filters', 'bulk-delete' ); ?></label>
79
- <span class = "bd-feedback-pro" style = "color:red; vertical-align: middle;"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow" target="_blank">Buy now</a></span>
80
  </td>
81
  </tr>
82
  </table>
@@ -150,20 +150,37 @@ class Bulk_Delete_Jetpack_Contact_Form_Message {
150
  }
151
  ?>
152
  </select>
153
- <span class = "bd-feedback-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow" target="_blank">Buy now</a></span>
154
  </td>
155
  </tr>
156
 
157
  </table>
158
  </fieldset>
159
  <p class="submit">
160
- <button type='submit' name='bd_action' value = 'delete_jetpack_messages' class='button-primary'><?php _e( 'Bulk Delete ', 'bulk-delete' ) ?>&raquo;</button>
161
  </p>
162
  <!-- Delete Jetpack Feedback box end-->
163
  <?php
164
  }
165
  }
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * Controller for deleting Jetpack contact form messages
169
  *
@@ -303,6 +320,8 @@ class Bulk_Delete_Jetpack_Contact_Form_Message {
303
  }
304
 
305
  // hooks
306
- add_action( 'bd_add_meta_box_for_misc', array( 'Bulk_Delete_Jetpack_Contact_Form_Message', 'add_delete_jetpack_messages_meta_box' ) );
307
  add_action( 'bd_delete_jetpack_messages', array( 'Bulk_Delete_Jetpack_Contact_Form_Message', 'do_delete_jetpack_messages' ) );
 
 
308
  ?>
76
  </td>
77
  <td>
78
  <label for="smbd_feedback"><?php _e( 'Delete Messages based on filters', 'bulk-delete' ); ?></label>
79
+ <span class = "bd-feedback-pro" style = "color:red; vertical-align: middle;"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-jcm" target="_blank">Buy now</a></span>
80
  </td>
81
  </tr>
82
  </table>
150
  }
151
  ?>
152
  </select>
153
+ <span class = "bd-feedback-pro" style = "color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href = "http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-jcm" target="_blank">Buy now</a></span>
154
  </td>
155
  </tr>
156
 
157
  </table>
158
  </fieldset>
159
  <p class="submit">
160
+ <button type='submit' name='bd_action' value='delete_jetpack_messages' class='button-primary'><?php _e( 'Bulk Delete ', 'bulk-delete' ) ?>&raquo;</button>
161
  </p>
162
  <!-- Delete Jetpack Feedback box end-->
163
  <?php
164
  }
165
  }
166
 
167
+ /**
168
+ * Filter JS Array and add validation hooks
169
+ *
170
+ * @since 5.4
171
+ * @static
172
+ * @param array $js_array JavaScript Array
173
+ * @return array Modified JavaScript Array
174
+ */
175
+ public static function filter_js_array( $js_array ) {
176
+ $js_array['dt_iterators'][] = '_feedback';
177
+ $js_array['validators']['delete_jetpack_messages'] = 'noValidation';
178
+
179
+ $js_array['pre_action_msg']['delete_jetpack_messages'] = 'deleteJetpackWarning';
180
+ $js_array['msg']['deleteJetpackWarning'] = __( 'Are you sure you want to delete all the Jetpack contact form messages based on the selected filters?', 'bulk-delete' );
181
+ return $js_array;
182
+ }
183
+
184
  /**
185
  * Controller for deleting Jetpack contact form messages
186
  *
320
  }
321
 
322
  // hooks
323
+ add_action( 'bd_add_meta_box_for_misc' , array( 'Bulk_Delete_Jetpack_Contact_Form_Message', 'add_delete_jetpack_messages_meta_box' ) );
324
  add_action( 'bd_delete_jetpack_messages', array( 'Bulk_Delete_Jetpack_Contact_Form_Message', 'do_delete_jetpack_messages' ) );
325
+
326
+ add_filter( 'bd_javascript_array' , array( 'Bulk_Delete_Jetpack_Contact_Form_Message', 'filter_js_array' ) );
327
  ?>
include/misc/class-bulk-delete-misc.php CHANGED
@@ -107,14 +107,12 @@ class Bulk_Delete_Misc {
107
  <div id = "poststuff">
108
  <div id="post-body" class="metabox-holder columns-2">
109
 
110
- <div id="post-body-content">
111
- <div class="updated" >
112
- <p><strong><?php _e( 'WARNING: Posts deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
113
- </div>
114
- </div><!-- #post-body-content -->
115
 
116
  <div id="postbox-container-1" class="postbox-container">
117
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
118
  </div>
119
 
120
  <div id="postbox-container-2" class="postbox-container">
107
  <div id = "poststuff">
108
  <div id="post-body" class="metabox-holder columns-2">
109
 
110
+ <div class="updated" >
111
+ <p><strong><?php _e( 'WARNING: Posts deleted once cannot be retrieved back. Use with caution.', 'bulk-delete' ); ?></strong></p>
112
+ </div>
 
 
113
 
114
  <div id="postbox-container-1" class="postbox-container">
115
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
116
  </div>
117
 
118
  <div id="postbox-container-2" class="postbox-container">
include/settings/class-bd-settings-page.php CHANGED
@@ -93,7 +93,7 @@ class BD_Settings_Page {
93
  <div id="post-body" class="metabox-holder columns-2">
94
 
95
  <div id="postbox-container-1" class="postbox-container">
96
- <iframe frameBorder="0" height = "1300" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
97
  </div>
98
 
99
  <div id="postbox-container-2" class="postbox-container">
93
  <div id="post-body" class="metabox-holder columns-2">
94
 
95
  <div id="postbox-container-1" class="postbox-container">
96
+ <iframe frameBorder="0" height = "1500" src = "http://sudarmuthu.com/projects/wordpress/bulk-delete/sidebar.php?color=<?php echo get_user_option( 'admin_color' ); ?>&version=<?php echo Bulk_Delete::VERSION; ?>"></iframe>
97
  </div>
98
 
99
  <div id="postbox-container-2" class="postbox-container">
js/bulk-delete.js CHANGED
@@ -8,17 +8,12 @@
8
  */
9
 
10
  /*jslint browser: true, devel: true*/
11
- /*global BULK_DELETE, jQuery, document, postboxes, pagenow*/
12
  jQuery(document).ready(function () {
13
-
14
- // hide all terms
15
- function hideAllTerms() {
16
- jQuery('table.terms').hide();
17
- jQuery('input.terms').attr('checked', false);
18
- }
19
-
20
- // call it for the first time
21
- hideAllTerms();
22
 
23
  /**
24
  * Toggle the date restrict fields
@@ -44,24 +39,13 @@ jQuery(document).ready(function () {
44
  }
45
  }
46
 
47
- // for post boxes
48
- postboxes.add_postbox_toggles(pagenow);
49
-
50
- jQuery.each(['_cats', '_tags', '_taxs', '_pages', '_post_status', '_types', '_cf', '_title', '_dup_title', '_post_by_role', 'u_userrole', '_feedback'], function (index, value) {
51
- // invoke the date time picker
52
- jQuery('#smbd' + value + '_cron_start').datetimepicker({
53
- timeFormat: 'HH:mm:ss'
54
- });
55
-
56
- jQuery('#smbd' + value + '_restrict').change(function () {
57
- toggle_date_restrict(value);
58
- });
59
-
60
- jQuery('#smbd' + value + '_limit').change(function () {
61
- toggle_limit_restrict(value);
62
- });
63
-
64
- });
65
 
66
  // taxonomy click handling
67
  jQuery('.custom-tax').change(function () {
@@ -75,77 +59,86 @@ jQuery(document).ready(function () {
75
  }
76
  });
77
 
78
- // Handle clicking of submit buttons
79
- jQuery('button').click(function () {
80
- var current_button = jQuery(this).val(),
81
- valid = false;
 
 
 
 
82
 
83
- if (jQuery(this).val() === 'delete_posts_by_url') {
84
- if (jQuery(this).parent().prev().children('table').find("textarea").val() !== '') {
85
- valid = true;
86
- } else {
87
- // not valid
88
- alert(BULK_DELETE.error.enterurl);
89
- }
90
- } else if (jQuery(this).val() === 'delete_posts_by_custom_field') {
91
- if (jQuery('#smbd_cf_key').val() !== '') {
92
- valid = true;
93
- } else {
94
- // not valid
95
- alert(BULK_DELETE.error.enter_cf_key);
96
- }
97
 
98
- } else if (jQuery(this).val() === 'delete_posts_by_title') {
 
 
 
 
 
99
 
100
- if (jQuery('#smbd_title_value').val() !== '') {
101
- valid = true;
102
- } else {
103
- // not valid
104
- alert(BULK_DELETE.error.enter_title);
105
- }
 
 
 
106
 
107
- } else if (jQuery(this).val() === 'delete_posts_by_duplicate_title') {
108
- // nothing to check for duplicate title
109
- valid = true;
110
- } else if (jQuery(this).val() === 'delete_jetpack_messages') {
111
- // nothing to check for jetpack messages
112
- valid = true;
 
 
 
113
  } else {
114
  if (jQuery(this).parent().prev().children('table').find(":checkbox:checked[value!='true']").size() > 0) {
115
  // monstrous selector
116
  valid = true;
117
- } else {
118
- // not valid
119
- alert(BULK_DELETE.error.selectone);
120
  }
121
  }
122
 
123
  if (valid) {
124
- if (current_button.lastIndexOf('delete_users_by_role', 0) === 0) {
125
- return confirm(BULK_DELETE.msg.deletewarningusers);
126
- } else {
127
- return confirm(BULK_DELETE.msg.deletewarning);
 
 
 
 
128
  }
 
 
129
  }
130
 
131
  return false;
132
  });
133
 
134
- // Handle selection of all checkboxes of cats
135
- jQuery('#smbd_cats_all').change(function () {
136
- if (jQuery(this).is(':checked')) {
137
- jQuery('input[name="smbd_cats[]"]').attr('checked', true);
138
- } else {
139
- jQuery('input[name="smbd_cats[]"]').attr('checked', false);
140
- }
141
- });
142
 
143
- // Handle selection of all checkboxes of tags
144
- jQuery('#smbd_tags_all').change(function () {
145
- if (jQuery(this).is(':checked')) {
146
- jQuery('input[name="smbd_tags[]"]').attr('checked', true);
147
  } else {
148
- jQuery('input[name="smbd_tags[]"]').attr('checked', false);
149
  }
150
- });
151
  });
8
  */
9
 
10
  /*jslint browser: true, devel: true*/
11
+ /*global BulkWP, jQuery, document, postboxes, pagenow*/
12
  jQuery(document).ready(function () {
13
+ /**
14
+ * Enable Postbox handling
15
+ */
16
+ postboxes.add_postbox_toggles(pagenow);
 
 
 
 
 
17
 
18
  /**
19
  * Toggle the date restrict fields
39
  }
40
  }
41
 
42
+ // hide all terms
43
+ function hideAllTerms() {
44
+ jQuery('table.terms').hide();
45
+ jQuery('input.terms').attr('checked', false);
46
+ }
47
+ // call it for the first time
48
+ hideAllTerms();
 
 
 
 
 
 
 
 
 
 
 
49
 
50
  // taxonomy click handling
51
  jQuery('.custom-tax').change(function () {
59
  }
60
  });
61
 
62
+ // Handle selection of all checkboxes of cats
63
+ jQuery('#smbd_cats_all').change(function () {
64
+ if (jQuery(this).is(':checked')) {
65
+ jQuery('input[name="smbd_cats[]"]').attr('checked', true);
66
+ } else {
67
+ jQuery('input[name="smbd_cats[]"]').attr('checked', false);
68
+ }
69
+ });
70
 
71
+ // Handle selection of all checkboxes of tags
72
+ jQuery('#smbd_tags_all').change(function () {
73
+ if (jQuery(this).is(':checked')) {
74
+ jQuery('input[name="smbd_tags[]"]').attr('checked', true);
75
+ } else {
76
+ jQuery('input[name="smbd_tags[]"]').attr('checked', false);
77
+ }
78
+ });
 
 
 
 
 
 
79
 
80
+ // date time picker
81
+ jQuery.each(BulkWP.dt_iterators, function (index, value) {
82
+ // invoke the date time picker
83
+ jQuery('#smbd' + value + '_cron_start').datetimepicker({
84
+ timeFormat: 'HH:mm:ss'
85
+ });
86
 
87
+ jQuery('#smbd' + value + '_restrict').change(function () {
88
+ toggle_date_restrict(value);
89
+ });
90
+
91
+ jQuery('#smbd' + value + '_limit').change(function () {
92
+ toggle_limit_restrict(value);
93
+ });
94
+
95
+ });
96
 
97
+ // Validate user action
98
+ jQuery('button[name="bd_action"]').click(function () {
99
+ var currentButton = jQuery(this).val(),
100
+ valid = false,
101
+ msg_key = "deletePostsWarning",
102
+ error_key = "selectPostOption";
103
+
104
+ if (currentButton in BulkWP.validators) {
105
+ valid = BulkWP[BulkWP.validators[currentButton]](this)
106
  } else {
107
  if (jQuery(this).parent().prev().children('table').find(":checkbox:checked[value!='true']").size() > 0) {
108
  // monstrous selector
109
  valid = true;
 
 
 
110
  }
111
  }
112
 
113
  if (valid) {
114
+ if (currentButton in BulkWP.pre_action_msg) {
115
+ msg_key = BulkWP.pre_action_msg[currentButton];
116
+ }
117
+
118
+ return confirm(BulkWP.msg[msg_key])
119
+ } else {
120
+ if (currentButton in BulkWP.error_msg) {
121
+ error_key = BulkWP.error_msg[currentButton];
122
  }
123
+
124
+ alert(BulkWP.msg[error_key]);
125
  }
126
 
127
  return false;
128
  });
129
 
130
+ /**
131
+ * Validation functions
132
+ */
133
+ BulkWP.noValidation = function(that) {
134
+ return true;
135
+ }
 
 
136
 
137
+ BulkWP.validateUrl = function(that) {
138
+ if (jQuery(that).parent().prev().children('table').find("textarea").val() !== '') {
139
+ return true;
 
140
  } else {
141
+ return false;
142
  }
143
+ }
144
  });
languages/bulk-delete.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the Bulk Delete package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Bulk Delete 5.3\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/bulk-delete\n"
7
- "POT-Creation-Date: 2014-08-24 13:25:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -16,131 +16,107 @@ msgstr ""
16
  msgid "Cheatin&#8217; huh?"
17
  msgstr ""
18
 
19
- #: bulk-delete.php:254
20
  msgid "Bulk WP"
21
  msgstr ""
22
 
23
- #: bulk-delete.php:256 bulk-delete.php:466 include/admin-ui.php:52
24
  msgid "Bulk Delete Posts"
25
  msgstr ""
26
 
27
- #: bulk-delete.php:257 bulk-delete.php:519
28
  msgid "Bulk Delete Pages"
29
  msgstr ""
30
 
31
- #: bulk-delete.php:258 bulk-delete.php:570 include/admin-ui.php:49
32
  msgid "Bulk Delete Users"
33
  msgstr ""
34
 
35
- #: bulk-delete.php:278 bulk-delete.php:633
36
  msgid "Bulk Delete Schedules"
37
  msgstr ""
38
 
39
- #: bulk-delete.php:278
40
  msgid "Scheduled Jobs"
41
  msgstr ""
42
 
43
- #: bulk-delete.php:279 include/class-bd-license.php:30
44
  msgid "Addon Licenses"
45
  msgstr ""
46
 
47
- #: bulk-delete.php:280
48
  msgid "Bulk Delete System Info"
49
  msgstr ""
50
 
51
- #: bulk-delete.php:280
52
  msgid "System Info"
53
  msgstr ""
54
 
55
- #: bulk-delete.php:332
56
  msgid "By Post Status"
57
  msgstr ""
58
 
59
- #: bulk-delete.php:333
60
  msgid "By Category"
61
  msgstr ""
62
 
63
- #: bulk-delete.php:334
64
  msgid "By Tag"
65
  msgstr ""
66
 
67
- #: bulk-delete.php:335
68
  msgid "By Custom Taxonomy"
69
  msgstr ""
70
 
71
- #: bulk-delete.php:336
72
  msgid "By Custom Post Types"
73
  msgstr ""
74
 
75
- #: bulk-delete.php:337
76
  msgid "By URL"
77
  msgstr ""
78
 
79
- #: bulk-delete.php:338
80
  msgid "By Post Revision"
81
  msgstr ""
82
 
83
- #: bulk-delete.php:339
84
  msgid "By Custom Field"
85
  msgstr ""
86
 
87
- #: bulk-delete.php:340
88
  msgid "By Title"
89
  msgstr ""
90
 
91
- #: bulk-delete.php:341
92
  msgid "By Duplicate Title"
93
  msgstr ""
94
 
95
- #: bulk-delete.php:342 bulk-delete.php:416
96
  msgid "By User Role"
97
  msgstr ""
98
 
99
- #: bulk-delete.php:343 tmp_addon/bulk-delete-from-trash.php:115
100
  msgid "Posts in Trash"
101
  msgstr ""
102
 
103
- #: bulk-delete.php:381
104
  msgid "By Page status"
105
  msgstr ""
106
 
107
- #: bulk-delete.php:382
108
  msgid "Pages in Trash"
109
  msgstr ""
110
 
111
- #: bulk-delete.php:445
112
- msgid "Are you sure you want to delete all the selected posts"
113
- msgstr ""
114
-
115
- #: bulk-delete.php:446
116
- msgid "Are you sure you want to delete all the selected users"
117
- msgstr ""
118
-
119
- #: bulk-delete.php:450
120
- msgid "Please select posts from at least one option"
121
- msgstr ""
122
-
123
- #: bulk-delete.php:451
124
- msgid "Please enter at least one page url"
125
- msgstr ""
126
-
127
- #: bulk-delete.php:452
128
- msgid "Please enter some value for custom field key"
129
- msgstr ""
130
-
131
- #: bulk-delete.php:453
132
- msgid "Please enter some value for title"
133
- msgstr ""
134
-
135
- #: bulk-delete.php:483 include/misc/class-bulk-delete-misc.php:112
136
  msgid "WARNING: Posts deleted once cannot be retrieved back. Use with caution."
137
  msgstr ""
138
 
139
- #: bulk-delete.php:536
140
  msgid "WARNING: Pages deleted once cannot be retrieved back. Use with caution."
141
  msgstr ""
142
 
143
- #: bulk-delete.php:587
144
  msgid "WARNING: Users deleted once cannot be retrieved back. Use with caution."
145
  msgstr ""
146
 
@@ -219,6 +195,8 @@ msgstr ""
219
  #: include/class-bd-license.php:412 include/class-bd-license.php:418
220
  #: include/class-bd-license.php:424 include/class-bd-license.php:430
221
  #: include/class-bd-license.php:436 include/class-bd-license.php:442
 
 
222
  msgid "More Info"
223
  msgstr ""
224
 
@@ -239,27 +217,27 @@ msgid "Adds the ability to delete posts based on duplicate title"
239
  msgstr ""
240
 
241
  #: include/class-bd-license.php:380
242
- msgid "Delete posts by user role"
243
  msgstr ""
244
 
245
  #: include/class-bd-license.php:381
246
- msgid "Adds the ability to delete posts based on user role"
247
  msgstr ""
248
 
249
  #: include/class-bd-license.php:386
250
- msgid "Delete from trash"
251
  msgstr ""
252
 
253
  #: include/class-bd-license.php:387
254
- msgid "Adds the ability to delete posts and pages from trash"
255
  msgstr ""
256
 
257
  #: include/class-bd-license.php:392
258
- msgid "Delete Jetpack Contact Form Messages"
259
  msgstr ""
260
 
261
  #: include/class-bd-license.php:393
262
- msgid "Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion"
263
  msgstr ""
264
 
265
  #: include/class-bd-license.php:398
@@ -326,6 +304,38 @@ msgstr ""
326
  msgid "Adds the ability to schedule auto delete of users based on user role"
327
  msgstr ""
328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  #: include/class-bd-settings.php:26
330
  msgid "Add Addon License"
331
  msgstr ""
@@ -395,6 +405,9 @@ msgstr ""
395
  #: include/class-bulk-delete-posts.php:1579
396
  #: include/class-bulk-delete-posts.php:1606
397
  #: include/class-bulk-delete-users.php:17
 
 
 
398
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:44
399
  msgid "This section just got enabled. Kindly <a href = \"%1$s\">refresh</a> the page to fully enable it."
400
  msgstr ""
@@ -440,10 +453,11 @@ msgstr ""
440
  #: include/class-bulk-delete-posts.php:1345
441
  #: include/class-bulk-delete-users.php:41
442
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:123
443
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:190
444
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:155
445
- #: tmp_addon/bulk-delete-posts-by-title.php:106
446
- #: tmp_addon/bulk-delete-posts-by-user-role.php:126
 
447
  msgid "Choose your filtering options"
448
  msgstr ""
449
 
@@ -457,9 +471,12 @@ msgstr ""
457
  #: include/class-bulk-delete-posts.php:613
458
  #: include/class-bulk-delete-posts.php:889
459
  #: include/class-bulk-delete-posts.php:1148
 
 
460
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:106
461
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:201
462
- #: tmp_addon/bulk-delete-posts-by-title.php:117
 
463
  msgid "older than"
464
  msgstr ""
465
 
@@ -469,9 +486,11 @@ msgstr ""
469
  #: include/class-bulk-delete-posts.php:614
470
  #: include/class-bulk-delete-posts.php:890
471
  #: include/class-bulk-delete-posts.php:1149
 
472
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:107
473
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:202
474
- #: tmp_addon/bulk-delete-posts-by-title.php:118
 
475
  msgid "posted within last"
476
  msgstr ""
477
 
@@ -482,9 +501,13 @@ msgstr ""
482
  #: include/class-bulk-delete-posts.php:892
483
  #: include/class-bulk-delete-posts.php:1151
484
  #: include/class-bulk-delete-users.php:56
 
 
485
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:109
486
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:204
487
- #: tmp_addon/bulk-delete-posts-by-title.php:120
 
 
488
  msgid "days"
489
  msgstr ""
490
 
@@ -496,10 +519,11 @@ msgstr ""
496
  #: include/class-bulk-delete-posts.php:1157
497
  #: include/class-bulk-delete-posts.php:1351
498
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:132
499
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:210
500
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:161
501
- #: tmp_addon/bulk-delete-posts-by-title.php:126
502
- #: tmp_addon/bulk-delete-posts-by-user-role.php:130
 
503
  msgid "Move to Trash"
504
  msgstr ""
505
 
@@ -511,10 +535,11 @@ msgstr ""
511
  #: include/class-bulk-delete-posts.php:1158
512
  #: include/class-bulk-delete-posts.php:1352
513
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:133
514
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:211
515
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:162
516
- #: tmp_addon/bulk-delete-posts-by-title.php:127
517
- #: tmp_addon/bulk-delete-posts-by-user-role.php:131
 
518
  msgid "Delete permanently"
519
  msgstr ""
520
 
@@ -526,9 +551,11 @@ msgstr ""
526
  #: include/class-bulk-delete-posts.php:1167
527
  #: include/class-bulk-delete-users.php:79
528
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:118
529
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:227
530
- #: tmp_addon/bulk-delete-posts-by-title.php:143
531
- #: tmp_addon/bulk-delete-posts-by-user-role.php:138
 
 
532
  msgid "Only delete first "
533
  msgstr ""
534
 
@@ -547,11 +574,15 @@ msgstr ""
547
  #: include/class-bulk-delete-posts.php:923
548
  #: include/class-bulk-delete-posts.php:1175
549
  #: include/class-bulk-delete-users.php:88
 
 
 
550
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:139
551
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:235
552
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:168
553
- #: tmp_addon/bulk-delete-posts-by-title.php:151
554
- #: tmp_addon/bulk-delete-posts-by-user-role.php:147
 
555
  msgid "Delete now"
556
  msgstr ""
557
 
@@ -562,11 +593,15 @@ msgstr ""
562
  #: include/class-bulk-delete-posts.php:924
563
  #: include/class-bulk-delete-posts.php:1176
564
  #: include/class-bulk-delete-users.php:89 include/class-cron-list-table.php:56
 
 
 
565
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:140
566
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:236
567
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:169
568
- #: tmp_addon/bulk-delete-posts-by-title.php:152
569
- #: tmp_addon/bulk-delete-posts-by-user-role.php:148
 
570
  msgid "Schedule"
571
  msgstr ""
572
 
@@ -577,11 +612,15 @@ msgstr ""
577
  #: include/class-bulk-delete-posts.php:925
578
  #: include/class-bulk-delete-posts.php:1177
579
  #: include/class-bulk-delete-users.php:90
 
 
 
580
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:141
581
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:237
582
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:170
583
- #: tmp_addon/bulk-delete-posts-by-title.php:153
584
- #: tmp_addon/bulk-delete-posts-by-user-role.php:149
 
585
  msgid "repeat "
586
  msgstr ""
587
 
@@ -592,11 +631,15 @@ msgstr ""
592
  #: include/class-bulk-delete-posts.php:927
593
  #: include/class-bulk-delete-posts.php:1179
594
  #: include/class-bulk-delete-users.php:92
 
 
 
595
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:143
596
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:239
597
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:172
598
- #: tmp_addon/bulk-delete-posts-by-title.php:155
599
- #: tmp_addon/bulk-delete-posts-by-user-role.php:151
 
600
  msgid "Don't repeat"
601
  msgstr ""
602
 
@@ -607,12 +650,19 @@ msgstr ""
607
  #: include/class-bulk-delete-posts.php:937
608
  #: include/class-bulk-delete-posts.php:1189
609
  #: include/class-bulk-delete-users.php:102
 
 
 
 
 
 
610
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:79
611
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:153
612
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:249
613
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:182
614
- #: tmp_addon/bulk-delete-posts-by-title.php:165
615
- #: tmp_addon/bulk-delete-posts-by-user-role.php:161
 
616
  msgid "Only available in Pro Addon"
617
  msgstr ""
618
 
@@ -625,13 +675,17 @@ msgstr ""
625
  #: include/class-bulk-delete-posts.php:1360
626
  #: include/class-bulk-delete-posts.php:1434
627
  #: include/class-bulk-delete-users.php:116
 
 
 
628
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:160
629
- #: tmp_addon/bulk-delete-from-trash.php:125
630
- #: tmp_addon/bulk-delete-from-trash.php:209
631
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:263
632
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:196
633
- #: tmp_addon/bulk-delete-posts-by-title.php:179
634
- #: tmp_addon/bulk-delete-posts-by-user-role.php:175
 
635
  msgid "Bulk Delete "
636
  msgstr ""
637
 
@@ -646,11 +700,15 @@ msgstr ""
646
  #: include/class-bulk-delete-posts.php:985
647
  #: include/class-bulk-delete-posts.php:1236
648
  #: include/class-bulk-delete-users.php:149
649
- #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:203
650
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:305
651
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:241
652
- #: tmp_addon/bulk-delete-posts-by-title.php:216
653
- #: tmp_addon/bulk-delete-posts-by-user-role.php:206
 
 
 
 
654
  msgid "See the full list of <a href = \"%s\">scheduled tasks</a>"
655
  msgstr ""
656
 
@@ -717,9 +775,11 @@ msgstr ""
717
  #: include/class-bulk-delete-posts.php:611
718
  #: include/class-bulk-delete-posts.php:887
719
  #: include/class-bulk-delete-posts.php:1146
 
720
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:104
721
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:199
722
- #: tmp_addon/bulk-delete-posts-by-title.php:115
 
723
  msgid "Only restrict to posts which are "
724
  msgstr ""
725
 
@@ -728,10 +788,12 @@ msgstr ""
728
  #: include/class-bulk-delete-posts.php:640
729
  #: include/class-bulk-delete-posts.php:916
730
  #: include/class-bulk-delete-posts.php:1168
 
731
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:119
732
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:228
733
- #: tmp_addon/bulk-delete-posts-by-title.php:144
734
- #: tmp_addon/bulk-delete-posts-by-user-role.php:140
 
735
  msgid "posts."
736
  msgstr ""
737
 
@@ -740,9 +802,13 @@ msgstr ""
740
  #: include/class-bulk-delete-posts.php:641
741
  #: include/class-bulk-delete-posts.php:917
742
  #: include/class-bulk-delete-posts.php:1169
 
 
743
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:120
744
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:229
745
- #: tmp_addon/bulk-delete-posts-by-title.php:145
 
 
746
  msgid "Use this option if there are more than 1000 posts and the script timesout."
747
  msgstr ""
748
 
@@ -775,25 +841,31 @@ msgstr ""
775
  #: include/class-bulk-delete-posts.php:396
776
  #: include/class-bulk-delete-posts.php:629
777
  #: include/class-bulk-delete-posts.php:905
778
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:217
779
- #: tmp_addon/bulk-delete-posts-by-title.php:133
 
780
  msgid "Public posts"
781
  msgstr ""
782
 
783
  #: include/class-bulk-delete-posts.php:397
784
  #: include/class-bulk-delete-posts.php:630
785
  #: include/class-bulk-delete-posts.php:906
786
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:218
787
- #: tmp_addon/bulk-delete-posts-by-title.php:134
 
788
  msgid "Private Posts"
789
  msgstr ""
790
 
791
  #: include/class-bulk-delete-posts.php:434
792
  #: include/class-bulk-delete-users.php:108
793
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:255
794
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:188
795
- #: tmp_addon/bulk-delete-posts-by-title.php:171
796
- #: tmp_addon/bulk-delete-posts-by-user-role.php:167
 
 
 
 
797
  msgid "Enter time in Y-m-d H:i:s format or enter now to use current time"
798
  msgstr ""
799
 
@@ -926,6 +998,18 @@ msgid "You need \"Bulk Delete From Trash\" Addon, to delete post in Trash."
926
  msgstr ""
927
 
928
  #: include/class-bulk-delete-posts.php:1640
 
 
 
 
 
 
 
 
 
 
 
 
929
  msgid "The selected scheduled job was successfully deleted "
930
  msgstr ""
931
 
@@ -946,7 +1030,8 @@ msgid "Select the user roles from which you want to delete users"
946
  msgstr ""
947
 
948
  #: include/class-bulk-delete-users.php:33
949
- #: tmp_addon/bulk-delete-posts-by-user-role.php:95
 
950
  msgid "Users"
951
  msgstr ""
952
 
@@ -963,6 +1048,7 @@ msgid "Only if user doesn't have any post. Only posts from 'post' post type woul
963
  msgstr ""
964
 
965
  #: include/class-bulk-delete-users.php:81
 
966
  msgid "users."
967
  msgstr ""
968
 
@@ -980,6 +1066,14 @@ msgid_plural "Deleted %d users from the selected role"
980
  msgstr[0] ""
981
  msgstr[1] ""
982
 
 
 
 
 
 
 
 
 
983
  #: include/class-bulk-delete-util.php:125
984
  msgctxt "Cron table date format"
985
  msgid "M j, Y @ G:i"
@@ -1050,6 +1144,171 @@ msgstr ""
1050
  msgid "You don't have any valid addon license yet."
1051
  msgstr ""
1052
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1053
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:29
1054
  msgid "Bulk Delete Jetpack Contact Form Messages"
1055
  msgstr ""
@@ -1074,15 +1333,15 @@ msgstr ""
1074
  msgid "Choose your date options"
1075
  msgstr ""
1076
 
1077
- #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:126
1078
- msgid "Choose your deletion options"
1079
  msgstr ""
1080
 
1081
- #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:202
1082
  msgid "Jetpack contact form messages with the selected criteria are scheduled for deletion."
1083
  msgstr ""
1084
 
1085
- #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:206
1086
  msgid "Deleted %d Jetpack contact form message"
1087
  msgid_plural "Deleted %d Jetpack contact form messages"
1088
  msgstr[0] ""
@@ -1106,38 +1365,132 @@ msgstr ""
1106
  msgid "Settings"
1107
  msgstr ""
1108
 
1109
- #: tmp_addon/bulk-delete-from-trash.php:104
1110
- msgid "Select the post type whose posts you want to delete from trash"
1111
  msgstr ""
1112
 
1113
- #: tmp_addon/bulk-delete-from-trash.php:142
1114
- msgid "Deleted %d post from trash"
1115
- msgid_plural "Deleted %d posts from trash"
1116
- msgstr[0] ""
1117
- msgstr[1] ""
 
1118
 
1119
- #: tmp_addon/bulk-delete-from-trash.php:194
1120
- msgid "Select the checkbox to delete pages from trash"
 
 
 
1121
  msgstr ""
1122
 
1123
- #: tmp_addon/bulk-delete-from-trash.php:202
1124
- msgid "pages in Trash"
 
 
1125
  msgstr ""
1126
 
1127
- #: tmp_addon/bulk-delete-from-trash.php:226
1128
- msgid "Deleted %d page from trash"
1129
- msgid_plural "Deleted %d pages from trash"
1130
- msgstr[0] ""
1131
- msgstr[1] ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1132
 
1133
- #: tmp_addon/bulk-delete-from-trash.php:272
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1134
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:259
1135
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:480
1136
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:324
1137
- #: tmp_addon/bulk-delete-posts-by-title.php:359
1138
- #: tmp_addon/bulk-delete-posts-by-user-role.php:296
1139
- #: tmp_addon/bulk-delete-scheduler-email.php:340
 
 
1140
  #: tmp_addon/bulk-delete-scheduler-for-deleting-pages-by-status.php:108
 
1141
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-category.php:108
1142
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-custom-field.php:108
1143
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-duplicate-title.php:117
@@ -1147,9 +1500,88 @@ msgstr[1] ""
1147
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-taxonomy.php:103
1148
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-user-role.php:108
1149
  #: tmp_addon/bulk-delete-scheduler-for-deleting-users-by-role.php:108
 
1150
  msgid "<strong>%s</strong> addon needs <a href=\"%s\">Bulk Delete plugin</a> to be installed and activated; the addon has been <strong>deactivated</strong>."
1151
  msgstr ""
1152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1153
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:132
1154
  msgid "Only if author name "
1155
  msgstr ""
@@ -1186,181 +1618,228 @@ msgstr ""
1186
  msgid "Author ip"
1187
  msgstr ""
1188
 
1189
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:134
 
 
 
 
 
 
 
 
 
1190
  msgid "Select the post type whose posts you want to delete"
1191
  msgstr ""
1192
 
1193
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1194
  msgid "Choose your custom field settings"
1195
  msgstr ""
1196
 
1197
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:156
1198
  msgid "Key "
1199
  msgstr ""
1200
 
1201
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:159
1202
  msgid "equal to (string)"
1203
  msgstr ""
1204
 
1205
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:160
1206
  msgid "not equal to (string)"
1207
  msgstr ""
1208
 
1209
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:161
1210
  msgid "equal to (date)"
1211
  msgstr ""
1212
 
1213
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:162
1214
  msgid "not equal to (date)"
1215
  msgstr ""
1216
 
1217
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:163
1218
  msgid "less than (date)"
1219
  msgstr ""
1220
 
1221
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:164
1222
  msgid "greater than (date)"
1223
  msgstr ""
1224
 
1225
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:165
1226
  msgid "less than (number)"
1227
  msgstr ""
1228
 
1229
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:166
1230
  msgid "greater than (number)"
1231
  msgstr ""
1232
 
1233
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:168
1234
  msgid "Value "
1235
  msgstr ""
1236
 
1237
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:175
1238
  msgid "Enter the Date Format "
1239
  msgstr ""
1240
 
1241
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:177
1242
  msgid "Possible Values"
1243
  msgstr ""
1244
 
1245
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:178
1246
  msgid "If you leave date format blank, then \"YYYYMMDD\", will be assumed"
1247
  msgstr ""
1248
 
1249
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:184
1250
  msgid "If you want to check for null values, then leave the value column blank"
1251
  msgstr ""
1252
 
1253
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:304
1254
  msgid "Posts matching the selected custom field setting are scheduled for deletion."
1255
  msgstr ""
1256
 
1257
- #: tmp_addon/bulk-delete-posts-by-custom-field.php:309
1258
  msgid "Deleted %d post using the selected custom field condition"
1259
  msgid_plural "Deleted %d posts using the selected custom field condition"
1260
  msgstr[0] ""
1261
  msgstr[1] ""
1262
 
1263
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:118
1264
- msgid "Select the post type whose duplicate posts you want to delete"
1265
  msgstr ""
1266
 
1267
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:136
1268
- msgid "Choose your duplicate title settings"
1269
  msgstr ""
1270
 
1271
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:140
1272
- msgid "Delete posts with duplicate title that were "
1273
  msgstr ""
1274
 
1275
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:142
1276
- msgid "created"
1277
  msgstr ""
1278
 
1279
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:143
1280
- msgid "modified"
1281
  msgstr ""
1282
 
1283
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:147
1284
  msgid "first"
1285
  msgstr ""
1286
 
1287
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:148
1288
  msgid "last"
1289
  msgstr ""
1290
 
1291
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:222
 
 
 
 
1292
  msgid "Sorry something went wrong. Kindly try again."
1293
  msgstr ""
1294
 
1295
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:240
1296
  msgid "Posts with duplicate title matching the selected settings are scheduled for deletion."
1297
  msgstr ""
1298
 
1299
- #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:245
1300
- #: tmp_addon/bulk-delete-posts-by-title.php:219
1301
  msgid "Deleted %d post using the selected title condition"
1302
  msgid_plural "Deleted %d posts using the selected title condition"
1303
  msgstr[0] ""
1304
  msgstr[1] ""
1305
 
1306
- #: tmp_addon/bulk-delete-posts-by-title.php:85
1307
- msgid "Choose your title settings"
1308
- msgstr ""
1309
-
1310
- #: tmp_addon/bulk-delete-posts-by-title.php:91
1311
- msgid "Title"
1312
  msgstr ""
1313
 
1314
- #: tmp_addon/bulk-delete-posts-by-title.php:93
1315
- msgid "equal to"
1316
  msgstr ""
1317
 
1318
- #: tmp_addon/bulk-delete-posts-by-title.php:94
1319
- msgid "not equal to"
1320
  msgstr ""
1321
 
1322
- #: tmp_addon/bulk-delete-posts-by-title.php:95
1323
  msgid "contains"
1324
  msgstr ""
1325
 
1326
- #: tmp_addon/bulk-delete-posts-by-title.php:96
1327
  msgid "doesn't contains"
1328
  msgstr ""
1329
 
1330
- #: tmp_addon/bulk-delete-posts-by-title.php:97
1331
  msgid "starts with"
1332
  msgstr ""
1333
 
1334
- #: tmp_addon/bulk-delete-posts-by-title.php:98
1335
  msgid "ends with"
1336
  msgstr ""
1337
 
1338
- #: tmp_addon/bulk-delete-posts-by-title.php:215
1339
  msgid "Posts matching the selected title setting are scheduled for deletion."
1340
  msgstr ""
1341
 
1342
- #: tmp_addon/bulk-delete-posts-by-user-role.php:86
 
 
 
 
 
 
 
 
1343
  msgid "Select the user roles from which you want to delete posts"
1344
  msgstr ""
1345
 
1346
- #: tmp_addon/bulk-delete-posts-by-user-role.php:103
1347
  msgid "Select the post types from which you want to delete posts"
1348
  msgstr ""
1349
 
1350
- #: tmp_addon/bulk-delete-posts-by-user-role.php:141
1351
  msgid "Use this option if there are more than 1000 posts or the script timesout."
1352
  msgstr ""
1353
 
1354
- #: tmp_addon/bulk-delete-posts-by-user-role.php:205
1355
  msgid "Posts matching the selected user roles are scheduled for deletion."
1356
  msgstr ""
1357
 
1358
- #: tmp_addon/bulk-delete-posts-by-user-role.php:209
1359
  msgid "Deleted %d post from selected user roles"
1360
  msgid_plural "Deleted %d posts from selected user roles"
1361
  msgstr[0] ""
1362
  msgstr[1] ""
1363
 
 
 
 
 
 
 
 
 
1364
  #: tmp_addon/bulk-delete-scheduler-email.php:91
1365
  msgid "Scheduler Email Settings"
1366
  msgstr ""
@@ -1464,6 +1943,10 @@ msgstr ""
1464
  #: tmp_addon/bulk-delete-scheduler-email.php:280
1465
  msgid "Number of items affected"
1466
  msgstr ""
 
 
 
 
1467
  #. Plugin Name of the plugin/theme
1468
  msgid "Bulk Delete"
1469
  msgstr ""
2
  # This file is distributed under the same license as the Bulk Delete package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Bulk Delete 5.4\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/bulk-delete\n"
7
+ "POT-Creation-Date: 2014-09-14 06:24:28+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
16
  msgid "Cheatin&#8217; huh?"
17
  msgstr ""
18
 
19
+ #: bulk-delete.php:261
20
  msgid "Bulk WP"
21
  msgstr ""
22
 
23
+ #: bulk-delete.php:263 bulk-delete.php:475 include/admin-ui.php:52
24
  msgid "Bulk Delete Posts"
25
  msgstr ""
26
 
27
+ #: bulk-delete.php:264 bulk-delete.php:527
28
  msgid "Bulk Delete Pages"
29
  msgstr ""
30
 
31
+ #: bulk-delete.php:265 bulk-delete.php:577 include/admin-ui.php:49
32
  msgid "Bulk Delete Users"
33
  msgstr ""
34
 
35
+ #: bulk-delete.php:285 bulk-delete.php:638
36
  msgid "Bulk Delete Schedules"
37
  msgstr ""
38
 
39
+ #: bulk-delete.php:285
40
  msgid "Scheduled Jobs"
41
  msgstr ""
42
 
43
+ #: bulk-delete.php:286 include/class-bd-license.php:30
44
  msgid "Addon Licenses"
45
  msgstr ""
46
 
47
+ #: bulk-delete.php:287
48
  msgid "Bulk Delete System Info"
49
  msgstr ""
50
 
51
+ #: bulk-delete.php:287
52
  msgid "System Info"
53
  msgstr ""
54
 
55
+ #: bulk-delete.php:339
56
  msgid "By Post Status"
57
  msgstr ""
58
 
59
+ #: bulk-delete.php:340
60
  msgid "By Category"
61
  msgstr ""
62
 
63
+ #: bulk-delete.php:341
64
  msgid "By Tag"
65
  msgstr ""
66
 
67
+ #: bulk-delete.php:342
68
  msgid "By Custom Taxonomy"
69
  msgstr ""
70
 
71
+ #: bulk-delete.php:343
72
  msgid "By Custom Post Types"
73
  msgstr ""
74
 
75
+ #: bulk-delete.php:344
76
  msgid "By URL"
77
  msgstr ""
78
 
79
+ #: bulk-delete.php:345
80
  msgid "By Post Revision"
81
  msgstr ""
82
 
83
+ #: bulk-delete.php:346
84
  msgid "By Custom Field"
85
  msgstr ""
86
 
87
+ #: bulk-delete.php:347
88
  msgid "By Title"
89
  msgstr ""
90
 
91
+ #: bulk-delete.php:348
92
  msgid "By Duplicate Title"
93
  msgstr ""
94
 
95
+ #: bulk-delete.php:349 bulk-delete.php:423
96
  msgid "By User Role"
97
  msgstr ""
98
 
99
+ #: bulk-delete.php:350 tmp_addon/bulk-delete-from-trash.php:151
100
  msgid "Posts in Trash"
101
  msgstr ""
102
 
103
+ #: bulk-delete.php:388
104
  msgid "By Page status"
105
  msgstr ""
106
 
107
+ #: bulk-delete.php:389
108
  msgid "Pages in Trash"
109
  msgstr ""
110
 
111
+ #: bulk-delete.php:491 include/misc/class-bulk-delete-misc.php:111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  msgid "WARNING: Posts deleted once cannot be retrieved back. Use with caution."
113
  msgstr ""
114
 
115
+ #: bulk-delete.php:543
116
  msgid "WARNING: Pages deleted once cannot be retrieved back. Use with caution."
117
  msgstr ""
118
 
119
+ #: bulk-delete.php:593
120
  msgid "WARNING: Users deleted once cannot be retrieved back. Use with caution."
121
  msgstr ""
122
 
195
  #: include/class-bd-license.php:412 include/class-bd-license.php:418
196
  #: include/class-bd-license.php:424 include/class-bd-license.php:430
197
  #: include/class-bd-license.php:436 include/class-bd-license.php:442
198
+ #: include/class-bd-license.php:448 include/class-bd-license.php:454
199
+ #: include/class-bd-license.php:460 include/class-bd-license.php:466
200
  msgid "More Info"
201
  msgstr ""
202
 
217
  msgstr ""
218
 
219
  #: include/class-bd-license.php:380
220
+ msgid "Delete posts by attachment"
221
  msgstr ""
222
 
223
  #: include/class-bd-license.php:381
224
+ msgid "Adds the ability to delete posts based on whether it contains attachment or not"
225
  msgstr ""
226
 
227
  #: include/class-bd-license.php:386
228
+ msgid "Delete posts by user role"
229
  msgstr ""
230
 
231
  #: include/class-bd-license.php:387
232
+ msgid "Adds the ability to delete posts based on user role"
233
  msgstr ""
234
 
235
  #: include/class-bd-license.php:392
236
+ msgid "Delete from trash"
237
  msgstr ""
238
 
239
  #: include/class-bd-license.php:393
240
+ msgid "Adds the ability to delete posts and pages from trash"
241
  msgstr ""
242
 
243
  #: include/class-bd-license.php:398
304
  msgid "Adds the ability to schedule auto delete of users based on user role"
305
  msgstr ""
306
 
307
+ #: include/class-bd-license.php:446
308
+ msgid "Delete Post Meta Fields"
309
+ msgstr ""
310
+
311
+ #: include/class-bd-license.php:447
312
+ msgid "Adds the ability to delete post meta fields based on value and to schedule automatic deletion"
313
+ msgstr ""
314
+
315
+ #: include/class-bd-license.php:452
316
+ msgid "Delete Comment Meta Fields"
317
+ msgstr ""
318
+
319
+ #: include/class-bd-license.php:453
320
+ msgid "Adds the ability to delete comment meta fields based on value and to schedule automatic deletion"
321
+ msgstr ""
322
+
323
+ #: include/class-bd-license.php:458
324
+ msgid "Delete User Meta Fields"
325
+ msgstr ""
326
+
327
+ #: include/class-bd-license.php:459
328
+ msgid "Adds the ability to delete user meta fields based on value and to schedule automatic deletion"
329
+ msgstr ""
330
+
331
+ #: include/class-bd-license.php:464
332
+ msgid "Delete Jetpack Contact Form Messages"
333
+ msgstr ""
334
+
335
+ #: include/class-bd-license.php:465
336
+ msgid "Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion"
337
+ msgstr ""
338
+
339
  #: include/class-bd-settings.php:26
340
  msgid "Add Addon License"
341
  msgstr ""
405
  #: include/class-bulk-delete-posts.php:1579
406
  #: include/class-bulk-delete-posts.php:1606
407
  #: include/class-bulk-delete-users.php:17
408
+ #: include/meta/class-bulk-delete-comment-meta.php:50
409
+ #: include/meta/class-bulk-delete-post-meta.php:50
410
+ #: include/meta/class-bulk-delete-user-meta.php:50
411
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:44
412
  msgid "This section just got enabled. Kindly <a href = \"%1$s\">refresh</a> the page to fully enable it."
413
  msgstr ""
453
  #: include/class-bulk-delete-posts.php:1345
454
  #: include/class-bulk-delete-users.php:41
455
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:123
456
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:163
457
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:191
458
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:156
459
+ #: tmp_addon/bulk-delete-posts-by-title.php:137
460
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:127
461
  msgid "Choose your filtering options"
462
  msgstr ""
463
 
471
  #: include/class-bulk-delete-posts.php:613
472
  #: include/class-bulk-delete-posts.php:889
473
  #: include/class-bulk-delete-posts.php:1148
474
+ #: include/meta/class-bulk-delete-comment-meta.php:128
475
+ #: include/meta/class-bulk-delete-post-meta.php:128
476
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:106
477
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:174
478
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:202
479
+ #: tmp_addon/bulk-delete-posts-by-title.php:148
480
  msgid "older than"
481
  msgstr ""
482
 
486
  #: include/class-bulk-delete-posts.php:614
487
  #: include/class-bulk-delete-posts.php:890
488
  #: include/class-bulk-delete-posts.php:1149
489
+ #: include/meta/class-bulk-delete-post-meta.php:129
490
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:107
491
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:175
492
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:203
493
+ #: tmp_addon/bulk-delete-posts-by-title.php:149
494
  msgid "posted within last"
495
  msgstr ""
496
 
501
  #: include/class-bulk-delete-posts.php:892
502
  #: include/class-bulk-delete-posts.php:1151
503
  #: include/class-bulk-delete-users.php:56
504
+ #: include/meta/class-bulk-delete-comment-meta.php:131
505
+ #: include/meta/class-bulk-delete-post-meta.php:131
506
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:109
507
+ #: tmp_addon/bulk-delete-from-trash.php:348
508
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:177
509
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:205
510
+ #: tmp_addon/bulk-delete-posts-by-title.php:151
511
  msgid "days"
512
  msgstr ""
513
 
519
  #: include/class-bulk-delete-posts.php:1157
520
  #: include/class-bulk-delete-posts.php:1351
521
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:132
522
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:183
523
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:211
524
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:162
525
+ #: tmp_addon/bulk-delete-posts-by-title.php:157
526
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:131
527
  msgid "Move to Trash"
528
  msgstr ""
529
 
535
  #: include/class-bulk-delete-posts.php:1158
536
  #: include/class-bulk-delete-posts.php:1352
537
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:133
538
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:184
539
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:212
540
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:163
541
+ #: tmp_addon/bulk-delete-posts-by-title.php:158
542
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:132
543
  msgid "Delete permanently"
544
  msgstr ""
545
 
551
  #: include/class-bulk-delete-posts.php:1167
552
  #: include/class-bulk-delete-users.php:79
553
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:118
554
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:200
555
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:228
556
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:170
557
+ #: tmp_addon/bulk-delete-posts-by-title.php:174
558
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:139
559
  msgid "Only delete first "
560
  msgstr ""
561
 
574
  #: include/class-bulk-delete-posts.php:923
575
  #: include/class-bulk-delete-posts.php:1175
576
  #: include/class-bulk-delete-users.php:88
577
+ #: include/meta/class-bulk-delete-comment-meta.php:146
578
+ #: include/meta/class-bulk-delete-post-meta.php:146
579
+ #: include/meta/class-bulk-delete-user-meta.php:126
580
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:139
581
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:208
582
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:236
583
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:178
584
+ #: tmp_addon/bulk-delete-posts-by-title.php:182
585
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:148
586
  msgid "Delete now"
587
  msgstr ""
588
 
593
  #: include/class-bulk-delete-posts.php:924
594
  #: include/class-bulk-delete-posts.php:1176
595
  #: include/class-bulk-delete-users.php:89 include/class-cron-list-table.php:56
596
+ #: include/meta/class-bulk-delete-comment-meta.php:147
597
+ #: include/meta/class-bulk-delete-post-meta.php:147
598
+ #: include/meta/class-bulk-delete-user-meta.php:127
599
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:140
600
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:209
601
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:237
602
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:179
603
+ #: tmp_addon/bulk-delete-posts-by-title.php:183
604
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:149
605
  msgid "Schedule"
606
  msgstr ""
607
 
612
  #: include/class-bulk-delete-posts.php:925
613
  #: include/class-bulk-delete-posts.php:1177
614
  #: include/class-bulk-delete-users.php:90
615
+ #: include/meta/class-bulk-delete-comment-meta.php:148
616
+ #: include/meta/class-bulk-delete-post-meta.php:148
617
+ #: include/meta/class-bulk-delete-user-meta.php:128
618
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:141
619
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:210
620
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:238
621
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:180
622
+ #: tmp_addon/bulk-delete-posts-by-title.php:184
623
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:150
624
  msgid "repeat "
625
  msgstr ""
626
 
631
  #: include/class-bulk-delete-posts.php:927
632
  #: include/class-bulk-delete-posts.php:1179
633
  #: include/class-bulk-delete-users.php:92
634
+ #: include/meta/class-bulk-delete-comment-meta.php:150
635
+ #: include/meta/class-bulk-delete-post-meta.php:150
636
+ #: include/meta/class-bulk-delete-user-meta.php:130
637
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:143
638
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:212
639
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:240
640
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:182
641
+ #: tmp_addon/bulk-delete-posts-by-title.php:186
642
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:152
643
  msgid "Don't repeat"
644
  msgstr ""
645
 
650
  #: include/class-bulk-delete-posts.php:937
651
  #: include/class-bulk-delete-posts.php:1189
652
  #: include/class-bulk-delete-users.php:102
653
+ #: include/meta/class-bulk-delete-comment-meta.php:95
654
+ #: include/meta/class-bulk-delete-comment-meta.php:161
655
+ #: include/meta/class-bulk-delete-post-meta.php:95
656
+ #: include/meta/class-bulk-delete-post-meta.php:161
657
+ #: include/meta/class-bulk-delete-user-meta.php:87
658
+ #: include/meta/class-bulk-delete-user-meta.php:141
659
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:79
660
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:153
661
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:222
662
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:250
663
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:192
664
+ #: tmp_addon/bulk-delete-posts-by-title.php:196
665
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:162
666
  msgid "Only available in Pro Addon"
667
  msgstr ""
668
 
675
  #: include/class-bulk-delete-posts.php:1360
676
  #: include/class-bulk-delete-posts.php:1434
677
  #: include/class-bulk-delete-users.php:116
678
+ #: include/meta/class-bulk-delete-comment-meta.php:176
679
+ #: include/meta/class-bulk-delete-post-meta.php:176
680
+ #: include/meta/class-bulk-delete-user-meta.php:156
681
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:160
682
+ #: tmp_addon/bulk-delete-from-trash.php:162
683
+ #: tmp_addon/bulk-delete-from-trash.php:270
684
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:235
685
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:264
686
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:206
687
+ #: tmp_addon/bulk-delete-posts-by-title.php:210
688
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:176
689
  msgid "Bulk Delete "
690
  msgstr ""
691
 
700
  #: include/class-bulk-delete-posts.php:985
701
  #: include/class-bulk-delete-posts.php:1236
702
  #: include/class-bulk-delete-users.php:149
703
+ #: include/meta/class-bulk-delete-comment-meta.php:237
704
+ #: include/meta/class-bulk-delete-post-meta.php:237
705
+ #: include/meta/class-bulk-delete-user-meta.php:213
706
+ #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:220
707
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:288
708
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:306
709
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:249
710
+ #: tmp_addon/bulk-delete-posts-by-title.php:247
711
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:207
712
  msgid "See the full list of <a href = \"%s\">scheduled tasks</a>"
713
  msgstr ""
714
 
775
  #: include/class-bulk-delete-posts.php:611
776
  #: include/class-bulk-delete-posts.php:887
777
  #: include/class-bulk-delete-posts.php:1146
778
+ #: include/meta/class-bulk-delete-post-meta.php:126
779
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:104
780
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:172
781
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:200
782
+ #: tmp_addon/bulk-delete-posts-by-title.php:146
783
  msgid "Only restrict to posts which are "
784
  msgstr ""
785
 
788
  #: include/class-bulk-delete-posts.php:640
789
  #: include/class-bulk-delete-posts.php:916
790
  #: include/class-bulk-delete-posts.php:1168
791
+ #: include/meta/class-bulk-delete-post-meta.php:139
792
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:119
793
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:201
794
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:229
795
+ #: tmp_addon/bulk-delete-posts-by-title.php:175
796
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:141
797
  msgid "posts."
798
  msgstr ""
799
 
802
  #: include/class-bulk-delete-posts.php:641
803
  #: include/class-bulk-delete-posts.php:917
804
  #: include/class-bulk-delete-posts.php:1169
805
+ #: include/meta/class-bulk-delete-comment-meta.php:140
806
+ #: include/meta/class-bulk-delete-post-meta.php:140
807
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:120
808
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:202
809
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:230
810
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:172
811
+ #: tmp_addon/bulk-delete-posts-by-title.php:176
812
  msgid "Use this option if there are more than 1000 posts and the script timesout."
813
  msgstr ""
814
 
841
  #: include/class-bulk-delete-posts.php:396
842
  #: include/class-bulk-delete-posts.php:629
843
  #: include/class-bulk-delete-posts.php:905
844
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:190
845
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:218
846
+ #: tmp_addon/bulk-delete-posts-by-title.php:164
847
  msgid "Public posts"
848
  msgstr ""
849
 
850
  #: include/class-bulk-delete-posts.php:397
851
  #: include/class-bulk-delete-posts.php:630
852
  #: include/class-bulk-delete-posts.php:906
853
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:191
854
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:219
855
+ #: tmp_addon/bulk-delete-posts-by-title.php:165
856
  msgid "Private Posts"
857
  msgstr ""
858
 
859
  #: include/class-bulk-delete-posts.php:434
860
  #: include/class-bulk-delete-users.php:108
861
+ #: include/meta/class-bulk-delete-comment-meta.php:168
862
+ #: include/meta/class-bulk-delete-post-meta.php:168
863
+ #: include/meta/class-bulk-delete-user-meta.php:148
864
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:228
865
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:256
866
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:198
867
+ #: tmp_addon/bulk-delete-posts-by-title.php:202
868
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:168
869
  msgid "Enter time in Y-m-d H:i:s format or enter now to use current time"
870
  msgstr ""
871
 
998
  msgstr ""
999
 
1000
  #: include/class-bulk-delete-posts.php:1640
1001
+ msgid "Are you sure you want to delete all the posts based on the selected option?"
1002
+ msgstr ""
1003
+
1004
+ #: include/class-bulk-delete-posts.php:1641
1005
+ msgid "Please select posts from at least one option"
1006
+ msgstr ""
1007
+
1008
+ #: include/class-bulk-delete-posts.php:1645
1009
+ msgid "Please enter at least one post url"
1010
+ msgstr ""
1011
+
1012
+ #: include/class-bulk-delete-posts.php:1669
1013
  msgid "The selected scheduled job was successfully deleted "
1014
  msgstr ""
1015
 
1030
  msgstr ""
1031
 
1032
  #: include/class-bulk-delete-users.php:33
1033
+ #: include/meta/class-bulk-delete-user-meta.php:65
1034
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:96
1035
  msgid "Users"
1036
  msgstr ""
1037
 
1048
  msgstr ""
1049
 
1050
  #: include/class-bulk-delete-users.php:81
1051
+ #: include/meta/class-bulk-delete-user-meta.php:119
1052
  msgid "users."
1053
  msgstr ""
1054
 
1066
  msgstr[0] ""
1067
  msgstr[1] ""
1068
 
1069
+ #: include/class-bulk-delete-users.php:224
1070
+ msgid "Are you sure you want to delete all the users from the selected user role?"
1071
+ msgstr ""
1072
+
1073
+ #: include/class-bulk-delete-users.php:227
1074
+ msgid "Select at least one user role from which users should be deleted"
1075
+ msgstr ""
1076
+
1077
  #: include/class-bulk-delete-util.php:125
1078
  msgctxt "Cron table date format"
1079
  msgid "M j, Y @ G:i"
1144
  msgid "You don't have any valid addon license yet."
1145
  msgstr ""
1146
 
1147
+ #: include/meta/class-bulk-delete-comment-meta.php:35
1148
+ msgid "Bulk Delete Comment Meta"
1149
+ msgstr ""
1150
+
1151
+ #: include/meta/class-bulk-delete-comment-meta.php:65
1152
+ msgid "Select the post type whose comment meta fields you want to delete"
1153
+ msgstr ""
1154
+
1155
+ #: include/meta/class-bulk-delete-comment-meta.php:81
1156
+ msgid "Choose your comment meta field settings"
1157
+ msgstr ""
1158
+
1159
+ #: include/meta/class-bulk-delete-comment-meta.php:86
1160
+ msgid "Delete based on comment meta key name only"
1161
+ msgstr ""
1162
+
1163
+ #: include/meta/class-bulk-delete-comment-meta.php:93
1164
+ msgid "Delete based on comment meta key name and value"
1165
+ msgstr ""
1166
+
1167
+ #: include/meta/class-bulk-delete-comment-meta.php:102
1168
+ msgid "Comment Meta Key "
1169
+ msgstr ""
1170
+
1171
+ #: include/meta/class-bulk-delete-comment-meta.php:103
1172
+ #: include/meta/class-bulk-delete-post-meta.php:103
1173
+ #: include/meta/class-bulk-delete-user-meta.php:95
1174
+ msgid "Meta Key"
1175
+ msgstr ""
1176
+
1177
+ #: include/meta/class-bulk-delete-comment-meta.php:119
1178
+ #: include/meta/class-bulk-delete-post-meta.php:119
1179
+ #: include/meta/class-bulk-delete-user-meta.php:111
1180
+ #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:126
1181
+ msgid "Choose your deletion options"
1182
+ msgstr ""
1183
+
1184
+ #: include/meta/class-bulk-delete-comment-meta.php:126
1185
+ msgid "Only restrict to comments which are "
1186
+ msgstr ""
1187
+
1188
+ #: include/meta/class-bulk-delete-comment-meta.php:129
1189
+ msgid "commented within last"
1190
+ msgstr ""
1191
+
1192
+ #: include/meta/class-bulk-delete-comment-meta.php:138
1193
+ msgid "Only delete comment meta field from first "
1194
+ msgstr ""
1195
+
1196
+ #: include/meta/class-bulk-delete-comment-meta.php:139
1197
+ msgid "comments."
1198
+ msgstr ""
1199
+
1200
+ #: include/meta/class-bulk-delete-comment-meta.php:195
1201
+ msgid "Are you sure you want to delete all the comment meta fields that match the selected filters?"
1202
+ msgstr ""
1203
+
1204
+ #: include/meta/class-bulk-delete-comment-meta.php:236
1205
+ msgid "Comment meta fields from the comments with the selected criteria are scheduled for deletion."
1206
+ msgstr ""
1207
+
1208
+ #: include/meta/class-bulk-delete-comment-meta.php:240
1209
+ msgid "Deleted comment meta field from %d comment"
1210
+ msgid_plural "Deleted comment meta field from %d comments"
1211
+ msgstr[0] ""
1212
+ msgstr[1] ""
1213
+
1214
+ #: include/meta/class-bulk-delete-meta.php:35
1215
+ #: include/meta/class-bulk-delete-meta.php:36
1216
+ #: include/meta/class-bulk-delete-meta.php:98
1217
+ msgid "Bulk Delete Meta Fields"
1218
+ msgstr ""
1219
+
1220
+ #: include/meta/class-bulk-delete-meta.php:113
1221
+ msgid "WARNING: Items deleted once cannot be retrieved back. Use with caution."
1222
+ msgstr ""
1223
+
1224
+ #: include/meta/class-bulk-delete-post-meta.php:35
1225
+ msgid "Bulk Delete Post Meta"
1226
+ msgstr ""
1227
+
1228
+ #: include/meta/class-bulk-delete-post-meta.php:65
1229
+ msgid "Select the post type whose post meta fields you want to delete"
1230
+ msgstr ""
1231
+
1232
+ #: include/meta/class-bulk-delete-post-meta.php:81
1233
+ msgid "Choose your post meta field settings"
1234
+ msgstr ""
1235
+
1236
+ #: include/meta/class-bulk-delete-post-meta.php:86
1237
+ msgid "Delete based on post meta key name only"
1238
+ msgstr ""
1239
+
1240
+ #: include/meta/class-bulk-delete-post-meta.php:93
1241
+ msgid "Delete based on post meta key name and value"
1242
+ msgstr ""
1243
+
1244
+ #: include/meta/class-bulk-delete-post-meta.php:102
1245
+ msgid "Post Meta Key "
1246
+ msgstr ""
1247
+
1248
+ #: include/meta/class-bulk-delete-post-meta.php:138
1249
+ msgid "Only delete post meta field from first "
1250
+ msgstr ""
1251
+
1252
+ #: include/meta/class-bulk-delete-post-meta.php:195
1253
+ msgid "Are you sure you want to delete all the post meta fields that match the selected filters?"
1254
+ msgstr ""
1255
+
1256
+ #: include/meta/class-bulk-delete-post-meta.php:236
1257
+ msgid "Post meta fields from the posts with the selected criteria are scheduled for deletion."
1258
+ msgstr ""
1259
+
1260
+ #: include/meta/class-bulk-delete-post-meta.php:240
1261
+ msgid "Deleted post meta field from %d post"
1262
+ msgid_plural "Deleted post meta field from %d posts"
1263
+ msgstr[0] ""
1264
+ msgstr[1] ""
1265
+
1266
+ #: include/meta/class-bulk-delete-user-meta.php:35
1267
+ msgid "Bulk Delete User Meta"
1268
+ msgstr ""
1269
+
1270
+ #: include/meta/class-bulk-delete-user-meta.php:56
1271
+ msgid "Select the user role whose user meta fields you want to delete"
1272
+ msgstr ""
1273
+
1274
+ #: include/meta/class-bulk-delete-user-meta.php:73
1275
+ msgid "Choose your user meta field settings"
1276
+ msgstr ""
1277
+
1278
+ #: include/meta/class-bulk-delete-user-meta.php:78
1279
+ msgid "Delete based on user meta key name only"
1280
+ msgstr ""
1281
+
1282
+ #: include/meta/class-bulk-delete-user-meta.php:85
1283
+ msgid "Delete based on user meta key name and value"
1284
+ msgstr ""
1285
+
1286
+ #: include/meta/class-bulk-delete-user-meta.php:94
1287
+ msgid "User Meta Key "
1288
+ msgstr ""
1289
+
1290
+ #: include/meta/class-bulk-delete-user-meta.php:118
1291
+ msgid "Only delete user meta field from first "
1292
+ msgstr ""
1293
+
1294
+ #: include/meta/class-bulk-delete-user-meta.php:120
1295
+ msgid "Use this option if there are more than 1000 users and the script timesout."
1296
+ msgstr ""
1297
+
1298
+ #: include/meta/class-bulk-delete-user-meta.php:175
1299
+ msgid "Are you sure you want to delete all the user meta fields that match the selected filters?"
1300
+ msgstr ""
1301
+
1302
+ #: include/meta/class-bulk-delete-user-meta.php:212
1303
+ msgid "User meta fields from the users with the selected criteria are scheduled for deletion."
1304
+ msgstr ""
1305
+
1306
+ #: include/meta/class-bulk-delete-user-meta.php:216
1307
+ msgid "Deleted user meta field from %d user"
1308
+ msgid_plural "Deleted user meta field from %d users"
1309
+ msgstr[0] ""
1310
+ msgstr[1] ""
1311
+
1312
  #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:29
1313
  msgid "Bulk Delete Jetpack Contact Form Messages"
1314
  msgstr ""
1333
  msgid "Choose your date options"
1334
  msgstr ""
1335
 
1336
+ #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:180
1337
+ msgid "Are you sure you want to delete all the Jetpack contact form messages based on the selected filters?"
1338
  msgstr ""
1339
 
1340
+ #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:219
1341
  msgid "Jetpack contact form messages with the selected criteria are scheduled for deletion."
1342
  msgstr ""
1343
 
1344
+ #: include/misc/class-bulk-delete-jetpack-contact-form-messages.php:223
1345
  msgid "Deleted %d Jetpack contact form message"
1346
  msgid_plural "Deleted %d Jetpack contact form messages"
1347
  msgstr[0] ""
1365
  msgid "Settings"
1366
  msgstr ""
1367
 
1368
+ #: tmp_addon/bulk-delete-comment-meta.php:123
1369
+ msgid "Comment Meta Value "
1370
  msgstr ""
1371
 
1372
+ #: tmp_addon/bulk-delete-comment-meta.php:125
1373
+ #: tmp_addon/bulk-delete-post-meta.php:125
1374
+ #: tmp_addon/bulk-delete-posts-by-title.php:124
1375
+ #: tmp_addon/bulk-delete-user-meta.php:125
1376
+ msgid "equal to"
1377
+ msgstr ""
1378
 
1379
+ #: tmp_addon/bulk-delete-comment-meta.php:126
1380
+ #: tmp_addon/bulk-delete-post-meta.php:126
1381
+ #: tmp_addon/bulk-delete-posts-by-title.php:125
1382
+ #: tmp_addon/bulk-delete-user-meta.php:126
1383
+ msgid "not equal to"
1384
  msgstr ""
1385
 
1386
+ #: tmp_addon/bulk-delete-comment-meta.php:127
1387
+ #: tmp_addon/bulk-delete-post-meta.php:127
1388
+ #: tmp_addon/bulk-delete-user-meta.php:127
1389
+ msgid "less than"
1390
  msgstr ""
1391
 
1392
+ #: tmp_addon/bulk-delete-comment-meta.php:128
1393
+ #: tmp_addon/bulk-delete-post-meta.php:128
1394
+ #: tmp_addon/bulk-delete-user-meta.php:128
1395
+ msgid "less than or equal to"
1396
+ msgstr ""
1397
+
1398
+ #: tmp_addon/bulk-delete-comment-meta.php:129
1399
+ #: tmp_addon/bulk-delete-post-meta.php:129
1400
+ #: tmp_addon/bulk-delete-user-meta.php:129
1401
+ msgid "greater than"
1402
+ msgstr ""
1403
+
1404
+ #: tmp_addon/bulk-delete-comment-meta.php:130
1405
+ #: tmp_addon/bulk-delete-post-meta.php:130
1406
+ #: tmp_addon/bulk-delete-user-meta.php:130
1407
+ msgid "greater than or equal to"
1408
+ msgstr ""
1409
+
1410
+ #: tmp_addon/bulk-delete-comment-meta.php:131
1411
+ #: tmp_addon/bulk-delete-post-meta.php:131
1412
+ #: tmp_addon/bulk-delete-user-meta.php:131
1413
+ msgid "like"
1414
+ msgstr ""
1415
+
1416
+ #: tmp_addon/bulk-delete-comment-meta.php:132
1417
+ #: tmp_addon/bulk-delete-post-meta.php:132
1418
+ #: tmp_addon/bulk-delete-user-meta.php:132
1419
+ msgid "not like"
1420
+ msgstr ""
1421
+
1422
+ #: tmp_addon/bulk-delete-comment-meta.php:135
1423
+ #: tmp_addon/bulk-delete-post-meta.php:135
1424
+ #: tmp_addon/bulk-delete-user-meta.php:135
1425
+ msgid "CHAR"
1426
+ msgstr ""
1427
+
1428
+ #: tmp_addon/bulk-delete-comment-meta.php:136
1429
+ #: tmp_addon/bulk-delete-post-meta.php:136
1430
+ #: tmp_addon/bulk-delete-user-meta.php:136
1431
+ msgid "NUMERIC"
1432
+ msgstr ""
1433
+
1434
+ #: tmp_addon/bulk-delete-comment-meta.php:137
1435
+ #: tmp_addon/bulk-delete-post-meta.php:137
1436
+ #: tmp_addon/bulk-delete-user-meta.php:137
1437
+ msgid "DECIMAL"
1438
+ msgstr ""
1439
+
1440
+ #: tmp_addon/bulk-delete-comment-meta.php:138
1441
+ #: tmp_addon/bulk-delete-post-meta.php:138
1442
+ #: tmp_addon/bulk-delete-user-meta.php:138
1443
+ msgid "SIGNED"
1444
+ msgstr ""
1445
+
1446
+ #: tmp_addon/bulk-delete-comment-meta.php:139
1447
+ #: tmp_addon/bulk-delete-post-meta.php:139
1448
+ #: tmp_addon/bulk-delete-user-meta.php:139
1449
+ msgid "UNSIGNED"
1450
+ msgstr ""
1451
 
1452
+ #: tmp_addon/bulk-delete-comment-meta.php:140
1453
+ #: tmp_addon/bulk-delete-post-meta.php:140
1454
+ #: tmp_addon/bulk-delete-user-meta.php:140
1455
+ msgid "DATE"
1456
+ msgstr ""
1457
+
1458
+ #: tmp_addon/bulk-delete-comment-meta.php:141
1459
+ #: tmp_addon/bulk-delete-post-meta.php:141
1460
+ #: tmp_addon/bulk-delete-user-meta.php:141
1461
+ msgid "TIME"
1462
+ msgstr ""
1463
+
1464
+ #: tmp_addon/bulk-delete-comment-meta.php:142
1465
+ #: tmp_addon/bulk-delete-post-meta.php:142
1466
+ #: tmp_addon/bulk-delete-user-meta.php:142
1467
+ msgid "DATETIME"
1468
+ msgstr ""
1469
+
1470
+ #: tmp_addon/bulk-delete-comment-meta.php:143
1471
+ #: tmp_addon/bulk-delete-post-meta.php:143
1472
+ #: tmp_addon/bulk-delete-user-meta.php:143
1473
+ msgid "BINARY"
1474
+ msgstr ""
1475
+
1476
+ #: tmp_addon/bulk-delete-comment-meta.php:145
1477
+ #: tmp_addon/bulk-delete-post-meta.php:145
1478
+ #: tmp_addon/bulk-delete-user-meta.php:145
1479
+ msgid "Meta Value"
1480
+ msgstr ""
1481
+
1482
+ #: tmp_addon/bulk-delete-comment-meta.php:213
1483
+ #: tmp_addon/bulk-delete-from-trash.php:385
1484
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:259
1485
+ #: tmp_addon/bulk-delete-post-meta.php:213
1486
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:377
1487
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:501
1488
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:354
1489
+ #: tmp_addon/bulk-delete-posts-by-title.php:410
1490
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:315
1491
+ #: tmp_addon/bulk-delete-scheduler-email.php:335
1492
  #: tmp_addon/bulk-delete-scheduler-for-deleting-pages-by-status.php:108
1493
+ #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-attachment.php:114
1494
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-category.php:108
1495
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-custom-field.php:108
1496
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-duplicate-title.php:117
1500
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-taxonomy.php:103
1501
  #: tmp_addon/bulk-delete-scheduler-for-deleting-posts-by-user-role.php:108
1502
  #: tmp_addon/bulk-delete-scheduler-for-deleting-users-by-role.php:108
1503
+ #: tmp_addon/bulk-delete-user-meta.php:213
1504
  msgid "<strong>%s</strong> addon needs <a href=\"%s\">Bulk Delete plugin</a> to be installed and activated; the addon has been <strong>deactivated</strong>."
1505
  msgstr ""
1506
 
1507
+ #: tmp_addon/bulk-delete-from-trash.php:142
1508
+ msgid "Select the post type whose posts you want to delete from trash"
1509
+ msgstr ""
1510
+
1511
+ #: tmp_addon/bulk-delete-from-trash.php:157
1512
+ msgid "posts"
1513
+ msgstr ""
1514
+
1515
+ #: tmp_addon/bulk-delete-from-trash.php:178
1516
+ msgid "Deleted %d post from trash"
1517
+ msgid_plural "Deleted %d posts from trash"
1518
+ msgstr[0] ""
1519
+ msgstr[1] ""
1520
+
1521
+ #: tmp_addon/bulk-delete-from-trash.php:256
1522
+ msgid "Select the checkbox to delete pages from trash"
1523
+ msgstr ""
1524
+
1525
+ #: tmp_addon/bulk-delete-from-trash.php:262
1526
+ msgid "pages in Trash"
1527
+ msgstr ""
1528
+
1529
+ #: tmp_addon/bulk-delete-from-trash.php:265
1530
+ msgid "pages"
1531
+ msgstr ""
1532
+
1533
+ #: tmp_addon/bulk-delete-from-trash.php:286
1534
+ msgid "Deleted %d page from trash"
1535
+ msgid_plural "Deleted %d pages from trash"
1536
+ msgstr[0] ""
1537
+ msgstr[1] ""
1538
+
1539
+ #: tmp_addon/bulk-delete-from-trash.php:305
1540
+ msgid "Are you sure you want to delete the selected posts from trash?"
1541
+ msgstr ""
1542
+
1543
+ #: tmp_addon/bulk-delete-from-trash.php:308
1544
+ msgid "Please select the post type from which you want to delete posts from trash"
1545
+ msgstr ""
1546
+
1547
+ #: tmp_addon/bulk-delete-from-trash.php:311
1548
+ msgid "Are you sure you want to delete pages from trash?"
1549
+ msgstr ""
1550
+
1551
+ #: tmp_addon/bulk-delete-from-trash.php:314
1552
+ msgid "Please check the checkbox to delete pages from trash"
1553
+ msgstr ""
1554
+
1555
+ #: tmp_addon/bulk-delete-from-trash.php:330
1556
+ msgid "Choose your date filtering options"
1557
+ msgstr ""
1558
+
1559
+ #: tmp_addon/bulk-delete-from-trash.php:337
1560
+ msgid "Only restrict to %s which were "
1561
+ msgstr ""
1562
+
1563
+ #: tmp_addon/bulk-delete-from-trash.php:339
1564
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:143
1565
+ msgid "created"
1566
+ msgstr ""
1567
+
1568
+ #: tmp_addon/bulk-delete-from-trash.php:340
1569
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:144
1570
+ msgid "modified"
1571
+ msgstr ""
1572
+
1573
+ #: tmp_addon/bulk-delete-from-trash.php:341
1574
+ msgid "trashed"
1575
+ msgstr ""
1576
+
1577
+ #: tmp_addon/bulk-delete-from-trash.php:344
1578
+ msgid "before"
1579
+ msgstr ""
1580
+
1581
+ #: tmp_addon/bulk-delete-from-trash.php:345
1582
+ msgid "in the last"
1583
+ msgstr ""
1584
+
1585
  #: tmp_addon/bulk-delete-jetpack-contact-form-messages.php:132
1586
  msgid "Only if author name "
1587
  msgstr ""
1618
  msgid "Author ip"
1619
  msgstr ""
1620
 
1621
+ #: tmp_addon/bulk-delete-post-meta.php:123
1622
+ msgid "Post Meta Value "
1623
+ msgstr ""
1624
+
1625
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:103
1626
+ msgid "By Attachment"
1627
+ msgstr ""
1628
+
1629
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:129
1630
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:135
1631
  msgid "Select the post type whose posts you want to delete"
1632
  msgstr ""
1633
 
1634
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:147
1635
+ msgid "Choose your attachment settings"
1636
+ msgstr ""
1637
+
1638
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:151
1639
+ msgid "Delete all posts that have attachments"
1640
+ msgstr ""
1641
+
1642
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:157
1643
+ msgid "Delete all posts that don't have attachments"
1644
+ msgstr ""
1645
+
1646
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:287
1647
+ msgid "Posts matching the selected attachment setting are scheduled for deletion."
1648
+ msgstr ""
1649
+
1650
+ #: tmp_addon/bulk-delete-posts-by-attachment.php:292
1651
+ msgid "Deleted %d post using the selected attachment condition"
1652
+ msgid_plural "Deleted %d posts using the selected attachment condition"
1653
+ msgstr[0] ""
1654
+ msgstr[1] ""
1655
+
1656
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:153
1657
  msgid "Choose your custom field settings"
1658
  msgstr ""
1659
 
1660
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:157
1661
  msgid "Key "
1662
  msgstr ""
1663
 
1664
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:160
1665
  msgid "equal to (string)"
1666
  msgstr ""
1667
 
1668
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:161
1669
  msgid "not equal to (string)"
1670
  msgstr ""
1671
 
1672
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:162
1673
  msgid "equal to (date)"
1674
  msgstr ""
1675
 
1676
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:163
1677
  msgid "not equal to (date)"
1678
  msgstr ""
1679
 
1680
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:164
1681
  msgid "less than (date)"
1682
  msgstr ""
1683
 
1684
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:165
1685
  msgid "greater than (date)"
1686
  msgstr ""
1687
 
1688
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:166
1689
  msgid "less than (number)"
1690
  msgstr ""
1691
 
1692
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:167
1693
  msgid "greater than (number)"
1694
  msgstr ""
1695
 
1696
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:169
1697
  msgid "Value "
1698
  msgstr ""
1699
 
1700
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:176
1701
  msgid "Enter the Date Format "
1702
  msgstr ""
1703
 
1704
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:178
1705
  msgid "Possible Values"
1706
  msgstr ""
1707
 
1708
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:179
1709
  msgid "If you leave date format blank, then \"YYYYMMDD\", will be assumed"
1710
  msgstr ""
1711
 
1712
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:185
1713
  msgid "If you want to check for null values, then leave the value column blank"
1714
  msgstr ""
1715
 
1716
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:305
1717
  msgid "Posts matching the selected custom field setting are scheduled for deletion."
1718
  msgstr ""
1719
 
1720
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:310
1721
  msgid "Deleted %d post using the selected custom field condition"
1722
  msgid_plural "Deleted %d posts using the selected custom field condition"
1723
  msgstr[0] ""
1724
  msgstr[1] ""
1725
 
1726
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:410
1727
+ msgid "Are you sure you want to delete all the posts that match the entered custom field condition?"
1728
  msgstr ""
1729
 
1730
+ #: tmp_addon/bulk-delete-posts-by-custom-field.php:413
1731
+ msgid "Please enter the custom field based on which you want to delete posts"
1732
  msgstr ""
1733
 
1734
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:119
1735
+ msgid "Select the post type whose duplicate posts you want to delete"
1736
  msgstr ""
1737
 
1738
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:137
1739
+ msgid "Choose your duplicate title settings"
1740
  msgstr ""
1741
 
1742
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:141
1743
+ msgid "Delete posts with duplicate title that were "
1744
  msgstr ""
1745
 
1746
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:148
1747
  msgid "first"
1748
  msgstr ""
1749
 
1750
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:149
1751
  msgid "last"
1752
  msgstr ""
1753
 
1754
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:171
1755
+ msgid " duplicate titles."
1756
+ msgstr ""
1757
+
1758
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:232
1759
  msgid "Sorry something went wrong. Kindly try again."
1760
  msgstr ""
1761
 
1762
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:248
1763
  msgid "Posts with duplicate title matching the selected settings are scheduled for deletion."
1764
  msgstr ""
1765
 
1766
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:253
1767
+ #: tmp_addon/bulk-delete-posts-by-title.php:250
1768
  msgid "Deleted %d post using the selected title condition"
1769
  msgid_plural "Deleted %d posts using the selected title condition"
1770
  msgstr[0] ""
1771
  msgstr[1] ""
1772
 
1773
+ #: tmp_addon/bulk-delete-posts-by-duplicate-title.php:335
1774
+ msgid "Are you sure you want to delete all the posts that have duplicate title?"
 
 
 
 
1775
  msgstr ""
1776
 
1777
+ #: tmp_addon/bulk-delete-posts-by-title.php:116
1778
+ msgid "Choose your title settings"
1779
  msgstr ""
1780
 
1781
+ #: tmp_addon/bulk-delete-posts-by-title.php:122
1782
+ msgid "Title"
1783
  msgstr ""
1784
 
1785
+ #: tmp_addon/bulk-delete-posts-by-title.php:126
1786
  msgid "contains"
1787
  msgstr ""
1788
 
1789
+ #: tmp_addon/bulk-delete-posts-by-title.php:127
1790
  msgid "doesn't contains"
1791
  msgstr ""
1792
 
1793
+ #: tmp_addon/bulk-delete-posts-by-title.php:128
1794
  msgid "starts with"
1795
  msgstr ""
1796
 
1797
+ #: tmp_addon/bulk-delete-posts-by-title.php:129
1798
  msgid "ends with"
1799
  msgstr ""
1800
 
1801
+ #: tmp_addon/bulk-delete-posts-by-title.php:246
1802
  msgid "Posts matching the selected title setting are scheduled for deletion."
1803
  msgstr ""
1804
 
1805
+ #: tmp_addon/bulk-delete-posts-by-title.php:388
1806
+ msgid "Are you sure you want to delete all the posts that match the entered title?"
1807
+ msgstr ""
1808
+
1809
+ #: tmp_addon/bulk-delete-posts-by-title.php:391
1810
+ msgid "Please enter the title based on which you want to delete posts"
1811
+ msgstr ""
1812
+
1813
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:87
1814
  msgid "Select the user roles from which you want to delete posts"
1815
  msgstr ""
1816
 
1817
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:104
1818
  msgid "Select the post types from which you want to delete posts"
1819
  msgstr ""
1820
 
1821
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:142
1822
  msgid "Use this option if there are more than 1000 posts or the script timesout."
1823
  msgstr ""
1824
 
1825
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:206
1826
  msgid "Posts matching the selected user roles are scheduled for deletion."
1827
  msgstr ""
1828
 
1829
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:210
1830
  msgid "Deleted %d post from selected user roles"
1831
  msgid_plural "Deleted %d posts from selected user roles"
1832
  msgstr[0] ""
1833
  msgstr[1] ""
1834
 
1835
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:295
1836
+ msgid "Are you sure you want to delete all the posts that belong to the selected user role?"
1837
+ msgstr ""
1838
+
1839
+ #: tmp_addon/bulk-delete-posts-by-user-role.php:298
1840
+ msgid "Please select the user role from which you want to delete posts"
1841
+ msgstr ""
1842
+
1843
  #: tmp_addon/bulk-delete-scheduler-email.php:91
1844
  msgid "Scheduler Email Settings"
1845
  msgstr ""
1943
  #: tmp_addon/bulk-delete-scheduler-email.php:280
1944
  msgid "Number of items affected"
1945
  msgstr ""
1946
+
1947
+ #: tmp_addon/bulk-delete-user-meta.php:123
1948
+ msgid "User Meta Value "
1949
+ msgstr ""
1950
  #. Plugin Name of the plugin/theme
1951
  msgid "Bulk Delete"
1952
  msgstr ""
readme.txt CHANGED
@@ -1,16 +1,16 @@
1
  === Bulk Delete ===
2
  Contributors: sudar
3
- Tags: post, comment, delete, bulk, mass, draft, revision, page
4
  Requires at least: 3.9
5
- Tested up to: 3.9.2
6
  Donate Link: http://sudarmuthu.com/if-you-wanna-thank-me
7
- Stable tag: 5.3
8
 
9
- Bulk delete posts, pages or users in bulk based on different conditions and filters.
10
 
11
  == Description ==
12
 
13
- Bulk Delete is a WordPress Plugin that allows you to delete posts, pages and users in bulk based on different conditions and filters.
14
 
15
  The following conditions and filters are supported.
16
 
@@ -25,15 +25,15 @@ This Plugin supports the following bulk delete options for deleting posts
25
  - Delete posts by custom taxonomy
26
  - Delete posts by custom post type
27
  - Delete posts by url
28
- - Delete posts by custom field (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
29
- - Delete posts by title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
30
- - Delete posts by duplicate title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
31
- - Delete posts by user role (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
32
  - Delete all draft posts
33
  - Delete all pending posts
34
  - Delete all private posts
35
  - Delete all scheduled posts
36
- - Delete all posts from trash (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
37
 
38
  All the above options support the following filters
39
 
@@ -43,7 +43,12 @@ All the above options support the following filters
43
  - Only private posts
44
  - Restrict to first N posts
45
  - Delete permanently or just move to trash
46
- - Schedule deletion of posts automatically (Available as a [Pro addon](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
 
 
 
 
 
47
 
48
  #### Deleting pages
49
 
@@ -52,7 +57,7 @@ All the above options support the following filters
52
  - Delete all pending pages
53
  - Delete all private pages
54
  - Delete all scheduled pages
55
- - Delete all pages from trash (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
56
 
57
  Like posts, all the above options support the following filters as well
58
 
@@ -62,7 +67,7 @@ Like posts, all the above options support the following filters as well
62
  - Only private posts
63
  - Restrict to first N posts
64
  - Delete permanently or just move to trash
65
- - Schedule deletion of pages automatically (Available as a [Pro addon](http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
66
 
67
  #### Deleting post revisions
68
 
@@ -73,9 +78,10 @@ Like posts, all the above options support the following filters as well
73
  - Delete users based on user role
74
  - Delete users who have not logged in in the last X days
75
 
76
- #### Deleting posts by content and page views
77
-
78
- - Delete duplicate posts by title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme))
 
79
 
80
  #### Deleting other items
81
  - Delete Jetpack Contact Form Messages
@@ -88,22 +94,25 @@ If you looking for just moving posts, instead of deleting, then use [Bulk Move P
88
 
89
  ### Pro Addons
90
 
91
- The following are the popular pro addons that are available for purchase. The full list of [pro addons](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme) is available at the plugin site.
92
-
93
- - **Delete posts by custom field** - Adds the ability to delete posts based on custom field. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
94
- - **Delete posts by title** - Adds the ability to delete posts based on title. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
95
- - **Delete posts by duplicate title** - Adds the ability to delete posts based on duplicate title. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
96
- - **Delete posts by user role** - Adds the ability to delete posts based on user role. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
97
- - **Delete from trash** - Adds the ability to delete posts and pages from trash. [More details](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
98
- - **Delete Jetpack Contact Form Messages** - Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion. [More details](http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
99
- - **Scheduler Email** - Sends email whenever a Bulk WP Scheduler runs. [More details](http://bulkwp.com/addons/scheduler-email/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
100
- - **Scheduler for deleting posts Category** - Adds the ability to schedule auto delete of posts based on category. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
101
- - **Scheduler for deleting posts Tag** - Adds the ability to schedule auto delete of posts based on tag. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
102
- - **Scheduler for deleting posts by Custom Taxonomy** - Adds the ability to schedule auto delete of posts based on custom taxonomy. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
103
- - **Scheduler for deleting posts by Custom post type** - Adds the ability to schedule auto delete of posts based on custom post type. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
104
- - **Scheduler for deleting posts by Post Status** - Adds the ability to schedule auto delete of posts based on post status like drafts, pending posts, scheduled posts etc. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
105
- - **Scheduler for deleting pages by status** - Adds the ability to schedule auto delete of pages based on status. [More details](http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
106
- - **Scheduler for deleting users by User Role** - Adds the ability to schedule auto delete of users based on user role. [More details](http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
 
 
 
107
 
108
  ### Development
109
 
@@ -111,23 +120,7 @@ The development of the Plugin happens over at [github][6]. If you want to contri
111
 
112
  If you are not familiar with either git or Github then refer to this [guide to see how fork and send pull request](http://sudarmuthu.com/blog/contributing-to-project-hosted-in-github).
113
 
114
- If you are looking for ideas, then you can start with one of the following TODO items :)
115
-
116
- ### TODO
117
-
118
- The following are the features that I am thinking of adding to the Plugin, when I get some free time. If you have any feature request or want to increase the priority of a particular feature, then let me know.
119
-
120
- - Bulk Delete posts based on page views
121
- - Bulk delete based on the presence/absence of a word
122
- - Bulk Delete empty posts
123
- - Bulk delete comments
124
- - Delete images that are used by the posts that are being deleted
125
- - <del>Bulk Delete posts based on users</del> - Added in v5.2
126
- - <del>Bulk Delete sticky posts</del> - Added in v4.4
127
- - <del>Change the message based on the option the user has chosen</del> - Added in v3.3
128
- - <del>Expandable/collapsible taxonomies</del> - Added in v3.3
129
- - <del>Ability to choose the different sections that should be loaded</del> - Added in v3.4
130
- - <del>Bulk Delete by custom post types</del> - Added in v3.5
131
 
132
  ### Support
133
 
@@ -173,7 +166,7 @@ Thanks to [Time picker addon](http://trentrichardson.com/examples/timepicker/) J
173
 
174
  == Installation ==
175
 
176
- Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page.
177
 
178
  == Frequently Asked Questions ==
179
 
@@ -195,7 +188,7 @@ You can enable or disable different sections of the Plugin by choosing the requi
195
 
196
  = How do I know what are the current values for these options configured in my server? =
197
 
198
- Scroll down to the button of the Plugin page and you can see the current values of these options printed for your reference under the “Debug Information” heading
199
 
200
  = Is it possible to restore the posts that I have deleted through the Plugin? =
201
 
@@ -209,11 +202,11 @@ If you find any Plugin with which Bulk Delete doesn't work, then let me know and
209
 
210
  = Is it possible to schedule deletion of posts? =
211
 
212
- The ability to schedule deletion of posts is available as a [pro addon](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
213
 
214
  = I have a question about the pro addons, how should I contact you? =
215
 
216
- You can contact us by posting about it in our [support forum](http://bulkwp.com/support/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
217
 
218
  == Screenshots ==
219
 
@@ -239,16 +232,33 @@ You can contact us by posting about it in our [support forum](http://bulkwp.com/
239
  7. The above screenshot shows how you can delete users by user role.
240
 
241
 
242
- 8. The above screenshot shows how you can schedule auto delete of posts. Note that this feature is available only when you buy [pro addons](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme).
 
243
 
 
244
 
245
- 9. The above screenshot shows how you can enable/disable different sections of the Plugin.
 
246
 
247
  == Readme Generator ==
248
 
249
  This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/wp-readme'>wp-readme</a>, which generates readme files for WordPress Plugins.
250
  == Changelog ==
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  = 2014-08-17 - v5.3 - (Dev time: 17 hours) =
253
  - New: Ability to delete Jetpack Contact Form Messages (Issue #72)
254
  - New: New Addon to send email whenever a Bulk WP Scheduler runs
@@ -266,12 +276,10 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
266
 
267
  - Bug: Fixed a warning that happened because of duplicate call to `add_meta_boxes`
268
 
269
-
270
  = 2014-07-03 - v5.2 - (Dev time: 8 hours) =
271
  - New: Ability to delete users in batches (Issue #47)
272
  - New: A new addon to delete posts based on users (Issue #6)
273
 
274
-
275
  = 2014-06-14 - v5.1 - (Dev time: 8 hours) =
276
  - New: Added the "Delete posts from trash" addon (Issue #65)
277
 
@@ -281,7 +289,6 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
281
  - Bug: Added compatibility for PHP version 5.2.4 (Issue #66)
282
  - Bug: Fixed a bug in JavaScript validation in "Delete by URL" module (Issue #69)
283
 
284
-
285
  = 2014-06-12 - v5.0.2 - (Dev time: 1 hours) =
286
  - Bug: Added compatibility for PHP version 5.2.4 (Issue #64)
287
 
@@ -290,15 +297,16 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
290
 
291
  = 2014-06-10 - v5.0 - (Dev time: 60 hours) =
292
  - New: Add the ability to delete posts by duplicate title (#56)
 
 
 
 
293
  - Tweak: Make Bulk_Delete class singleton
294
  - Tweak: Move all deprecated functions and code to a separate file
295
- - New: Add a new page that displays system information for debugging
296
  - Tweak: Add the ability to filter text displayed in admin footer
297
  - Tweak: Change the menu text for Schedule page
298
  - Tweak: Move delete page modules to a separate page
299
- - New: Add the ability to handle addon license
300
  - Tweak: Refactored the way request was handled
301
- - New: Use `add_settings_error` method to display information to users
302
  - Tweak: Update screenshots
303
  - Tweak: Handle expired license properly
304
 
@@ -307,9 +315,9 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
307
  - Fix: Fix the height of the sidebar
308
 
309
  = 2014-01-05 - v4.4.2 - (Dev time: 1.5 hours) =
 
310
  - Fix: Deleting first x posts deletes all posts while deleting by category (#44)
311
  - Fix: Posts are moved to trash even if "Delete permanently" option is selected (#45)
312
- - Tweak: Move request processing code for deleting by custom field to addon
313
 
314
  = 2013-12-18 - v4.4.1 - (Dev time: 0.5 hours) =
315
  - Fix: Bulk Delete menu overrides other menus at the same position
@@ -317,10 +325,10 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
317
  = 2013-12-14 - v4.4 - (Dev time: 10 hours) =
318
  - New: Ability to delete all published posts from "Post Status" module
319
  - New: Ability to delete all sticky posts from "Post Status" module
320
- - Tweak: Moved all option page to a separate top menu
321
- - Fix: Fix undefined notices and strict warnings
322
  - New: Ability to delete posts by title
 
323
  - Tweak: Tweak UI for WordPress 3.8
 
324
 
325
  = 2013-12-08 - v4.3 - (Dev time: 2 hours) =
326
  - New: Ability to delete custom post type posts by categories
@@ -470,6 +478,9 @@ This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/
470
 
471
  == Upgrade Notice ==
472
 
 
 
 
473
  = 5.3 =
474
  Ability to delete Jetpack Contact Form messages
475
 
1
  === Bulk Delete ===
2
  Contributors: sudar
3
+ Tags: post, comment, delete, bulk, mass, draft, revision, page, meta fields
4
  Requires at least: 3.9
5
+ Tested up to: 4.0
6
  Donate Link: http://sudarmuthu.com/if-you-wanna-thank-me
7
+ Stable tag: 5.4
8
 
9
+ Bulk delete posts, pages, users and meta fields in bulk based on different conditions and filters.
10
 
11
  == Description ==
12
 
13
+ Bulk Delete is a WordPress Plugin that allows you to delete posts, pages, users and meta fields in bulk based on different conditions and filters.
14
 
15
  The following conditions and filters are supported.
16
 
25
  - Delete posts by custom taxonomy
26
  - Delete posts by custom post type
27
  - Delete posts by url
28
+ - Delete posts by custom field (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-cf))
29
+ - Delete posts by title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-ti))
30
+ - Delete posts by duplicate title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-dti))
31
+ - Delete posts by user role (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-ti))
32
  - Delete all draft posts
33
  - Delete all pending posts
34
  - Delete all private posts
35
  - Delete all scheduled posts
36
+ - Delete all posts from trash (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-th))
37
 
38
  All the above options support the following filters
39
 
43
  - Only private posts
44
  - Restrict to first N posts
45
  - Delete permanently or just move to trash
46
+ - Schedule deletion of posts automatically (Available as a [Pro addon](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=pro))
47
+
48
+ #### Deleting posts by content
49
+
50
+ - Delete duplicate posts by title (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-dti))
51
+ - Delete posts based on whether it contains attachment or not (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-posts-by-attachment/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-p-at))
52
 
53
  #### Deleting pages
54
 
57
  - Delete all pending pages
58
  - Delete all private pages
59
  - Delete all scheduled pages
60
+ - Delete all pages from trash (Available as a [Pro addon](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-th))
61
 
62
  Like posts, all the above options support the following filters as well
63
 
67
  - Only private posts
68
  - Restrict to first N posts
69
  - Delete permanently or just move to trash
70
+ - Schedule deletion of pages automatically (Available as a [Pro addon](http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-sp))
71
 
72
  #### Deleting post revisions
73
 
78
  - Delete users based on user role
79
  - Delete users who have not logged in in the last X days
80
 
81
+ #### Deleting Meta Fields
82
+ - Delete Post meta fields
83
+ - Delete Comment meta fields
84
+ - Delete User meta fields
85
 
86
  #### Deleting other items
87
  - Delete Jetpack Contact Form Messages
94
 
95
  ### Pro Addons
96
 
97
+ The following are the popular pro addons that are available for purchase. The full list of [pro addons](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=pro) is available at the plugin site.
98
+
99
+ - **Delete posts by custom field** - Adds the ability to delete posts based on custom field. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-custom-field/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-cf).
100
+ - **Delete posts by title** - Adds the ability to delete posts based on title. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-ti).
101
+ - **Delete posts by duplicate title** - Adds the ability to delete posts based on duplicate title. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-duplicate-title/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-dti).
102
+ - **Delete posts by user role** - Adds the ability to delete posts based on user role. [More details](http://bulkwp.com/addons/bulk-delete-posts-by-user-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-ur).
103
+ - **Delete from trash** - Adds the ability to delete posts and pages from trash. [More details](http://bulkwp.com/addons/bulk-delete-from-trash/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-dh).
104
+ - **Scheduler Email** - Sends email whenever a Bulk WP Scheduler runs. [More details](http://bulkwp.com/addons/scheduler-email/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-se).
105
+ - **Scheduler for deleting posts Category** - Adds the ability to schedule auto delete of posts based on category. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-category/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-sc).
106
+ - **Scheduler for deleting posts Tag** - Adds the ability to schedule auto delete of posts based on tag. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-tag/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-st).
107
+ - **Scheduler for deleting posts by Custom Taxonomy** - Adds the ability to schedule auto delete of posts based on custom taxonomy. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-taxonomy/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-stx).
108
+ - **Scheduler for deleting posts by Custom post type** - Adds the ability to schedule auto delete of posts based on custom post type. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-post-type/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-cpt).
109
+ - **Scheduler for deleting posts by Post Status** - Adds the ability to schedule auto delete of posts based on post status like drafts, pending posts, scheduled posts etc. [More details](http://bulkwp.com/addons/scheduler-for-deleting-posts-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-sps).
110
+ - **Scheduler for deleting pages by status** - Adds the ability to schedule auto delete of pages based on status. [More details](http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-sp).
111
+ - **Scheduler for deleting users by User Role** - Adds the ability to schedule auto delete of users based on user role. [More details](http://bulkwp.com/addons/scheduler-for-deleting-users-by-role/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-u-ur).
112
+ - **Delete Post Meta Fields Pro** - Adds the ability to delete post meta fields based on value and to schedule automatic deletion. [More details](http://bulkwp.com/addons/bulk-delete-post-meta/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-m-p).
113
+ - **Delete Comment Meta Fields Pro** - Adds the ability to delete comment meta fields based on value and to schedule automatic deletion. [More details](http://bulkwp.com/addons/bulk-delete-comment-meta/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-m-c).
114
+ - **Delete User Meta Fields Pro** - Adds the ability to delete user meta fields based on value and to schedule automatic deletion. [More details](http://bulkwp.com/addons/bulk-delete-user-meta/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-m-u).
115
+ - **Delete Jetpack Contact Form Messages Pro** - Adds the ability to delete Jetpack Contact Form Messages based on filters and to schedule automatic deletion. [More details](http://bulkwp.com/addons/bulk-delete-jetpack-contact-form-messages/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=bd-jcm).
116
 
117
  ### Development
118
 
120
 
121
  If you are not familiar with either git or Github then refer to this [guide to see how fork and send pull request](http://sudarmuthu.com/blog/contributing-to-project-hosted-in-github).
122
 
123
+ If you are looking for ideas, then you can start with one of TODO items from the [issue tracker](7) :)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
 
125
  ### Support
126
 
166
 
167
  == Installation ==
168
 
169
+ Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page or simply use the automatic plugin installer to directly install the plugin.
170
 
171
  == Frequently Asked Questions ==
172
 
188
 
189
  = How do I know what are the current values for these options configured in my server? =
190
 
191
+ Access the System Info page using the menu Bulk WP -> System Info. The System info page displays the values for the different configuration options that are configured in your server.
192
 
193
  = Is it possible to restore the posts that I have deleted through the Plugin? =
194
 
202
 
203
  = Is it possible to schedule deletion of posts? =
204
 
205
+ The ability to schedule deletion of posts is available as a [pro addon](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=pro).
206
 
207
  = I have a question about the pro addons, how should I contact you? =
208
 
209
+ You can contact us by posting about it in our [support forum](http://bulkwp.com/support/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=support).
210
 
211
  == Screenshots ==
212
 
232
  7. The above screenshot shows how you can delete users by user role.
233
 
234
 
235
+ 8. The above screenshot shows how you can schedule auto delete of posts. Note that this feature is available only when you buy [pro addons](http://bulkwp.com/addons/?utm_source=wprepo&utm_campaign=BulkDelete&utm_medium=readme&utm_content=pro).
236
+
237
 
238
+ 9. The above screenshot shows how you can enable/disable different sections in the delete posts page of the Plugin. Similarly you can enable different sections in the other pages of the plugin.
239
 
240
+
241
+ 10. The above screenshot shows the different pages that are available in the plugin.
242
 
243
  == Readme Generator ==
244
 
245
  This Readme file was generated using <a href = 'http://sudarmuthu.com/wordpress/wp-readme'>wp-readme</a>, which generates readme files for WordPress Plugins.
246
  == Changelog ==
247
 
248
+ = 2014-09-14 - v5.4 - (Dev time: 20 hours) =
249
+ - New: Added the ability to delete post meta fields (Issue #43)
250
+ - New: Added the ability to delete comment meta fields (Issue #70)
251
+ - New: Added the ability to delete user meta fields (Issue #87)
252
+ - New: (Addon) Added the ability to delete posts based on attachment
253
+ - New: Added the ability to hook into JavaScript message, date picker and validation (Issue ===82, ===83, #84)
254
+ - New: Prevent PHP from timing out while performing bulk operations(Issue #81)
255
+
256
+ - Tweak: Group memory related info together in system info output
257
+ - Tweak: Tweak the warning and error messages that are shown to the users
258
+ - Tweak: Remove hard dependency on "Bulk Delete From Trash" addon in code
259
+ - Tweak: Tweak the admin UI for WordPress 4.0 and added custom plugin icons
260
+ - Tweak: Tweak the code that handles automatic update of addons
261
+
262
  = 2014-08-17 - v5.3 - (Dev time: 17 hours) =
263
  - New: Ability to delete Jetpack Contact Form Messages (Issue #72)
264
  - New: New Addon to send email whenever a Bulk WP Scheduler runs
276
 
277
  - Bug: Fixed a warning that happened because of duplicate call to `add_meta_boxes`
278
 
 
279
  = 2014-07-03 - v5.2 - (Dev time: 8 hours) =
280
  - New: Ability to delete users in batches (Issue #47)
281
  - New: A new addon to delete posts based on users (Issue #6)
282
 
 
283
  = 2014-06-14 - v5.1 - (Dev time: 8 hours) =
284
  - New: Added the "Delete posts from trash" addon (Issue #65)
285
 
289
  - Bug: Added compatibility for PHP version 5.2.4 (Issue #66)
290
  - Bug: Fixed a bug in JavaScript validation in "Delete by URL" module (Issue #69)
291
 
 
292
  = 2014-06-12 - v5.0.2 - (Dev time: 1 hours) =
293
  - Bug: Added compatibility for PHP version 5.2.4 (Issue #64)
294
 
297
 
298
  = 2014-06-10 - v5.0 - (Dev time: 60 hours) =
299
  - New: Add the ability to delete posts by duplicate title (#56)
300
+ - New: Add a new page that displays system information for debugging
301
+ - New: Add the ability to handle addon license
302
+ - New: Use `add_settings_error` method to display information to users
303
+
304
  - Tweak: Make Bulk_Delete class singleton
305
  - Tweak: Move all deprecated functions and code to a separate file
 
306
  - Tweak: Add the ability to filter text displayed in admin footer
307
  - Tweak: Change the menu text for Schedule page
308
  - Tweak: Move delete page modules to a separate page
 
309
  - Tweak: Refactored the way request was handled
 
310
  - Tweak: Update screenshots
311
  - Tweak: Handle expired license properly
312
 
315
  - Fix: Fix the height of the sidebar
316
 
317
  = 2014-01-05 - v4.4.2 - (Dev time: 1.5 hours) =
318
+ - Tweak: Move request processing code for deleting by custom field to addon
319
  - Fix: Deleting first x posts deletes all posts while deleting by category (#44)
320
  - Fix: Posts are moved to trash even if "Delete permanently" option is selected (#45)
 
321
 
322
  = 2013-12-18 - v4.4.1 - (Dev time: 0.5 hours) =
323
  - Fix: Bulk Delete menu overrides other menus at the same position
325
  = 2013-12-14 - v4.4 - (Dev time: 10 hours) =
326
  - New: Ability to delete all published posts from "Post Status" module
327
  - New: Ability to delete all sticky posts from "Post Status" module
 
 
328
  - New: Ability to delete posts by title
329
+ - Tweak: Moved all option page to a separate top menu
330
  - Tweak: Tweak UI for WordPress 3.8
331
+ - Fix: Fix undefined notices and strict warnings
332
 
333
  = 2013-12-08 - v4.3 - (Dev time: 2 hours) =
334
  - New: Ability to delete custom post type posts by categories
478
 
479
  == Upgrade Notice ==
480
 
481
+ = 5.4 =
482
+ Ability to delete post, comment and user meta fields
483
+
484
  = 5.3 =
485
  Ability to delete Jetpack Contact Form messages
486