PUM_Admin_Subscribers_Table::handle_table_actions()
Process actions triggered by the user
Description Description
Source Source
File: classes/Admin/Subscribers/Table.php
public function handle_table_actions() { //Detect when a bulk action is being triggered... $action1 = $this->current_action(); if ( in_array( $action1, array( 'delete', 'bulk-delete' ) ) ) { // verify the nonce. if ( ! wp_verify_nonce( wp_unslash( $_REQUEST['_wpnonce'] ), $action1 == 'delete' ? 'pum_subscribers_table_action_nonce' : 'bulk-subscribers' ) ) { $this->invalid_nonce_redirect(); } else { $subscribers = isset( $_REQUEST['subscriber'] ) ? $_REQUEST['subscriber'] : array(); if ( is_numeric( $subscribers ) ) { $subscribers = array( $subscribers ); } $subscribers = wp_parse_id_list( $subscribers ); if ( $subscribers ) { $status = array(); foreach ( $subscribers as $subscriber_id ) { $status[] = PUM_DB_Subscribers::instance()->delete( $subscriber_id ); } if ( ! in_array( false, $status ) ) { wp_die( sprintf( _n( 'Subscriber deleted!', '%d Subscribers deleted!', count( $subscribers ), 'popup-maker' ), count( $subscribers ) ), __( 'Success', 'popup-maker' ), array( 'response' => 200, 'back_link' => esc_url( admin_url( 'edit.php?page=pum-subscribers&post_type=popup' ) ), ) ); } else { $succeeded = count( array_filter( $status ) ); $failed = count( $subscribers ) - $succeeded; if ( count( $subscribers ) == 1 ) { wp_die( __( 'Deleting subscriber failed.', 'popup-maker' ), __( 'Error', 'popup-maker' ), array( 'response' => 200, 'back_link' => esc_url( admin_url( 'edit.php?page=pum-subscribers&post_type=popup' ) ), ) ); } else { wp_die( sprintf( __( '%d Subscribers deleted, %d failed', 'popup-maker' ), $succeeded, $failed ), __( 'Error', 'popup-maker' ), array( 'response' => 200, 'back_link' => esc_url( admin_url( 'edit.php?page=pum-subscribers&post_type=popup' ) ), ) ); } } } wp_die( __( 'Uh oh, the subscribers was not deleted successfully!', 'popup-maker' ), __( 'Error', 'popup-maker' ), array( 'response' => 200, 'back_link' => esc_url( admin_url( 'edit.php?page=pum-subscribers&post_type=popup' ) ), ) ); exit; } } /* * Note: Table bulk_actions can be identified by checking $_REQUEST['action'] and $_REQUEST['action2'] * * action - is set if checkbox from top-most select-all is set, otherwise returns -1 * action2 - is set if checkbox the bottom-most select-all checkbox is set, otherwise returns -1 */ // check for individual row actions $the_table_action = $this->current_action(); if ( 'view_usermeta' === $the_table_action ) { $nonce = wp_unslash( $_REQUEST['_wpnonce'] ); // verify the nonce. if ( ! wp_verify_nonce( $nonce, 'view_usermeta_nonce' ) ) { $this->invalid_nonce_redirect(); } else { $this->page_view_usermeta( absint( $_REQUEST['user_id'] ) ); $this->graceful_exit(); } } if ( 'add_usermeta' === $the_table_action ) { $nonce = wp_unslash( $_REQUEST['_wpnonce'] ); // verify the nonce. if ( ! wp_verify_nonce( $nonce, 'add_usermeta_nonce' ) ) { $this->invalid_nonce_redirect(); } else { $this->page_add_usermeta( absint( $_REQUEST['user_id'] ) ); $this->graceful_exit(); } } // check for table bulk actions if ( ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'bulk-download' ) || ( isset( $_REQUEST['action2'] ) && $_REQUEST['action2'] === 'bulk-download' ) ) { $nonce = wp_unslash( $_REQUEST['_wpnonce'] ); // verify the nonce. /* * Note: the nonce field is set by the parent class * wp_nonce_field( 'bulk-' . $this->_args['plural'] ); * */ if ( ! wp_verify_nonce( $nonce, 'bulk-users' ) ) { $this->invalid_nonce_redirect(); } else { $this->page_bulk_download( $_REQUEST['users'] ); $this->graceful_exit(); } } }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |