diff --git a/assets/js/src/newsletter_editor/components/sidebar.js b/assets/js/src/newsletter_editor/components/sidebar.js index 907165238d..3aea6ec0d0 100644 --- a/assets/js/src/newsletter_editor/components/sidebar.js +++ b/assets/js/src/newsletter_editor/components/sidebar.js @@ -77,11 +77,6 @@ SidebarView = Marionette.View.extend({ } }, }, - templateContext: function () { - return { - isWoocommerceTransactional: this.model.isWoocommerceTransactional(), - }; - }, initialize: function () { jQuery(window) .on('resize', this.updateHorizontalScroll.bind(this)) @@ -97,6 +92,7 @@ SidebarView = Marionette.View.extend({ this.showChildView('stylesRegion', new Module.SidebarStylesView({ model: App.getGlobalStyles(), availableStyles: App.getAvailableStyles(), + isWoocommerceTransactional: this.model.isWoocommerceTransactional(), })); this.showChildView('previewRegion', new Module.SidebarPreviewView()); }, @@ -213,16 +209,21 @@ Module.SidebarStylesView = Marionette.View.extend({ }, 'change #mailpoet_newsletter_background_color': _.partial(this.changeColorField, 'wrapper.backgroundColor'), 'change #mailpoet_background_color': _.partial(this.changeColorField, 'body.backgroundColor'), + // WooCommerce styles + 'change #mailpoet_wc_heading_font_color': _.partial(this.changeColorField, 'woocommerce.headingFontColor'), + 'change #mailpoet_wc_branding_color': _.partial(this.changeColorField, 'woocommerce.brandingColor'), }; }, templateContext: function () { return { model: this.model.toJSON(), availableStyles: this.availableStyles.toJSON(), + isWoocommerceTransactional: this.isWoocommerceTransactional, }; }, initialize: function (options) { this.availableStyles = options.availableStyles; + this.isWoocommerceTransactional = options.isWoocommerceTransactional; App.getChannel().on('historyUpdate', this.render); }, changeField: function (field, event) { diff --git a/assets/js/src/newsletter_editor/components/styles.js b/assets/js/src/newsletter_editor/components/styles.js index 339397b2f7..708295a74e 100644 --- a/assets/js/src/newsletter_editor/components/styles.js +++ b/assets/js/src/newsletter_editor/components/styles.js @@ -57,12 +57,20 @@ Module.StylesModel = SuperModel.extend({ Module.StylesView = Marionette.View.extend({ getTemplate: function () { return window.templates.styles; }, // eslint-disable-line func-names + templateContext: function () { // eslint-disable-line func-names + return { + isWoocommerceTransactional: this.isWoocommerceTransactional, + }; + }, modelEvents: { change: 'render', }, serializeData: function () { // eslint-disable-line func-names return this.model.toJSON(); }, + initialize: function (options) { // eslint-disable-line func-names + this.isWoocommerceTransactional = options.isWoocommerceTransactional; + }, }); Module._globalStyles = new SuperModel(); @@ -92,7 +100,10 @@ App.on('before:start', function (BeforeStartApp, options) { // eslint-disable-li }); App.on('start', function (StartApp) { // eslint-disable-line func-names - var stylesView = new Module.StylesView({ model: StartApp.getGlobalStyles() }); + var stylesView = new Module.StylesView({ + model: StartApp.getGlobalStyles(), + isWoocommerceTransactional: App.getNewsletter().isWoocommerceTransactional(), + }); StartApp._appView.showChildView('stylesRegion', stylesView); }); diff --git a/lib/WooCommerce/TransactionalEmails.php b/lib/WooCommerce/TransactionalEmails.php index ffd6a62ffe..9069ecfc89 100644 --- a/lib/WooCommerce/TransactionalEmails.php +++ b/lib/WooCommerce/TransactionalEmails.php @@ -23,6 +23,9 @@ class TransactionalEmails { /** @var Template */ private $template; + /** @var Helper */ + private $woocommerce_helper; + /** @var Renderer */ private $renderer; @@ -32,11 +35,12 @@ class TransactionalEmails { /** @var NewslettersRepository */ private $newsletters_repository; - function __construct(WPFunctions $wp, SettingsController $settings, Template $template, Renderer $renderer, NewslettersRepository $newsletters_repository) { + function __construct(WPFunctions $wp, SettingsController $settings, Template $template, Renderer $renderer, Helper $woocommerce_helper, NewslettersRepository $newsletters_repository) { $this->wp = $wp; $this->settings = $settings; $this->template = $template; $this->renderer = $renderer; + $this->woocommerce_helper = $woocommerce_helper; $this->newsletters_repository = $newsletters_repository; $this->email_headings = [ 'new_account' => [ @@ -140,6 +144,7 @@ class TransactionalEmails { $key = preg_replace('/^woocommerce_email_/', '', $name); $result[$key] = $value ?: $default; } + $result['base_text_color'] = $this->woocommerce_helper->wcLightOrDark($result['base_color'], '#202020', '#ffffff'); $result['footer_text'] = $this->replacePlaceholders($result['footer_text']); return $result; } diff --git a/lib/WooCommerce/TransactionalEmails/Template.php b/lib/WooCommerce/TransactionalEmails/Template.php index 06a05029da..1eb410028c 100644 --- a/lib/WooCommerce/TransactionalEmails/Template.php +++ b/lib/WooCommerce/TransactionalEmails/Template.php @@ -330,6 +330,11 @@ class Template { [ 'backgroundColor' => $wc_email_settings['background_color'], ], + 'woocommerce' => + [ + 'brandingColor' => $wc_email_settings['base_color'], + 'headingFontColor' => $wc_email_settings['base_text_color'], + ], ], 'blockDefaults' => [ diff --git a/tests/integration/WooCommerce/TransactionalEmailsTest.php b/tests/integration/WooCommerce/TransactionalEmailsTest.php index c542da59f8..ad223ecf02 100644 --- a/tests/integration/WooCommerce/TransactionalEmailsTest.php +++ b/tests/integration/WooCommerce/TransactionalEmailsTest.php @@ -9,6 +9,7 @@ use MailPoet\Models\Newsletter; use MailPoet\Newsletter\Editor\LayoutHelper as L; use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Settings\SettingsController; +use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WooCommerce\TransactionalEmails\Renderer; use MailPoet\WooCommerce\TransactionalEmails\Template; use MailPoet\WP\Functions as WPFunctions; @@ -40,6 +41,7 @@ class TransactionalEmailsTest extends \MailPoetTest { $this->settings, ContainerWrapper::getInstance()->get(Template::class), ContainerWrapper::getInstance()->get(Renderer::class), + Stub::makeEmpty(WooCommerceHelper::class), $this->newsletters_repository ); } @@ -71,6 +73,7 @@ class TransactionalEmailsTest extends \MailPoetTest { $this->settings, ContainerWrapper::getInstance()->get(Template::class), ContainerWrapper::getInstance()->get(Renderer::class), + Stub::makeEmpty(WooCommerceHelper::class), $this->newsletters_repository ); $transactional_emails->init(); @@ -130,6 +133,7 @@ class TransactionalEmailsTest extends \MailPoetTest { $this->settings, ContainerWrapper::getInstance()->get(Template::class), $renderer, + Stub::makeEmpty(WooCommerceHelper::class), ContainerWrapper::getInstance()->get(NewslettersRepository::class) ); $transactional_emails->useTemplateForWoocommerceEmails(); diff --git a/tests/unit/WooCommerce/TransactionalEmailsTest.php b/tests/unit/WooCommerce/TransactionalEmailsTest.php index 68280a271a..8c9d62f5ab 100644 --- a/tests/unit/WooCommerce/TransactionalEmailsTest.php +++ b/tests/unit/WooCommerce/TransactionalEmailsTest.php @@ -5,6 +5,7 @@ namespace MailPoet\WooCommerce; use Codeception\Stub; use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Settings\SettingsController; +use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WooCommerce\TransactionalEmails\Renderer; use MailPoet\WooCommerce\TransactionalEmails\Template; use MailPoet\WP\Functions as WPFunctions; @@ -37,8 +38,9 @@ class TransactionalEmailsTest extends \MailPoetUnitTest { $settings = Stub::make(SettingsController::class); $template = Stub::make(Template::class); $renderer = Stub::make(Renderer::class); + $woocommerce_helper = Stub::make(WooCommerceHelper::class); $newsletters_repository = Stub::make(NewslettersRepository::class); - $transactional_emails = new TransactionalEmails($wp, $settings, $template, $renderer, $newsletters_repository); + $transactional_emails = new TransactionalEmails($wp, $settings, $template, $renderer, $woocommerce_helper, $newsletters_repository); expect($transactional_emails->getEmailHeadings())->equals([ 'new_account' => 'Test: New Order: #0001', 'processing_order' => 'Thank you for your order', diff --git a/views/newsletter/templates/blocks/woocommerceContent/completed_order.hbs b/views/newsletter/templates/blocks/woocommerceContent/completed_order.hbs index 8726a5f6b7..04d52cd8c2 100644 --- a/views/newsletter/templates/blocks/woocommerceContent/completed_order.hbs +++ b/views/newsletter/templates/blocks/woocommerceContent/completed_order.hbs @@ -1,11 +1,4 @@
- diff --git a/views/newsletter/templates/blocks/woocommerceContent/customer_note.hbs b/views/newsletter/templates/blocks/woocommerceContent/customer_note.hbs index 1b800c15d0..06390c166c 100644 --- a/views/newsletter/templates/blocks/woocommerceContent/customer_note.hbs +++ b/views/newsletter/templates/blocks/woocommerceContent/customer_note.hbs @@ -1,11 +1,4 @@ - diff --git a/views/newsletter/templates/blocks/woocommerceContent/new_account.hbs b/views/newsletter/templates/blocks/woocommerceContent/new_account.hbs index 9a6708a6b5..c72fa54d07 100644 --- a/views/newsletter/templates/blocks/woocommerceContent/new_account.hbs +++ b/views/newsletter/templates/blocks/woocommerceContent/new_account.hbs @@ -1,11 +1,4 @@ - diff --git a/views/newsletter/templates/blocks/woocommerceContent/processing_order.hbs b/views/newsletter/templates/blocks/woocommerceContent/processing_order.hbs index aa907cbce6..c1b82d3a3c 100644 --- a/views/newsletter/templates/blocks/woocommerceContent/processing_order.hbs +++ b/views/newsletter/templates/blocks/woocommerceContent/processing_order.hbs @@ -1,11 +1,4 @@ - diff --git a/views/newsletter/templates/blocks/woocommerceHeading/block.hbs b/views/newsletter/templates/blocks/woocommerceHeading/block.hbs index 76a98a1098..c940cd8aca 100644 --- a/views/newsletter/templates/blocks/woocommerceHeading/block.hbs +++ b/views/newsletter/templates/blocks/woocommerceHeading/block.hbs @@ -1,17 +1,4 @@ - diff --git a/views/newsletter/templates/components/sidebar/styles.hbs b/views/newsletter/templates/components/sidebar/styles.hbs index 81a143e34f..e9e03f8555 100644 --- a/views/newsletter/templates/components/sidebar/styles.hbs +++ b/views/newsletter/templates/components/sidebar/styles.hbs @@ -2,6 +2,19 @@