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