Add a method for sending newsletters via new Mailer class
This commit is contained in:
@ -73,7 +73,7 @@ define([
|
||||
Module.previewNewsletter = function(options) {
|
||||
return MailPoet.Ajax.post({
|
||||
endpoint: 'newsletters',
|
||||
action: 'preview',
|
||||
action: 'sendPreview',
|
||||
data: options || {},
|
||||
});
|
||||
};
|
||||
|
@ -242,26 +242,25 @@ define([
|
||||
console.log('trying to send a preview');
|
||||
// get form data
|
||||
var data = {
|
||||
from_name: this.$('#mailpoet_preview_from_name').val(),
|
||||
from_email: this.$('#mailpoet_preview_from_email').val(),
|
||||
to_email: this.$('#mailpoet_preview_to_email').val(),
|
||||
newsletter: App.newsletterId,
|
||||
sender: {
|
||||
name: this.$('#mailpoet_preview_from_name').val(),
|
||||
address: this.$('#mailpoet_preview_from_email').val(),
|
||||
},
|
||||
subscriber: this.$('#mailpoet_preview_to_email').val(),
|
||||
id: App.getNewsletter().get('id'),
|
||||
};
|
||||
|
||||
// send test email
|
||||
MailPoet.Modal.loading(true);
|
||||
|
||||
// TODO: Migrate logic to new AJAX format
|
||||
CommunicationComponent.previewNewsletter(data).done(function(response) {
|
||||
if(response.success !== undefined && response.success === true) {
|
||||
MailPoet.Notice.success(App.getConfig().get('translations.testEmailSent'));
|
||||
} else if(response.error !== undefined) {
|
||||
if(response.error.length === 0) {
|
||||
MailPoet.Notice.error(App.getConfig().get('translations.unknownErrorOccurred'));
|
||||
if(response.result !== undefined && response.result === true) {
|
||||
MailPoet.Notice.success(App.getConfig().get('translations.newsletterPreviewSent'));
|
||||
} else {
|
||||
$(response.error).each(function(i, error) {
|
||||
MailPoet.Notice.error(error);
|
||||
});
|
||||
if (_.isArray(response.errors)) {
|
||||
MailPoet.Notice.error("\n".join(response.errors));
|
||||
} else {
|
||||
MailPoet.Notice.error(App.getConfig().get('translations.newsletterPreviewFailedToSend'));
|
||||
}
|
||||
}
|
||||
MailPoet.Modal.loading(false);
|
||||
|
@ -217,6 +217,43 @@ class Newsletters {
|
||||
wp_send_json(array('rendered_body' => $renderer->render()));
|
||||
}
|
||||
|
||||
function sendPreview($data = array()) {
|
||||
$id = (isset($data['id'])) ? (int) $data['id'] : 0;
|
||||
$newsletter = Newsletter::findOne($id);
|
||||
|
||||
if($newsletter === false) {
|
||||
wp_send_json(array(
|
||||
'result' => false
|
||||
));
|
||||
} else {
|
||||
$newsletter = $newsletter->asArray();
|
||||
|
||||
$renderer = new Renderer($newsletter);
|
||||
$rendered_body = $renderer->render();
|
||||
$newsletter['body'] = array(
|
||||
'html' => $rendered_body,
|
||||
'text' => '',
|
||||
);
|
||||
|
||||
try {
|
||||
$mailer = new \MailPoet\Mailer\Mailer(
|
||||
false,
|
||||
(isset($data['sender'])) ? $data['sender'] : false,
|
||||
false
|
||||
);
|
||||
|
||||
wp_send_json(array(
|
||||
'result' => $mailer->send($newsletter, $data['subscriber'])
|
||||
));
|
||||
} catch (\Exception $e) {
|
||||
wp_send_json(array(
|
||||
'result' => false,
|
||||
'errors' => array($e->getMessage()),
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function listing($data = array()) {
|
||||
$listing = new Listing\Handler(
|
||||
'\MailPoet\Models\Newsletter',
|
||||
|
@ -1239,10 +1239,10 @@
|
||||
'<%= __('Select a shortcode') %>',
|
||||
unsubscribeLinkMissing:
|
||||
'<%= __('Please include an unsubscribe link to continue.') %>',
|
||||
testEmailSent:
|
||||
'<%= __('Test email successfully sent!') %>',
|
||||
unknownErrorOccurred:
|
||||
'<%= __('An unknown error occurred, please check your settings.') %>',
|
||||
newsletterPreviewSent:
|
||||
'<%= __('Newsletter preview email has been successfully sent!') %>',
|
||||
newsletterPreviewFailedToSend:
|
||||
'<%= __('Attempt to send a newsletter preview email failed. Please verify that your sending method is configured correctly try again.') %>',
|
||||
templateNameMissing:
|
||||
'<%= __('Please add a template name') %>',
|
||||
templateDescriptionMissing:
|
||||
|
Reference in New Issue
Block a user