Skip to content
Snippets Groups Projects

Add bulk actions

Merged Erick Hitter requested to merge add/1-bulk-action into master
2 files
+ 92
4
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -16,6 +16,13 @@ class WP_Revisions_Control_Bulk_Actions {
*/
protected $post_types;
/**
* Base for bulk action names.
*
* @var string
*/
protected $action_base = 'wp_rev_ctl_bulk_';
/**
* Custom bulk actions.
*
@@ -43,11 +50,10 @@ class WP_Revisions_Control_Bulk_Actions {
* Register custom actions.
*/
protected function register_actions() {
$actions = array();
$action_base = 'wp_rev_ctl_bulk_';
$actions = array();
$actions[ $action_base . 'purge_excess' ] = __( 'Purge excess revisions', 'wp_revisions_control' );
$actions[ $action_base . 'purge_all' ] = __( 'Purge ALL revisions', 'wp_revisions_control' );
$actions[ $this->action_base . 'purge_excess' ] = __( 'Purge excess revisions', 'wp_revisions_control' );
$actions[ $this->action_base . 'purge_all' ] = __( 'Purge ALL revisions', 'wp_revisions_control' );
$this->actions = $actions;
}
@@ -74,6 +80,7 @@ class WP_Revisions_Control_Bulk_Actions {
add_filter( 'bulk_actions-' . $screen->id, array( $this, 'add_actions' ) );
add_filter( 'handle_bulk_actions-' . $screen->id, array( $this, 'handle_action' ), 10, 3 );
// TODO: messages.
}
/**
@@ -99,7 +106,44 @@ class WP_Revisions_Control_Bulk_Actions {
return $redirect_to;
}
$action = str_replace( $this->action_base, '', $action );
switch ( $action ) {
case 'purge_all':
$this->purge_all( $ids );
break;
case 'purge_excess':
$this->purge_excess( $ids );
break;
default:
break;
}
// TODO: implement and add a query string to trigger a message.
return $redirect_to;
}
/**
* Remove all revisions from the given IDs.
*
* @param array $ids Object IDs.
*/
protected function purge_all( $ids ) {
foreach ( $ids as $id ) {
WP_Revisions_Control::get_instance()->do_purge_all( $id );
}
}
/**
* Remove excess revisions from the given IDs.
*
* @param array $ids Object IDs.
*/
protected function purge_excess( $ids ) {
foreach ( $ids as $id ) {
WP_Revisions_Control::get_instance()->do_purge_excess( $id );
}
}
}
Loading