Skip to content

Commit

Permalink
Add the ability to delete terms
Browse files Browse the repository at this point in the history
The following modules are added along with their tests

- DeleteTermsByName
- DeleteTermsByPostCount

Fix #19 
Fix #176 
Fix #177 
Fix #178
Fix #348
Fix #349
  • Loading branch information
rajanvijayan authored and sudar committed Aug 12, 2018
1 parent 0057f42 commit 382cbc6
Show file tree
Hide file tree
Showing 12 changed files with 1,485 additions and 5 deletions.
8 changes: 8 additions & 0 deletions assets/js/src/delete-terms.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Delete Terms modules.
*/
jQuery( document ).ready( function () {
jQuery( '.enhanced-taxonomy-list' ).select2( {
width: '300px'
} );
} );
8 changes: 4 additions & 4 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions include/Core/Base/Mixin/Renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,23 @@ protected function render_post_type_dropdown() {
bd_render_post_type_dropdown( $this->field_slug );
}

/**
* Render Taxonomy dropdown.
*/
protected function render_taxonomy_dropdown() {
$taxonomies = get_taxonomies( array(), 'objects' );
?>

<select name="smbd_<?php echo esc_attr( $this->field_slug ); ?>_taxonomy" class="enhanced-taxonomy-list" data-placeholder="<?php _e( 'Select Taxonomy', 'bulk-delete' ); ?>">
<?php foreach ( $taxonomies as $taxonomy ) : ?>
<option value="<?php echo esc_attr( $taxonomy->name ); ?>">
<?php echo esc_html( $taxonomy->label ); ?>
</option>
<?php endforeach; ?>
</select>
<?php
}

/**
* Render Category dropdown.
*/
Expand All @@ -137,6 +154,36 @@ class="<?php echo sanitize_html_class( $this->enable_ajax_if_needed_to_dropdown_
<?php
}

/**
* Render String based comparison operators dropdown.
*/
protected function render_string_comparison_operators() {
?>
<select name="smbd_<?php echo esc_attr( $this->field_slug ); ?>_operator">
<option value="equal_to"><?php _e( 'equal to', 'bulk-delete' ); ?></option>
<option value="not_equal_to"><?php _e( 'not equal to', 'bulk-delete' ); ?></option>
<option value="starts_with"><?php _e( 'starts with', 'bulk-delete' ); ?></option>
<option value="ends_with"><?php _e( 'ends with', 'bulk-delete' ); ?></option>
<option value="contains"><?php _e( 'contains', 'bulk-delete' ); ?></option>
<option value="not_contains"><?php _e( 'not contains', 'bulk-delete' ); ?></option>
</select>
<?php
}

/**
* Render number based comparison operators dropdown.
*/
protected function render_number_comparison_operators() {
?>
<select name="smbd_<?php echo esc_attr( $this->field_slug ); ?>_operator">
<option value="equal_to"><?php _e( 'equal to', 'bulk-delete' ); ?></option>
<option value="not_equal_to"><?php _e( 'not equal to', 'bulk-delete' ); ?></option>
<option value="less_than"><?php _e( 'less than', 'bulk-delete' ); ?></option>
<option value="greater_than"><?php _e( 'greater than', 'bulk-delete' ); ?></option>
</select>
<?php
}

/**
* Render Tags dropdown.
*/
Expand Down Expand Up @@ -233,6 +280,13 @@ protected function render_post_type_checkboxes( $name ) {
<?php
}

/**
* Render the "private post" setting fields.
*/
protected function render_private_post_settings() {
bd_render_private_post_settings( $this->field_slug );
}

