public function messages_metabox($event, $callback_args) { //let's get the active messengers (b/c messenger objects have the active message templates) //convert 'evt_id' to 'EVT_ID' $this->_req_data['EVT_ID'] = isset($this->_req_data['EVT_ID']) ? $this->_req_data['EVT_ID'] : NULL; $this->_req_data['EVT_ID'] = isset($this->_req_data['post']) && empty($this->_req_data['EVT_ID']) ? $this->_req_data['post'] : $this->_req_data['EVT_ID']; $this->_req_data['EVT_ID'] = empty($this->_req_data['EVT_ID']) && isset($this->_req_data['evt_id']) ? $this->_req_data['evt_id'] : $this->_req_data['EVT_ID']; $EEM_controller = new EE_messages(); $active_messengers = $EEM_controller->get_active_messengers(); $tabs = array(); //empty messengers? //Note message types will always have at least one available because every messenger has a default message type associated with it (payment) if no other message types are selected. if (empty($active_messengers)) { $msg_activate_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'settings'), EE_MSG_ADMIN_URL); $error_msg = sprintf(__('There are no active messengers. So no notifications will go out for <strong>any</strong> events. You will want to %sActivate a Messenger%s.', 'event_espresso'), '<a href="' . $msg_activate_url . '">', '</a>'); $error_content = '<div class="error"><p>' . $error_msg . '</p></div>'; $internal_content = '<div id="messages-error"><p>' . $error_msg . '</p></div>'; echo $error_content; echo $internal_content; return; } $event_id = isset($this->_req_data['EVT_ID']) ? $this->_req_data['EVT_ID'] : NULL; //get content for active messengers foreach ($active_messengers as $name => $messenger) { //first check if there are any active message types for this messenger. $active_mts = $EEM_controller->get_active_message_types_per_messenger($name); if (empty($active_mts)) { continue; } $tcont = $messenger->get_messenger_admin_page_content('events', 'edit', array('event' => $event_id)); if (!empty($tcont)) { $tabs[$name] = $tcont; } } EE_Registry::instance()->load_helper('Tabbed_Content'); //we want this to be tabbed content so let's use the EEH_Tabbed_Content::display helper. $tabbed_content = EEH_Tabbed_Content::display($tabs); if (is_wp_error($tabbed_content)) { $tabbed_content = $tabbed_content->get_error_message(); } $notices = '<div id="espresso-ajax-loading" class="ajax-loader-grey"> <span class="ee-spinner ee-spin"></span><span class="hidden">' . __('loading...', 'event_espresso') . '</span> </div><div class="ee-notices"></div>'; if (defined('DOING_AJAX')) { return $tabbed_content; } do_action('AHEE__espresso_events_Messages_Hooks_Extend__messages_metabox__before_content'); echo $notices . '<div class="messages-tabs-content">' . $tabbed_content . '</div>'; do_action('AHEE__espresso_events_Messages_Hooks_Extend__messages_metabox__after_content'); }