plugin = $plugin; $this->user = $user; } /** * Add administration menus * * @since 0.1 **/ public function add_menu():void { \add_users_page ( \__( 'Export User Data', 'q-export-user-data' ), \__( 'Export User Data', 'q-export-user-data' ), \apply_filters( 'q/eud/admin_capability', 'list_users' ), 'q-export-user-data', [ $this, 'admin_page' ] // callback method ## ); } /** * Content of the admin page * * @since 0.1 */ public function admin_page(){ // quick security check ## if ( ! \current_user_can( \apply_filters( 'q/eud/admin_capability', 'list_users' ) ) ) { \wp_die( \__( 'You do not have sufficient permissions to access this page.', 'q-export-user-data' ) ); } // Save settings button was pressed ## if ( isset( $_POST['save_export'] ) && \check_admin_referer( 'q-eud-admin-page', '_wpnonce-q-eud-admin-page' ) ) { // start with an empty variable ## $save_export = ""; if ( ! empty( $_POST['save_new_export_name'] ) ) { // assign value ## $save_export = \sanitize_text_field( $_POST['save_new_export_name'] ); } elseif ( ! empty( $_POST['export_name'] ) ) { $save_export = \sanitize_text_field( $_POST['export_name'] ); } // Build array of $options to save and save them ## if ( isset( $save_export ) ) { // prepare all array values ## $usermeta = isset( $_POST['usermeta'] ) ? array_map( 'sanitize_text_field', $_POST['usermeta'] ) : ''; $format = isset( $_POST['format'] ) ? \sanitize_text_field( $_POST['format'] ) : '' ; $role = isset( $_POST['role'] ) ? \sanitize_text_field( $_POST['role'] ) : '' ; $roles = isset( $_POST['roles'] ) ? \sanitize_text_field( $_POST['roles'] ) : '' ; $user_fields = isset( $_POST['user_fields'] ) ? \sanitize_text_field( $_POST['user_fields'] ) : '1' ; $groups = isset( $_POST['groups'] ) ? \sanitize_text_field( $_POST['groups'] ) : '0' ; $start_date = isset( $_POST['start_date'] ) ? \sanitize_text_field( $_POST['start_date'] ) : '' ; $end_date = isset( $_POST['end_date'] ) ? \sanitize_text_field( $_POST['end_date'] ) : '' ; $limit_offset = isset( $_POST['limit_offset'] ) ? \sanitize_text_field( $_POST['limit_offset'] ) : '' ; $limit_total = isset( $_POST['limit_total'] ) ? \sanitize_text_field( $_POST['limit_total'] ) : '' ; $updated_since_date = isset( $_POST['updated_since_date'] ) ? \sanitize_text_field( $_POST['updated_since_date'] ) : '' ; // assign all values to an array ## $save_array = array ( 'usermeta_saved_fields' => $usermeta, 'role' => $role, 'roles' => $roles, 'user_fields' => $user_fields, 'groups' => $groups, 'start_date' => $start_date, 'end_date' => $end_date, 'limit_offset' => $limit_offset, 'limit_total' => $limit_total, 'updated_since_date' => $updated_since_date, 'format' => $format ); // store the options, for next load ## $this->user->set_user_options( $save_export, $save_array ); // Display the settings the user just saved instead of blanking the form ## $_POST['load_export'] = 'Load Settings'; $_POST['export_name'] = $save_export; } } // Load settings button was pressed ( or option saved and $_POST variables hijacked )## if ( isset( $_POST['load_export'] ) && isset( $_POST['export_name'] ) && \check_admin_referer( 'q-eud-admin-page', '_wpnonce-q-eud-admin-page' ) ) { $this->user->get_user_options_by_export( \sanitize_text_field( $_POST['export_name'] ) ); } // Delete settings button was pressed ## if ( isset( $_POST['delete_export'] ) && isset( $_POST['export_name'] ) && \check_admin_referer( 'q-eud-admin-page', '_wpnonce-q-eud-admin-page' ) ) { $this->user->delete_user_options( \sanitize_text_field( $_POST['export_name'] ) ); } ?>