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