/** * Process GET and POST requests * * Related Action Hooks: * - add_admin_bar_menus * * @since 1.0.0 */ public function admin_bar_manager() { $redirect = false; lib3()->array->equip_get('membership_id'); if ($this->verify_nonce('ms_simulate', 'any')) { /* * Check for memberhship id simulation GET request. * - Any valid Membership_id will simulate that membership. * - An ID of "0" will exit simulation mode. */ $new_id = absint($_REQUEST['membership_id']); if ($new_id != $this->simulate->membership_id) { // Change the simulated membership. $this->simulate->membership_id = $new_id; $target = wp_get_referer(); if ($this->simulate->is_simulating() && false !== strpos($target, 'wp-admin')) { $redirect = admin_url(); } } if (!empty($_POST['simulate_date'])) { // Change the simulation date. $this->simulate->date = $_POST['simulate_date']; } $this->simulate->save(); if (!$redirect) { if (!empty($_GET['redirect_to'])) { $redirect = $_GET['redirect_to']; } else { $redirect = wp_get_referer(); } } if (!$redirect) { $redirect = lib3()->net->current_url(); } } if ($redirect) { wp_safe_redirect($redirect); exit; } }