Merge branch 'master' of https://github.com/mailpoet/mailpoet into best_api_error_message

This commit is contained in:
qfrery
2018-06-23 14:44:07 +02:00
142 changed files with 8513 additions and 5535 deletions

View File

@ -99,8 +99,7 @@ class Newsletters extends APIEndpoint {
}
}
// reload newsletter with updated options
$newsletter = Newsletter::filter('filterWithOptions')
->findOne($newsletter->id);
$newsletter = Newsletter::filter('filterWithOptions', $newsletter->type)->findOne($newsletter->id);
// if this is a post notification, process newsletter options and update its schedule
if($newsletter->type === Newsletter::TYPE_NOTIFICATION) {
// generate the new schedule from options and get the new "next run" date
@ -151,7 +150,7 @@ class Newsletters extends APIEndpoint {
}
$id = (isset($data['id'])) ? (int)$data['id'] : false;
$newsletter = Newsletter::filter('filterWithOptions')->findOne($id);
$newsletter = Newsletter::findOneWithOptions($id);
if($newsletter === false) {
return $this->errorResponse(array(
@ -487,7 +486,7 @@ class Newsletters extends APIEndpoint {
&&
$data['type'] === Newsletter::TYPE_NOTIFICATION
) {
$newsletter = Newsletter::filter('filterWithOptions')->findOne($newsletter->id);
$newsletter = Newsletter::filter('filterWithOptions', $data['type'])->findOne($newsletter->id);
Scheduler::processPostNotificationSchedule($newsletter);
}

View File

@ -25,8 +25,7 @@ class SendingQueue extends APIEndpoint {
);
// check that the newsletter exists
$newsletter = Newsletter::filter('filterWithOptions')
->findOne($newsletter_id);
$newsletter = Newsletter::findOneWithOptions($newsletter_id);
if($newsletter === false) {
return $this->errorResponse(array(

View File

@ -7,6 +7,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Subscribers\Source;
use MailPoet\Tasks\Sending;
if(!defined('ABSPATH')) exit;
@ -186,7 +187,12 @@ class API {
// send confirmation email
if($send_confirmation_email && $new_subscriber->status === Subscriber::STATUS_UNCONFIRMED) {
$this->_sendConfirmationEmail($new_subscriber);
$result = $this->_sendConfirmationEmail($new_subscriber);
if(!$result && $new_subscriber->getErrors()) {
throw new \Exception(
__(sprintf('Subscriber added, but confirmation email failed to send: %s', strtolower(implode(', ', $new_subscriber->getErrors()))), 'mailpoet')
);
}
}
// schedule welcome email(s)
@ -242,6 +248,16 @@ class API {
}
protected function _scheduleWelcomeNotification(Subscriber $subscriber, array $segments) {
return Scheduler::scheduleSubscriberWelcomeNotification($subscriber->id, $segments);
$result = Scheduler::scheduleSubscriberWelcomeNotification($subscriber->id, $segments);
if(is_array($result)) {
foreach($result as $queue) {
if($queue instanceof Sending && $queue->getErrors()) {
throw new \Exception(
__(sprintf('Subscriber added, but welcome email failed to send: %s', strtolower(implode(', ', $queue->getErrors()))), 'mailpoet')
);
}
}
}
return $result;
}
}