function page_actions()
 {
     global $EO_Errors;
     add_action('admin_notices', array($this, 'admin_notices'));
     //Determine action if any
     $action = $this->current_action();
     $venue = isset($_REQUEST['event-venue']) ? $_REQUEST['event-venue'] : false;
     if ($action && $venue || $action == 'add') {
         if (!current_user_can('manage_venues')) {
             wp_die(__('You do not have permission to manage venues', 'eventorganiser'));
         }
         switch ($action) {
             case 'update':
                 if (!check_admin_referer('eventorganiser_update_venue_' . $venue)) {
                     wp_die(__('You do not have permission to edit this venue.', 'eventorganiser'));
                 }
                 $venue = get_term_by('slug', esc_attr($venue), 'event-venue');
                 $return = eo_update_venue($venue->term_id, $_POST['eo_venue']);
                 if (is_wp_error($return)) {
                     $EO_Errors->add('eo_error', __('Venue <strong>was not</strong> updated', 'eventorganiser') . ': ' . $return->get_error_message());
                 } else {
                     $term_id = (int) $return['term_id'];
                     $venue = get_term($term_id, 'event-venue');
                     $url = add_query_arg(array('page' => 'venues', 'action' => 'edit', 'event-venue' => $venue->slug, 'message' => 2), admin_url('edit.php?post_type=event'));
                     wp_redirect(esc_url_raw($url));
                     exit;
                 }
                 break;
             case 'add':
                 if (!check_admin_referer('eventorganiser_add_venue')) {
                     wp_die(__('You do not have permission to edit this venue.', 'eventorganiser'));
                 }
                 $args = $_POST['eo_venue'];
                 $name = isset($args['name']) ? $args['name'] : '';
                 //Venue may already exist in database since it may have been added via ajax (by pro plug-in);
                 if (!empty($args['venue_id']) && ($_venue = eo_get_venue_by('id', $args['venue_id']))) {
                     //Since we're updating, need to explicitly provide slug to update it. Slug will be 'new-venue'.
                     $args['slug'] = sanitize_title($args['name']);
                     $return = eo_update_venue($_venue->term_id, $args);
                 } else {
                     $return = eo_insert_venue($name, $args);
                 }
                 if (is_wp_error($return)) {
                     $EO_Errors->add('eo_error', __('Venue <strong>was not</strong> created', 'eventorganiser') . ': ' . $return->get_error_message());
                     $_REQUEST['action'] = 'create';
                 } else {
                     $term_id = (int) $return['term_id'];
                     $venue = get_term($term_id, 'event-venue');
                     $url = add_query_arg(array('page' => 'venues', 'action' => 'edit', 'event-venue' => $venue->slug, 'message' => 1), admin_url('edit.php?post_type=event'));
                     wp_redirect(esc_url_raw($url));
                     exit;
                 }
                 break;
             case 'delete':
                 if (is_array($_REQUEST['event-venue'])) {
                     $nonce = 'bulk-venues';
                 } else {
                     $nonce = 'eventorganiser_delete_venue_' . $venue;
                 }
                 if (!check_admin_referer($nonce)) {
                     wp_die(__('You do not have permission to delete this venue', 'eventorganiser'));
                 }
                 $venues = (array) $venue;
                 //Count the number of deleted venues
                 $deleted = 0;
                 foreach ($venues as $venue) {
                     $venue = get_term_by('slug', esc_attr($venue), 'event-venue');
                     $resp = eo_delete_venue($venue->term_id);
                     if (!is_wp_error($resp) && true === $resp) {
                         $deleted++;
                     }
                 }
                 if ($deleted > 0) {
                     $url = add_query_arg(array('page' => 'venues', 'message' => 3), admin_url('edit.php?post_type=event'));
                     wp_redirect(esc_url_raw($url));
                     exit;
                 } else {
                     $EO_Errors = new WP_Error('eo_error', __('Venue(s) <strong>were not </strong> deleted', 'eventorganiser'));
                 }
                 break;
         }
     }
     $action = $this->current_action();
     if (in_array($action, array('edit', 'update', 'create'))) {
         $venue = isset($_REQUEST['event-venue']) ? $_REQUEST['event-venue'] : false;
         //Venued edit page
         add_meta_box('submitdiv', __('Save', 'eventorganiser'), 'eventorganiser_venue_submit', 'event_page_venues', 'side', 'high');
         /**
          * Fires after all built-in meta boxes for venues have been added.
          *
          * @param Object $venue Venue (term object)
          */
         do_action('add_meta_boxes_event_page_venues', $venue);
         /**
          * @ignore
          */
         do_action('add_meta_boxes', 'event_page_venues', $venue);
         add_screen_option('layout_columns', array('max' => 2, 'default' => 2));
     } else {
         //Venue admin list
         require_once 'classes/class-eo-venue-list-table.php';
         add_filter('manage_event_page_venues_columns', 'eventorganiser_venue_admin_columns');
         add_screen_option('per_page', array('option' => 'edit_event_venue_per_page', 'label' => __('Venues', 'eventorganiser'), 'default' => 20));
     }
 }
 function page_actions()
 {
     global $EO_Errors;
     //Determine action if any
     $action = $this->current_action();
     $venue = isset($_REQUEST['event-venue']) ? $_REQUEST['event-venue'] : false;
     if ($action && $venue || $action == 'add') {
         if (!current_user_can('manage_venues')) {
             wp_die(__("You do not have permission to manage venues", 'eventorganiser'));
         }
         switch ($action) {
             case 'update':
                 if (!check_admin_referer('eventorganiser_update_venue_' . $venue)) {
                     wp_die(__("You do not have permission to edit this venue.", 'eventorganiser'));
                 }
                 $venue = get_term_by('slug', esc_attr($venue), 'event-venue');
                 $return = eo_update_venue($venue->term_id, $_POST['eo_venue']);
                 if (is_wp_error($return)) {
                     $EO_Errors->add('eo_error', __("Venue <strong>was not</strong> updated", 'eventorganiser') . ": " . $return->get_error_message());
                 } else {
                     $term_id = (int) $return['term_id'];
                     $venue = get_term($term_id, 'event-venue');
                     $_REQUEST['event-venue'] = $venue->slug;
                     $EO_Errors->add('eo_notice', __("Venue <strong>updated</strong>", 'eventorganiser'));
                 }
                 $_REQUEST['action'] = 'edit';
                 break;
             case 'add':
                 if (!check_admin_referer('eventorganiser_add_venue')) {
                     wp_die(__("You do not have permission to edit this venue.", 'eventorganiser'));
                 }
                 $args = $_POST['eo_venue'];
                 $name = isset($args['name']) ? $args['name'] : '';
                 $return = eo_insert_venue($name, $args);
                 if (is_wp_error($return)) {
                     $EO_Errors->add('eo_error', __("Venue <strong>was not</strong> created", 'eventorganiser') . ": " . $return->get_error_message());
                     $_REQUEST['action'] = 'create';
                 } else {
                     $EO_Errors->add('eo_notice', __("Venue <strong>created</strong>", 'eventorganiser'));
                     $term_id = (int) $return['term_id'];
                     $venue = get_term($term_id, 'event-venue');
                     $_REQUEST['action'] = 'edit';
                     $_REQUEST['event-venue'] = $venue->slug;
                 }
                 break;
             case 'delete':
                 if (is_array($_REQUEST['event-venue'])) {
                     $nonce = 'bulk-venues';
                 } else {
                     $nonce = 'eventorganiser_delete_venue_' . $venue;
                 }
                 if (!check_admin_referer($nonce)) {
                     wp_die(__("You do not have permission to delete this venue", 'eventorganiser'));
                 }
                 $venues = (array) $venue;
                 //Count the number of deleted venues
                 $deleted = 0;
                 foreach ($venues as $venue) {
                     $venue = get_term_by('slug', esc_attr($venue), 'event-venue');
                     $resp = eo_delete_venue($venue->term_id);
                     if (!is_wp_error($resp) && true === $resp) {
                         $deleted++;
                     }
                 }
                 if ($deleted > 0) {
                     $EO_Errors = new WP_Error('eo_notice', __("Venue(s) <strong>deleted</strong>", 'eventorganiser'));
                 } else {
                     $EO_Errors = new WP_Error('eo_error', __("Venue(s) <strong>were not </strong> deleted", 'eventorganiser'));
                 }
                 break;
         }
     }
     $action = $this->current_action();
     if (in_array($action, array('edit', 'update', 'create'))) {
         $venue = isset($_REQUEST['event-venue']) ? $_REQUEST['event-venue'] : false;
         //Venued edit page
         add_meta_box('submitdiv', __('Save', 'eventorganiser'), 'eventorganiser_venue_submit', 'event_page_venues', 'side', 'high');
         do_action('add_meta_boxes_event_page_venues', $venue);
         do_action('add_meta_boxes', 'event_page_venues', $venue);
     } else {
         //Venue admin list
         require_once "classes/class-eo-venue-list-table.php";
         add_filter('manage_event_page_venues_columns', 'eventorganiser_venue_admin_columns');
         add_screen_option('per_page', array('option' => 'edit_event_venue_per_page', 'label' => __('Venues', 'eventorganiser'), 'default' => 20));
     }
 }