/**
  * verify_default_pages_exist
  *
  * 	@access public
  * 	@static
  * 	@return void
  */
 public static function verify_default_pages_exist()
 {
     $critical_page_problem = FALSE;
     $critical_pages = array(array('id' => 'reg_page_id', 'name' => __('Registration Checkout', 'event_espresso'), 'post' => NULL, 'code' => 'ESPRESSO_CHECKOUT'), array('id' => 'txn_page_id', 'name' => __('Transactions', 'event_espresso'), 'post' => NULL, 'code' => 'ESPRESSO_TXN_PAGE'), array('id' => 'thank_you_page_id', 'name' => __('Thank You', 'event_espresso'), 'post' => NULL, 'code' => 'ESPRESSO_THANK_YOU'), array('id' => 'cancel_page_id', 'name' => __('Registration Cancelled', 'event_espresso'), 'post' => NULL, 'code' => 'ESPRESSO_CANCELLED'));
     foreach ($critical_pages as $critical_page) {
         // is critical page ID set in config ?
         if (EE_Registry::instance()->CFG->core->{$critical_page}['id'] !== FALSE) {
             // attempt to find post by ID
             $critical_page['post'] = get_post(EE_Registry::instance()->CFG->core->{$critical_page}['id']);
         }
         // no dice?
         if ($critical_page['post'] == NULL) {
             // attempt to find post by title
             $critical_page['post'] = self::get_page_by_ee_shortcode($critical_page['code']);
             // still nothing?
             if ($critical_page['post'] == NULL) {
                 $critical_page = EEH_Activation::create_critical_page($critical_page);
                 // REALLY? Still nothing ??!?!?
                 if ($critical_page['post'] == NULL) {
                     $msg = __('The Event Espresso critical page configuration settings could not be updated.', 'event_espresso');
                     EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
                     break;
                 }
             }
         }
         // track post_shortcodes
         if ($critical_page['post']) {
             EEH_Activation::_track_critical_page_post_shortcodes($critical_page);
         }
         // check that Post ID matches critical page ID in config
         if (isset($critical_page['post']->ID) && $critical_page['post']->ID != EE_Registry::instance()->CFG->core->{$critical_page}['id']) {
             //update Config with post ID
             EE_Registry::instance()->CFG->core->{$critical_page}['id'] = $critical_page['post']->ID;
             if (!EE_Config::instance()->update_espresso_config(FALSE, FALSE)) {
                 $msg = __('The Event Espresso critical page configuration settings could not be updated.', 'event_espresso');
                 EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
             }
         }
         $critical_page_problem = !isset($critical_page['post']->post_status) || $critical_page['post']->post_status != 'publish' || strpos($critical_page['post']->post_content, $critical_page['code']) === FALSE ? TRUE : $critical_page_problem;
     }
     if ($critical_page_problem) {
         $msg = sprintf(__('A potential issue has been detected with one or more of your Event Espresso pages. Go to %s to view your Event Espresso pages.', 'event_espresso'), '<a href="' . admin_url('admin.php?page=espresso_general_settings&action=critical_pages') . '">' . __('Event Espresso Critical Pages Settings', 'event_espresso') . '</a>');
         EE_Error::add_persistent_admin_notice('critical_page_problem', $msg);
     }
     if (EE_Error::has_notices()) {
         EE_Error::get_notices(FALSE, TRUE, TRUE);
     }
 }
 /**
  * This sets any necessary error messages on the message object and its status to failed.
  * @param EE_Message $message
  * @param array      $error_messages the response from the messenger.
  */
 protected function _set_error_message(EE_Message $message, $error_messages)
 {
     $error_messages = (array) $error_messages;
     if (in_array($message->STS_ID(), EEM_Message::instance()->stati_indicating_failed_sending())) {
         $notices = EE_Error::has_notices();
         $error_messages[] = __('Messenger and Message Type were valid and active, but the messenger send method failed.', 'event_espresso');
         if ($notices === 1) {
             $notices = EE_Error::get_vanilla_notices();
             $notices['errors'] = isset($notices['errors']) ? $notices['errors'] : array();
             $error_messages[] = implode("\n", $notices['errors']);
         }
     }
     if (count($error_messages) > 0) {
         $msg = __('Message was not executed successfully.', 'event_espresso');
         $msg = $msg . "\n" . implode("\n", $error_messages);
         $message->set_error_message($msg);
     }
 }