/**
* Get the threshold after which enhanced select should be used.
*
Expand Down
21 changes: 21 additions & 0 deletions include/Core/BulkDelete.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
use BulkWP\BulkDelete\Core\Posts\Modules\DeletePostsByTagModule;
use BulkWP\BulkDelete\Core\Posts\Modules\DeletePostsByTaxonomyModule;
use BulkWP\BulkDelete\Core\Posts\Modules\DeletePostsByURLModule;
use BulkWP\BulkDelete\Core\Terms\DeleteTermsPage;
use BulkWP\BulkDelete\Core\Terms\Modules\DeleteTermsByNameModule;
use BulkWP\BulkDelete\Core\Terms\Modules\DeleteTermsByPostCountModule;
use BulkWP\BulkDelete\Core\Users\DeleteUsersPage;
use BulkWP\BulkDelete\Core\Users\Modules\DeleteUsersByUserMetaModule;
use BulkWP\BulkDelete\Core\Users\Modules\DeleteUsersByUserRoleModule;
Expand Down Expand Up @@ -310,11 +313,13 @@ public function get_primary_pages() {
$pages_page = $this->get_delete_pages_admin_page();
$users_page = $this->get_delete_users_admin_page();
$metas_page = $this->get_delete_metas_admin_page();
$terms_page = $this->get_delete_terms_admin_page();

$this->primary_pages[ $posts_page->get_page_slug() ] = $posts_page;
$this->primary_pages[ $pages_page->get_page_slug() ] = $pages_page;
$this->primary_pages[ $users_page->get_page_slug() ] = $users_page;
$this->primary_pages[ $metas_page->get_page_slug() ] = $metas_page;
$this->primary_pages[ $terms_page->get_page_slug() ] = $terms_page;
}

/**
Expand Down Expand Up @@ -467,6 +472,22 @@ private function get_delete_metas_admin_page() {
return $metas_page;
}

/**
* Get Bulk Delete Terms admin page.
*
* @since 6.0.0
*
* @return \BulkWP\BulkDelete\Core\Terms\DeleteTermsPage
*/
private function get_delete_terms_admin_page() {
$terms_page = new DeleteTermsPage( $this->get_plugin_file() );

$terms_page->add_module( new DeleteTermsByNameModule() );
$terms_page->add_module( new DeleteTermsByPostCountModule() );

return $terms_page;
}

/**
* Get the Cron List admin page.
*
Expand Down
6 changes: 5 additions & 1 deletion include/Core/Controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,13 @@ public function filter_plugin_action_links( $action_links, $file ) {
* @since 5.6
* @since 6.0.0 Moved into Controller class.
*
* @param \WP_Query $wp_query WP Query object.
* @param \WP_Query|\WP_Term_Query|\WP_User_Query $wp_query Query object.
*/
public function log_sql_query( $wp_query ) {
if ( ! property_exists( $wp_query, 'request' ) ) {
return;
}

$query = $wp_query->request;

/**
Expand Down
53 changes: 53 additions & 0 deletions include/Core/Terms/DeleteTermsPage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php

namespace BulkWP\BulkDelete\Core\Terms;

use BulkWP\BulkDelete\Core\Base\BaseDeletePage;

defined( 'ABSPATH' ) || exit; // Exit if accessed directly.

/**
* Bulk Delete Terms Page.
*
* Shows the list of modules that allows you to delete terms.
*
* @since 6.0.0
*/
class DeleteTermsPage extends BaseDeletePage {
protected function initialize() {
$this->page_slug = 'bulk-delete-terms';
$this->item_type = 'terms';
$this->capability = 'delete_posts';

$this->label = array(
'page_title' => __( 'Bulk Delete Taxonomy Terms', 'bulk-delete' ),
'menu_title' => __( 'Bulk Delete Terms', 'bulk-delete' ),
);

$this->messages = array(
'warning_message' => __( 'WARNING: Once deleted, terms cannot be retrieved back. Use with caution.', 'bulk-delete' ),
);

$this->show_link_in_plugin_list = true;
}

/**
* Add Help tabs.
*
* @param array $help_tabs Help tabs.
*
* @return array Modified list of tabs.
*/
protected function add_help_tab( $help_tabs ) {
$overview_tab = array(
'title' => __( 'Overview', 'bulk-delete' ),
'id' => 'overview_tab',
'content' => '<p>' . __( 'This screen contains different modules that allows you to delete terms from taxonomies', 'bulk-delete' ) . '</p>',
'callback' => false,
);

$help_tabs['overview_tab'] = $overview_tab;

return $help_tabs;
}
}
Loading

0 comments on commit 382cbc6

Please sign in to comment.