public function getPreviousMessage()
 {
     global $wpdb;
     $getAutoresponderMessageQuery = sprintf("SELECT id FROM %swpr_autoresponder_messages WHERE aid=%d AND sequence < %d ORDER BY sequence DESC LIMIT 1; ", $wpdb->prefix, $this->getAutoresponder()->getId(), $this->getDayNumber());
     $emailResult = $wpdb->get_results($getAutoresponderMessageQuery);
     if (0 == count($emailResult)) {
         return false;
     }
     $id = $emailResult[0]->id;
     return AutoresponderMessage::getMessage((int) $id);
 }
 public static function day_zero_for_subscriber($sid)
 {
     global $wpdb;
     $getSubscriptionQuery = sprintf("SELECT * FROM {$wpdb->prefix}wpr_followup_subscriptions WHERE sid=%d AND type='autoresponder' AND sequence=-1;", $sid);
     $subscriptions = $wpdb->get_results($getSubscriptionQuery);
     foreach ($subscriptions as $subscription) {
         $fetchDayZeroEmailOfAutoresponder = sprintf("SELECT * FROM {$wpdb->prefix}wpr_autoresponder_messages WHERE aid=%d AND sequence=0", $subscription->eid);
         $messageToBeSentOnDayZero = $wpdb->get_results($fetchDayZeroEmailOfAutoresponder);
         if (0 == count($messageToBeSentOnDayZero)) {
             return;
         }
         $messageId = (int) $messageToBeSentOnDayZero[0]->id;
         $message = AutoresponderMessage::getMessage($messageId);
         $currentTime = new DateTime();
         self::getProcessor()->deliver($subscription, $message, $currentTime);
     }
 }
 public static function edit_message()
 {
     $message_id = intval($_GET['id']);
     try {
         $message = AutoresponderMessage::getMessage($message_id);
     } catch (NonExistentMessageException $ex) {
         wp_redirect("admin.php?page=_wpr/utoresponders");
         //TODO:This shouldn't happen. This should instead be a error screen
     } catch (NonExistentAutoresponderException $Ex) {
         wp_redirect("admin.php?page=_wpr/utoresponders");
         //TODO:This shouldn't happen. This should instead be a error screen
     }
     $autoresponder = $message->getAutoresponder();
     $custom_fields = $autoresponder->getNewsletter()->getCustomFieldKeyLabelPair();
     self::enqueue_wysiwyg();
     //TODO: THIS METHOD DEF SHOULDN'T BE WHERE IT IS RIGHT NOW
     $form_data = array('subject' => $message->getSubject(), 'htmlbody' => $message->getHTMLBody(), 'textbody' => $message->getTextBody(), 'offset' => $message->getDayNumber());
     if (!is_array(_wpr_get("form_values"))) {
         _wpr_set("form_values", $form_data);
     }
     _wpr_set("custom_fields", $custom_fields);
     _wpr_set("autoresponder", $autoresponder);
     _wpr_set("message", $message);
     _wpr_setview("autoresponder_edit_message");
 }
 public function getMessages($start = 0, $length = -1)
 {
     global $wpdb;
     $start = 0 == intval($start) ? 0 : intval($start);
     $limitClause = Autoresponder::getLimitClauseForRecordSetFetch($start, $length);
     $getMessagesQuery = sprintf('SELECT * FROM %swpr_autoresponder_messages WHERE aid=%d ORDER BY `sequence` %s', $wpdb->prefix, $this->id, $limitClause);
     $messages = $wpdb->get_results($getMessagesQuery);
     $messageObjects = array();
     foreach ($messages as $message) {
         $messageObjects[] = AutoresponderMessage::getMessage(intval($message->id));
     }
     return $messageObjects;
 }
 /**
  * @expectedException NonExistentMessageException
  */
 public function testDeletingAutoresponderMessageDeletesTheMessage()
 {
     global $wpdb;
     $addAutoresponderQuery = sprintf("INSERT INTO %swpr_autoresponders (nid, name) VALUES (%d,'%s' )", $wpdb->prefix, $this->newsletterId, md5(microtime()));
     $results = $wpdb->query($addAutoresponderQuery);
     $autoresponder = Autoresponder::getAutoresponder($wpdb->insert_id);
     $autoresponder_message = array('textbody' => 'This is a test', 'htmlbody' => 'This is a <test>body</test>', 'subject' => 'Test Subject', 'offset' => 3);
     try {
         $message = $autoresponder->addMessage($autoresponder_message);
     } catch (Exception $exc) {
         throw new BadFunctionCallException();
     }
     $autoresponder_message = array('subject' => md5(microtime() . "subject"), 'textbody' => md5(microtime() . "textbody"), 'htmlbody' => md5(microtime() . "htmlbody"), 'offset' => 'a');
     $message_id = $message->getId();
     $autoresponder->deleteMessage($message);
     AutoresponderMessage::getMessage($message_id);
 }
 public function testWhetherAutoresponderFactoryFetchesTheAppropriateAutoresponderMessage()
 {
     global $wpdb;
     $autoresponder = AutoresponderTestHelper::addAutoresponderAndFetchRow($this->newsletter_id, "test");
     $addAutoresponderMessageQuery = sprintf("INSERT INTO {$wpdb->prefix}wpr_autoresponder_messages (aid, subject, sequence) VALUES (%d, '%s', %d)", $autoresponder->id, 'Test Subject', 1);
     $wpdb->query($addAutoresponderMessageQuery);
     $autoresponder_message_id = $wpdb->insert_id;
     $message = AutoresponderMessage::getMessage($autoresponder_message_id);
     $this->assertEquals('Test Subject', $message->getSubject());
     $this->assertEquals($autoresponder_message_id, $message->getId());
     $this->assertEquals(1, $message->getDayNumber());
 }