diff --git a/admin-spa/src/components/EmailBuilder/EmailBuilder.tsx b/admin-spa/src/components/EmailBuilder/EmailBuilder.tsx index 21e682e..050fdab 100644 --- a/admin-spa/src/components/EmailBuilder/EmailBuilder.tsx +++ b/admin-spa/src/components/EmailBuilder/EmailBuilder.tsx @@ -302,7 +302,7 @@ export function EmailBuilder({ blocks, onChange, variables = [] }: EmailBuilderP -
+
{editingBlock?.type === 'card' && ( <>
diff --git a/admin-spa/src/components/ui/rich-text-editor.tsx b/admin-spa/src/components/ui/rich-text-editor.tsx index e3571c8..b3af934 100644 --- a/admin-spa/src/components/ui/rich-text-editor.tsx +++ b/admin-spa/src/components/ui/rich-text-editor.tsx @@ -391,7 +391,7 @@ export function RichTextEditor({ -
+
, React.ComponentPropsWithoutRef ->(({ className, children, position = "popper", ...props }, ref) => ( - - - - (({ className, children, position = "popper", ...props }, ref) => { + // Get or create portal container inside the app for proper CSS scoping + const getPortalContainer = () => { + const appContainer = document.getElementById('woonoow-admin-app'); + if (!appContainer) return document.body; + + let portalRoot = document.getElementById('woonoow-select-portal'); + if (!portalRoot) { + portalRoot = document.createElement('div'); + portalRoot.id = 'woonoow-select-portal'; + appContainer.appendChild(portalRoot); + } + return portalRoot; + }; + + return ( + + - {children} - - - - -)) + + + {children} + + + + + ); +}) SelectContent.displayName = SelectPrimitive.Content.displayName const SelectLabel = React.forwardRef< diff --git a/includes/Core/Notifications/EmailRenderer.php b/includes/Core/Notifications/EmailRenderer.php index ac4c7e0..4b6b410 100644 --- a/includes/Core/Notifications/EmailRenderer.php +++ b/includes/Core/Notifications/EmailRenderer.php @@ -140,9 +140,12 @@ class EmailRenderer { */ private function get_variables($event_id, $data, $extra_data = []) { $variables = [ + 'site_name' => get_bloginfo('name'), + 'site_title' => get_bloginfo('name'), 'store_name' => get_bloginfo('name'), 'store_url' => home_url(), - 'site_title' => get_bloginfo('name'), + 'shop_url' => get_permalink(wc_get_page_id('shop')), + 'my_account_url' => get_permalink(wc_get_page_id('myaccount')), 'support_email' => get_option('admin_email'), 'current_year' => date('Y'), ]; @@ -611,8 +614,13 @@ class EmailRenderer { * @return string */ private function get_social_icon_url($platform, $color = 'white') { - // Use local PNG icons - $plugin_url = plugin_dir_url(dirname(dirname(dirname(__FILE__)))); + // Use plugin URL constant if available, otherwise calculate from file path + if (defined('WOONOOW_URL')) { + $plugin_url = WOONOOW_URL; + } else { + // File is at includes/Core/Notifications/EmailRenderer.php - need 4 levels up + $plugin_url = plugin_dir_url(dirname(dirname(dirname(dirname(__FILE__))))); + } $filename = sprintf('mage--%s-%s.png', $platform, $color); return $plugin_url . 'assets/icons/' . $filename; }