Create the WC transactional email only when it's first invoked [MAILPOET-2514]
This commit is contained in:
@ -98,9 +98,10 @@ class NewsletterTypes extends React.Component {
|
||||
'MailPoet Free version': window.mailpoet_version,
|
||||
'Email type': 'wc_transactional',
|
||||
});
|
||||
let emailId = window.mailpoet_woocommerce_transactional_email_id;
|
||||
if (!window.mailpoet_woocommerce_customizer_enabled) {
|
||||
try {
|
||||
await MailPoet.Ajax.post({
|
||||
const response = await MailPoet.Ajax.post({
|
||||
api_version: window.mailpoet_api_version,
|
||||
endpoint: 'settings',
|
||||
action: 'set',
|
||||
@ -108,12 +109,13 @@ class NewsletterTypes extends React.Component {
|
||||
'woocommerce.use_mailpoet_editor': 1,
|
||||
},
|
||||
});
|
||||
emailId = response.data.woocommerce.transactional_email_id;
|
||||
} catch (response) {
|
||||
MailPoet.Notice.showApiErrorNotice(response, { scroll: true });
|
||||
return;
|
||||
}
|
||||
}
|
||||
window.location.href = `?page=mailpoet-newsletter-editor&id=${window.mailpoet_woocommerce_transactional_email_id}`;
|
||||
window.location.href = `?page=mailpoet-newsletter-editor&id=${emailId}`;
|
||||
};
|
||||
|
||||
createNewsletter = (type) => {
|
||||
|
@ -13,6 +13,7 @@ use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Services\AuthorizedEmailsController;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class Settings extends APIEndpoint {
|
||||
@ -26,6 +27,9 @@ class Settings extends APIEndpoint {
|
||||
/** @var AuthorizedEmailsController */
|
||||
private $authorized_emails_controller;
|
||||
|
||||
/** @var TransactionalEmails */
|
||||
private $wc_transactional_emails;
|
||||
|
||||
public $permissions = [
|
||||
'global' => AccessControl::PERMISSION_MANAGE_SETTINGS,
|
||||
];
|
||||
@ -34,11 +38,13 @@ class Settings extends APIEndpoint {
|
||||
public function __construct(
|
||||
SettingsController $settings,
|
||||
Bridge $bridge,
|
||||
AuthorizedEmailsController $authorized_emails_controller
|
||||
AuthorizedEmailsController $authorized_emails_controller,
|
||||
TransactionalEmails $wc_transactional_emails
|
||||
) {
|
||||
$this->settings = $settings;
|
||||
$this->bridge = $bridge;
|
||||
$this->authorized_emails_controller = $authorized_emails_controller;
|
||||
$this->wc_transactional_emails = $wc_transactional_emails;
|
||||
}
|
||||
|
||||
function get() {
|
||||
@ -88,6 +94,10 @@ class Settings extends APIEndpoint {
|
||||
if ($old_subscribe_old_woocommerce_customers !== $new_subscribe_old_woocommerce_customers) {
|
||||
$this->onSubscribeOldWoocommerceCustomersChange();
|
||||
}
|
||||
|
||||
if (!empty($new_settings['woocommerce']['use_mailpoet_editor'])) {
|
||||
$this->wc_transactional_emails->init();
|
||||
}
|
||||
}
|
||||
|
||||
private function onSubscribeOldWoocommerceCustomersChange() {
|
||||
|
@ -50,7 +50,7 @@ class NewsletterEditor {
|
||||
|
||||
function render() {
|
||||
$newsletter_id = (isset($_GET['id']) ? (int)$_GET['id'] : 0);
|
||||
$woocommerce_template_id = (int)$this->settings->get('woocommerce.transactional_email_id', null);
|
||||
$woocommerce_template_id = (int)$this->settings->get(TransactionalEmails::SETTING_EMAIL_ID, null);
|
||||
if (
|
||||
$woocommerce_template_id
|
||||
&& $newsletter_id === $woocommerce_template_id
|
||||
|
@ -16,6 +16,7 @@ use MailPoet\Settings\UserFlagsController;
|
||||
use MailPoet\Util\Installation;
|
||||
use MailPoet\Util\License\License;
|
||||
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
use MailPoet\WP\DateTime;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
@ -162,7 +163,7 @@ class Newsletters {
|
||||
$data['is_new_user'] = $this->installation->isNewInstallation();
|
||||
$data['sent_newsletters_count'] = (int)Newsletter::where('status', Newsletter::STATUS_SENT)->count();
|
||||
$data['woocommerce_customizer_enabled'] = (bool)$this->settings->get('woocommerce.use_mailpoet_editor');
|
||||
$data['woocommerce_transactional_email_id'] = $this->settings->get('woocommerce.transactional_email_id');
|
||||
$data['woocommerce_transactional_email_id'] = $this->settings->get(TransactionalEmails::SETTING_EMAIL_ID);
|
||||
$this->wp->wpEnqueueScript('jquery-ui');
|
||||
$this->wp->wpEnqueueScript('jquery-ui-datepicker');
|
||||
|
||||
|
@ -31,7 +31,6 @@ use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||
use MailPoet\Subscribers\Source;
|
||||
use MailPoet\Subscription\Captcha;
|
||||
use MailPoet\Util\Helpers;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class Populator {
|
||||
@ -50,16 +49,12 @@ class Populator {
|
||||
/** @var FeaturesController */
|
||||
private $flags_controller;
|
||||
|
||||
/** @var TransactionalEmails */
|
||||
private $wc_transactional_emails;
|
||||
|
||||
function __construct(
|
||||
SettingsController $settings,
|
||||
WPFunctions $wp,
|
||||
Captcha $captcha,
|
||||
ReferralDetector $referralDetector,
|
||||
FeaturesController $flags_controller,
|
||||
TransactionalEmails $wc_transactional_emails
|
||||
FeaturesController $flags_controller
|
||||
) {
|
||||
$this->settings = $settings;
|
||||
$this->wp = $wp;
|
||||
@ -147,7 +142,6 @@ class Populator {
|
||||
'FarmersMarket',
|
||||
];
|
||||
$this->flags_controller = $flags_controller;
|
||||
$this->wc_transactional_emails = $wc_transactional_emails;
|
||||
}
|
||||
|
||||
function up() {
|
||||
@ -173,7 +167,6 @@ class Populator {
|
||||
$this->scheduleSubscriberLinkTokens();
|
||||
$this->detectReferral();
|
||||
$this->updateFormsSuccessMessages();
|
||||
$this->initWooCommerceTransactionalEmails();
|
||||
$this->moveGoogleAnalyticsFromPremium();
|
||||
}
|
||||
|
||||
@ -724,11 +717,4 @@ class Populator {
|
||||
private function detectReferral() {
|
||||
$this->referralDetector->detect();
|
||||
}
|
||||
|
||||
private function initWooCommerceTransactionalEmails() {
|
||||
$feature_enabled = $this->flags_controller->isSupported(FeaturesController::WC_TRANSACTIONAL_EMAILS_CUSTOMIZER);
|
||||
if ($feature_enabled) {
|
||||
$this->wc_transactional_emails->init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ namespace MailPoet\WooCommerce;
|
||||
use MailPoet\Config\Renderer;
|
||||
use MailPoet\Features\FeaturesController;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
|
||||
class Settings {
|
||||
|
||||
@ -43,7 +44,7 @@ class Settings {
|
||||
}
|
||||
|
||||
echo $this->renderer->render('woocommerce/settings_overlay.html', [
|
||||
'woocommerce_template_id' => $this->settings->get('woocommerce.transactional_email_id'),
|
||||
'woocommerce_template_id' => $this->settings->get(TransactionalEmails::SETTING_EMAIL_ID),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user