diff --git a/assets/js/src/newsletters/send.jsx b/assets/js/src/newsletters/send.jsx index efc7363055..2c0d63f4b5 100644 --- a/assets/js/src/newsletters/send.jsx +++ b/assets/js/src/newsletters/send.jsx @@ -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 = (breadcrumb !== this.state.item.type) ? + breadcrumb : ; return (