Adds hooks to override send action and response

This commit is contained in:
Vlad
2018-03-28 18:38:57 -04:00
parent 8728a69e69
commit f1effc30ba

View File

@@ -13,7 +13,7 @@ define(
'jquery',
'common/thumbnail.jsx',
'common/loading.jsx',
'wp-js-hooks'
'wp-js-hooks',
],
(
React,
@@ -54,7 +54,7 @@ define(
switch (newsletter.type) {
case 'notification': return NotificationNewsletterFields;
case 'welcome': return WelcomeNewsletterFields;
default: return Hooks.applyFilters('mailpoet_newsletters_send_newsletter_fields', newsletter, StandardNewsletterFields);
default: return Hooks.applyFilters('mailpoet_newsletters_send_newsletter_fields', StandardNewsletterFields, newsletter);
}
},
isValid: function isValid() {
@@ -167,20 +167,29 @@ define(
MailPoet.Modal.loading(false);
});
default:
return MailPoet.Ajax.post({
api_version: window.mailpoet_api_version,
endpoint: 'sendingQueue',
action: 'add',
data: {
newsletter_id: this.props.params.id,
},
}).done((response2) => {
return MailPoet.Ajax.post(
Hooks.applyFilters(
'mailpoet_newsletters_send_server_request_parameters',
{
api_version: window.mailpoet_api_version,
endpoint: 'sendingQueue',
action: 'add',
data: {
newsletter_id: this.state.item.id,
},
},
this.state.item
)
)
.done((response2) => {
// save template in recently sent category
this.saveTemplate(response, () => {
// redirect to listing based on newsletter type
this.context.router.push(`/${this.state.item.type || ''}`);
if (response2.data.status === 'scheduled') {
const customResponse = Hooks.applyFilters('mailpoet_newsletters_send_server_request_response', this.state.item, response2);
if (_.isFunction(customResponse)) {
customResponse();
} else if (response2.data.status === 'scheduled') {
MailPoet.Notice.success(
MailPoet.I18n.t('newsletterHasBeenScheduled')
);
@@ -331,7 +340,8 @@ define(
const sendButtonOptions = this.getSendButtonOptions();
let breadcrumb = Hooks.applyFilters('mailpoet_newsletters_send_breadcrumb', this.state.item.type, 'send');
breadcrumb = (breadcrumb !== this.state.item.type) ? breadcrumb : <Breadcrumb step="send" />;
breadcrumb = (breadcrumb !== this.state.item.type) ?
breadcrumb : <Breadcrumb step="send" />;
return (
<div>