Load user styles in the email editor properly

[MAILPOET-6335]
This commit is contained in:
Rostislav Wolny
2024-12-10 15:57:53 +01:00
committed by Aschepikov
parent 0f7009438c
commit fdc0d15b63
4 changed files with 9 additions and 1 deletions

View File

@ -339,6 +339,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\EmailEditor\Engine\Email_Api_Controller::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Email_Api_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Settings_Controller::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Settings_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Theme_Controller::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Theme_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\User_Theme::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Send_Preview_Email::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Send_Preview_Email::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor::class)->setPublic(true);

View File

@ -8,6 +8,7 @@ use MailPoet\Config\Installer;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\EmailEditor\Engine\Settings_Controller; use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller; use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoet\EmailEditor\Engine\User_Theme;
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as EditorInitController; use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as EditorInitController;
use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Settings\SettingsController as MailPoetSettings; use MailPoet\Settings\SettingsController as MailPoetSettings;
@ -22,6 +23,8 @@ class EditorPageRenderer {
private Theme_Controller $themeController; private Theme_Controller $themeController;
private User_Theme $userTheme;
private CdnAssetUrl $cdnAssetUrl; private CdnAssetUrl $cdnAssetUrl;
private ServicesChecker $servicesChecker; private ServicesChecker $servicesChecker;
@ -39,6 +42,7 @@ class EditorPageRenderer {
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
SubscribersFeature $subscribersFeature, SubscribersFeature $subscribersFeature,
Theme_Controller $themeController, Theme_Controller $themeController,
User_Theme $userTheme,
MailPoetSettings $mailpoetSettings, MailPoetSettings $mailpoetSettings,
NewslettersRepository $newslettersRepository NewslettersRepository $newslettersRepository
) { ) {
@ -48,6 +52,7 @@ class EditorPageRenderer {
$this->servicesChecker = $servicesChecker; $this->servicesChecker = $servicesChecker;
$this->subscribersFeature = $subscribersFeature; $this->subscribersFeature = $subscribersFeature;
$this->themeController = $themeController; $this->themeController = $themeController;
$this->userTheme = $userTheme;
$this->mailpoetSettings = $mailpoetSettings; $this->mailpoetSettings = $mailpoetSettings;
$this->newslettersRepository = $newslettersRepository; $this->newslettersRepository = $newslettersRepository;
} }
@ -107,6 +112,7 @@ class EditorPageRenderer {
'current_wp_user_email' => esc_js($currentUserEmail), 'current_wp_user_email' => esc_js($currentUserEmail),
'editor_settings' => $this->settingsController->get_settings(), 'editor_settings' => $this->settingsController->get_settings(),
'editor_theme' => $this->themeController->get_theme()->get_raw_data(), 'editor_theme' => $this->themeController->get_theme()->get_raw_data(),
'user_theme_post_id' => $this->userTheme->get_user_theme_post()->ID,
'urls' => [ 'urls' => [
'listings' => admin_url('admin.php?page=mailpoet-newsletters'), 'listings' => admin_url('admin.php?page=mailpoet-newsletters'),
], ],

View File

@ -6,6 +6,7 @@ interface Window {
cdn_url: string; cdn_url: string;
is_premium_plugin_active: boolean; is_premium_plugin_active: boolean;
current_wp_user_email: string; current_wp_user_email: string;
user_theme_post_id: number;
urls: { urls: {
listings: string; listings: string;
}; };

View File

@ -25,7 +25,7 @@ export function getInitialState(): State {
editorSettings: getEditorSettings(), editorSettings: getEditorSettings(),
theme: getEditorTheme(), theme: getEditorTheme(),
styles: { styles: {
globalStylesPostId: 153, // Todo - fetch from DB globalStylesPostId: window.MailPoetEmailEditor.user_theme_post_id,
}, },
autosaveInterval: 60, autosaveInterval: 60,
cdnUrl: getCdnUrl(), cdnUrl: getCdnUrl(),