Initial commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* @var $base_url string
|
||||
* @var $logo string
|
||||
* @var $menuItems array
|
||||
*/
|
||||
?>
|
||||
<?php do_action('fluent_crm/before_admin_app_wrap'); ?>
|
||||
<div class="fluentcrm_app_wrapper">
|
||||
<div class="fluentcrm_main_menu_items">
|
||||
<div class="fluentcrm_menu_logo_holder">
|
||||
<a href="<?php echo esc_url($base_url); ?>">
|
||||
<img style="height: 36px;" src="<?php echo esc_url($logo); ?>" />
|
||||
<?php if(defined('FLUENTCAMPAIGN_PLUGIN_PATH')): ?>
|
||||
<span><?php esc_html_e('Pro', 'fluent-crm'); ?></span>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="fluentcrm_handheld"><span class="dashicons dashicons-menu-alt3"></span></div>
|
||||
<ul class="fluentcrm_menu">
|
||||
<?php foreach ($menuItems as $item): ?>
|
||||
<?php $hasSubMenu = !empty($item['sub_items']); ?>
|
||||
<li data-key="<?php echo esc_attr($item['key']); ?>" class="fluentcrm_menu_item <?php echo ($hasSubMenu) ? 'fluentcrm_has_sub_items' : ''; ?> fluentcrm_item_<?php echo esc_attr($item['key']); ?>">
|
||||
<a class="fluentcrm_menu_primary" href="<?php echo esc_url($item['permalink']); ?>">
|
||||
<?php echo esc_attr($item['label']); ?>
|
||||
<?php if($hasSubMenu){ ?>
|
||||
<span class="fc_submenu_handler dashicons dashicons-arrow-down-alt2"></span>
|
||||
<?php } ?></a>
|
||||
<?php if($hasSubMenu): ?>
|
||||
|
||||
<?php $layoutClass = \FluentCrm\Framework\Support\Arr::get($item, 'layout_class'); ?>
|
||||
<div class="fluentcrm_submenu_items <?php echo esc_attr($layoutClass); ?>">
|
||||
<?php foreach ($item['sub_items'] as $sub_item): ?>
|
||||
<a href="<?php echo esc_url($sub_item['permalink']); ?>">
|
||||
<?php
|
||||
if(!$layoutClass) {
|
||||
echo esc_html($sub_item['label']);
|
||||
} else {
|
||||
?>
|
||||
<div class="fc_menu_card">
|
||||
<span class="fc_menu_title"><?php echo esc_html($sub_item['label']); ?></span>
|
||||
<?php if(!empty($sub_item['description'])): ?>
|
||||
<p class="fc_menu_description"><?php echo wp_kses_post($sub_item['description']); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div id='fluentcrm_app'></div>
|
||||
<?php do_action('fluent_crm/admin_app'); ?>
|
||||
</div>
|
||||
@@ -0,0 +1,307 @@
|
||||
<?php
|
||||
/**
|
||||
* @var $base_url string
|
||||
* @var $logo string
|
||||
* @var $menuItems array
|
||||
* @var $proData array
|
||||
* @var $renderTopMenuBar bool
|
||||
*/
|
||||
?>
|
||||
<?php do_action('fluent_crm/before_admin_app_wrap'); ?>
|
||||
<div class="fluentcrm_app_wrapper">
|
||||
<?php
|
||||
// Extract 'settings' menu (if present) so it's not rendered in the center list
|
||||
$fcrm_settings_item = null;
|
||||
if (!empty($menuItems) && is_array($menuItems)) {
|
||||
foreach ($menuItems as $mi) {
|
||||
if (!empty($mi['key']) && $mi['key'] === 'settings') {
|
||||
$fcrm_settings_item = $mi;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<?php if (false !== $renderTopMenuBar) : ?>
|
||||
<div class="fcrm_topbar">
|
||||
<div class="fcrm_topbar_left">
|
||||
<a href="<?php echo esc_url($base_url); ?>">
|
||||
<img src="<?php echo esc_url($logo); ?>" alt="FluentCRM Logo" />
|
||||
<?php if(defined('FLUENTCAMPAIGN_PLUGIN_PATH')): ?>
|
||||
<span><?php esc_html_e('Pro', 'fluent-crm'); ?></span>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="fcrm_topbar_center">
|
||||
<ul class="fcrm_menu">
|
||||
<li class="fcrm_close_menu_btn_wrap">
|
||||
<span class="fcrm_close_menu_btn">
|
||||
<svg class="cross" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.8337 4.1665L4.16699 15.8332M4.16699 4.1665L15.8337 15.8332" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</li>
|
||||
<?php foreach ($menuItems as $item): ?>
|
||||
<?php
|
||||
$hasSubMenu = !empty($item['sub_items']);
|
||||
if (!empty($item['key']) && $item['key'] === 'settings') {
|
||||
// skip rendering settings in the center menu
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<li data-key="<?php echo esc_attr($item['key']); ?>" class="fcrm_menu_item <?php echo ($hasSubMenu) ? 'fcrm_has_sub_items' : ''; ?> fcrm_item_<?php echo esc_attr($item['key']); ?>">
|
||||
<a class="fcrm_menu_primary" href="<?php echo esc_url($item['permalink']); ?>">
|
||||
<?php echo esc_attr($item['label']); ?>
|
||||
<?php if($hasSubMenu){ ?>
|
||||
<span class="fcrm_submenu_handler">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.99999 10.879L13.7125 7.1665L14.773 8.227L9.99999 13L5.22699 8.227L6.28749 7.1665L9.99999 10.879Z" fill="#99A0AE"/>
|
||||
</svg>
|
||||
</span>
|
||||
<?php } ?></a>
|
||||
<?php if($hasSubMenu): ?>
|
||||
|
||||
<?php $layoutClass = \FluentCrm\Framework\Support\Arr::get($item, 'layout_class'); ?>
|
||||
<div class="fcrm_submenu_items <?php echo esc_attr(str_replace('fc_', 'fcrm_', (string)$layoutClass)); ?>">
|
||||
<?php foreach ($item['sub_items'] as $sub_item): ?>
|
||||
<a href="<?php echo esc_url($sub_item['permalink']); ?>">
|
||||
<?php
|
||||
if(!$layoutClass) {
|
||||
echo esc_html($sub_item['label']);
|
||||
} else {
|
||||
?>
|
||||
<div class="fcrm_menu_card <?php if (isset($sub_item['icon'])) { ?>fcrm_menu_card_with_icon<?php } ?>">
|
||||
<?php if (isset($sub_item['icon'])) { ?>
|
||||
<span class="fcrm_menu_icon">
|
||||
<?php echo $sub_item['icon']; ?>
|
||||
</span>
|
||||
<?php } ?>
|
||||
<span class="fcrm_menu_title"><?php echo esc_html($sub_item['label']); ?></span>
|
||||
<?php if(!empty($sub_item['description'])): ?>
|
||||
<p class="fcrm_menu_description"><?php echo wp_kses_post($sub_item['description']); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="fcrm_topbar_right" aria-label="Topbar actions">
|
||||
<div id="fcrm_admin_menu_search"></div>
|
||||
<?php if ($fcrm_settings_item): ?>
|
||||
<div class="fcrm_icon_menu fcrm_settings_menu" data-key="settings">
|
||||
<a href="<?php echo esc_url($fcrm_settings_item['permalink']); ?>" class="fcrm_icon_btn" aria-label="Settings">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M2.5 9.99998C2.5 9.35123 2.5825 8.72273 2.737 8.12198C3.15135 8.14377 3.56365 8.05055 3.92833 7.85264C4.29301 7.65472 4.59586 7.35983 4.8034 7.00054C5.01095 6.64126 5.1151 6.23158 5.10436 5.8168C5.09361 5.40202 4.96837 4.99829 4.7425 4.65023C5.64921 3.75816 6.7681 3.11161 7.99375 2.77148C8.18199 3.14159 8.46898 3.45238 8.82294 3.66947C9.1769 3.88655 9.58402 4.00145 9.99925 4.00145C10.4145 4.00145 10.8216 3.88655 11.1756 3.66947C11.5295 3.45238 11.8165 3.14159 12.0048 2.77148C13.2304 3.11161 14.3493 3.75816 15.256 4.65023C15.0299 4.99835 14.9045 5.40224 14.8936 5.81721C14.8828 6.23218 14.987 6.64206 15.1946 7.00149C15.4023 7.36093 15.7054 7.65591 16.0703 7.8538C16.4352 8.05168 16.8477 8.14476 17.2623 8.12273C17.4167 8.72273 17.4993 9.35123 17.4993 9.99998C17.4993 10.6487 17.4167 11.2772 17.2623 11.878C16.8478 11.8561 16.4354 11.9492 16.0706 12.147C15.7059 12.3449 15.4029 12.6398 15.1953 12.9991C14.9876 13.3584 14.8834 13.7681 14.8941 14.183C14.9048 14.5978 15.0301 15.0016 15.256 15.3497C14.3493 16.2418 13.2304 16.8884 12.0048 17.2285C11.8165 16.8584 11.5295 16.5476 11.1756 16.3305C10.8216 16.1134 10.4145 15.9985 9.99925 15.9985C9.58402 15.9985 9.1769 16.1134 8.82294 16.3305C8.46898 16.5476 8.18199 16.8584 7.99375 17.2285C6.7681 16.8884 5.64921 16.2418 4.7425 15.3497C4.96863 15.0016 5.09405 14.5977 5.10488 14.1828C5.11571 13.7678 5.01152 13.3579 4.80386 12.9985C4.59619 12.639 4.29314 12.3441 3.92823 12.1462C3.56332 11.9483 3.15078 11.8552 2.73625 11.8772C2.5825 11.278 2.5 10.6495 2.5 9.99998ZM6.103 12.25C6.5755 13.0682 6.7105 14.0095 6.526 14.893C6.832 15.1105 7.1575 15.2987 7.49875 15.4555C8.18625 14.8396 9.07699 14.4993 10 14.5C10.945 14.5 11.8285 14.8532 12.5013 15.4555C12.8425 15.2987 13.168 15.1105 13.474 14.893C13.2846 13.99 13.4352 13.0488 13.897 12.25C14.358 11.4508 15.0978 10.8499 15.9745 10.5625C16.0092 10.1883 16.0092 9.81168 15.9745 9.43748C15.0975 9.15028 14.3574 8.54935 13.8962 7.74998C13.4345 6.95118 13.2838 6.01001 13.4733 5.10698C13.1673 4.88943 12.8417 4.7011 12.5005 4.54448C11.8132 5.16018 10.9228 5.50044 10 5.49998C9.07699 5.50063 8.18625 5.16036 7.49875 4.54448C7.1576 4.7011 6.83192 4.88943 6.526 5.10698C6.71542 6.01001 6.56479 6.95118 6.103 7.74998C5.64203 8.5492 4.90224 9.15012 4.0255 9.43748C3.99081 9.81168 3.99081 10.1883 4.0255 10.5625C4.90252 10.8497 5.6426 11.4506 6.10375 12.25H6.103ZM10 12.25C9.40326 12.25 8.83097 12.0129 8.40901 11.591C7.98705 11.169 7.75 10.5967 7.75 9.99998C7.75 9.40325 7.98705 8.83095 8.40901 8.40899C8.83097 7.98704 9.40326 7.74998 10 7.74998C10.5967 7.74998 11.169 7.98704 11.591 8.40899C12.0129 8.83095 12.25 9.40325 12.25 9.99998C12.25 10.5967 12.0129 11.169 11.591 11.591C11.169 12.0129 10.5967 12.25 10 12.25ZM10 10.75C10.1989 10.75 10.3897 10.671 10.5303 10.5303C10.671 10.3897 10.75 10.1989 10.75 9.99998C10.75 9.80107 10.671 9.61031 10.5303 9.46965C10.3897 9.329 10.1989 9.24998 10 9.24998C9.80109 9.24998 9.61032 9.329 9.46967 9.46965C9.32902 9.61031 9.25 9.80107 9.25 9.99998C9.25 10.1989 9.32902 10.3897 9.46967 10.5303C9.61032 10.671 9.80109 10.75 10 10.75Z" fill="#0E121B"/>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div id="fcrm_theme"></div>
|
||||
<?php if (!empty($frontendPortalSettings['user_avatar'])): ?>
|
||||
<div class="fcrm_portal_profile_menu">
|
||||
<button type="button" class="fcrm_portal_profile_button" aria-label="<?php esc_attr_e('Open profile menu', 'fluent-crm'); ?>">
|
||||
<span class="fcrm_portal_profile_avatar"><?php echo $frontendPortalSettings['user_avatar']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
|
||||
<svg class="fcrm_portal_profile_chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
||||
<path d="M5 7.5L10 12.5L15 7.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="fcrm_portal_profile_dropdown">
|
||||
<div class="fcrm_portal_profile_heading">
|
||||
<span class="fcrm_portal_profile_avatar"><?php echo $frontendPortalSettings['user_avatar']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
|
||||
<div class="fcrm_portal_profile_identity">
|
||||
<p class="fcrm_portal_profile_name"><?php echo esc_html($frontendPortalSettings['user_name']); ?></p>
|
||||
<p class="fcrm_portal_profile_email"><?php echo esc_html($frontendPortalSettings['user_email']); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="fcrm_portal_profile_actions">
|
||||
<?php if (!empty($frontendPortalSettings['show_wp_admin_link']) && !empty($frontendPortalSettings['wp_admin_url'])): ?>
|
||||
<li>
|
||||
<a id="fcrm_wp_admin_link" href="<?php echo esc_url($frontendPortalSettings['wp_admin_url']); ?>">
|
||||
<img src="<?php echo esc_url(admin_url('images/wordpress-logo.svg')); ?>" alt="<?php esc_attr_e('WordPress', 'fluent-crm'); ?>" />
|
||||
<span><?php esc_html_e('WP Admin', 'fluent-crm'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($frontendPortalSettings['logout_url'])): ?>
|
||||
<li>
|
||||
<a href="<?php echo esc_url($frontendPortalSettings['logout_url']); ?>">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
||||
<path d="M10 17L15 12L10 7" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M15 12H4" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12 4H18C18.5523 4 19 4.44772 19 5V19C19 19.5523 18.5523 20 18 20H12" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span><?php esc_html_e('Log out', 'fluent-crm'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="fcrm_handheld fcrm_humberg_menu">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
<?php if (!$proData['has_pro']) : ?>
|
||||
<a
|
||||
class="el-button el-button--primary el-button--small"
|
||||
href="<?php echo esc_url($proData['permalink']); ?>"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
<?php echo esc_attr($proData['label']); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var MOBILE_MENU_BREAKPOINT = 1100;
|
||||
var toggler = document.querySelector('.fcrm_handheld');
|
||||
var menu = document.querySelector('ul.fcrm_menu');
|
||||
var closeMenuBtn = document.querySelector('.fcrm_close_menu_btn');
|
||||
var settingsWrap = document.querySelector('.fcrm_settings_menu');
|
||||
var profileWrap = document.querySelector('.fcrm_portal_profile_menu');
|
||||
var profileButton = profileWrap ? profileWrap.querySelector('.fcrm_portal_profile_button') : null;
|
||||
|
||||
if (toggler && menu) {
|
||||
// Toggle mobile menu
|
||||
toggler.addEventListener('click', function(e) {
|
||||
e.stopPropagation();
|
||||
menu.classList.toggle('fcrm_menu_open');
|
||||
});
|
||||
|
||||
if (closeMenuBtn) {
|
||||
closeMenuBtn.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
menu.classList.remove('fcrm_menu_open');
|
||||
});
|
||||
}
|
||||
|
||||
// Handle submenu toggles on mobile
|
||||
var menuItems = menu.querySelectorAll('.fcrm_has_sub_items');
|
||||
menuItems.forEach(function(item) {
|
||||
var primaryLink = item.querySelector('.fcrm_menu_primary');
|
||||
if (primaryLink) {
|
||||
primaryLink.addEventListener('click', function(e) {
|
||||
// Only prevent default and toggle on mobile
|
||||
if (window.innerWidth <= MOBILE_MENU_BREAKPOINT) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
item.classList.toggle('fcrm_submenu_open');
|
||||
|
||||
// Close other open submenus
|
||||
menuItems.forEach(function(otherItem) {
|
||||
if (otherItem !== item && otherItem.classList.contains('fcrm_submenu_open')) {
|
||||
otherItem.classList.remove('fcrm_submenu_open');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Desktop: close hovered submenu immediately after parent/child click.
|
||||
var links = item.querySelectorAll('a');
|
||||
links.forEach(function(link) {
|
||||
link.addEventListener('click', function() {
|
||||
if (window.innerWidth <= MOBILE_MENU_BREAKPOINT) {
|
||||
return;
|
||||
}
|
||||
menu.querySelectorAll('.fcrm_submenu_items.fcrm_force_hide').forEach(function(submenu) {
|
||||
submenu.classList.remove('fcrm_force_hide');
|
||||
});
|
||||
var currentSubmenu = item.querySelector('.fcrm_submenu_items');
|
||||
if (currentSubmenu) {
|
||||
currentSubmenu.classList.add('fcrm_force_hide');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Re-enable hover behavior once the cursor leaves the menu item.
|
||||
item.addEventListener('mouseleave', function() {
|
||||
var currentSubmenu = item.querySelector('.fcrm_submenu_items');
|
||||
if (currentSubmenu) {
|
||||
currentSubmenu.classList.remove('fcrm_force_hide');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Prevent stale forced-hide state after viewport resize.
|
||||
window.addEventListener('resize', function() {
|
||||
menu.querySelectorAll('.fcrm_submenu_items.fcrm_force_hide').forEach(function(submenu) {
|
||||
submenu.classList.remove('fcrm_force_hide');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (settingsWrap) {
|
||||
// Toggle on click for touch devices, but allow anchor navigation
|
||||
settingsWrap.addEventListener('click', function(e){
|
||||
if (e.target.closest('a')) {
|
||||
return; // let the link navigate normally
|
||||
}
|
||||
e.stopPropagation();
|
||||
settingsWrap.classList.toggle('fcrm_open');
|
||||
});
|
||||
}
|
||||
|
||||
if (profileWrap && profileButton) {
|
||||
profileButton.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
profileWrap.classList.toggle('is-open');
|
||||
});
|
||||
}
|
||||
|
||||
var wpAdminLink = document.getElementById('fcrm_wp_admin_link');
|
||||
if (wpAdminLink) {
|
||||
var wpAdminBaseUrl = wpAdminLink.getAttribute('href').split('#')[0];
|
||||
var syncWpAdminLink = function() {
|
||||
var hash = window.location.hash || '#/';
|
||||
wpAdminLink.setAttribute('href', wpAdminBaseUrl + hash);
|
||||
};
|
||||
|
||||
syncWpAdminLink();
|
||||
window.addEventListener('hashchange', syncWpAdminLink);
|
||||
}
|
||||
|
||||
// Consolidated document click handler for closing menus
|
||||
document.addEventListener('click', function(e) {
|
||||
// Close mobile menu if open
|
||||
if (menu && menu.classList.contains('fcrm_menu_open') &&
|
||||
!menu.contains(e.target) &&
|
||||
!toggler.contains(e.target)) {
|
||||
menu.classList.remove('fcrm_menu_open');
|
||||
// Close all submenus
|
||||
var openSubmenus = menu.querySelectorAll('.fcrm_submenu_open');
|
||||
openSubmenus.forEach(function(item) {
|
||||
item.classList.remove('fcrm_submenu_open');
|
||||
});
|
||||
}
|
||||
|
||||
// Close settings menu if open
|
||||
if (settingsWrap && settingsWrap.classList.contains('fcrm_open')) {
|
||||
settingsWrap.classList.remove('fcrm_open');
|
||||
}
|
||||
|
||||
if (profileWrap && profileWrap.classList.contains('is-open') && !profileWrap.contains(e.target)) {
|
||||
profileWrap.classList.remove('is-open');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php else : ?>
|
||||
<div id="fcrm_admin_menu_search" style="display: none;"></div>
|
||||
<div id="fcrm_theme" style="display: none;"></div>
|
||||
<?php endif; ?>
|
||||
<div id='fluentcrm_app'></div>
|
||||
<?php do_action('fluent_crm/admin_app'); ?>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title><?php esc_html_e('FluentCRM - Setup Wizard', 'fluent-crm'); ?></title>
|
||||
<?php do_action('admin_print_styles'); ?>
|
||||
<?php do_action('admin_head'); ?>
|
||||
</head>
|
||||
<body class="fluentcrm-setup wp-core-ui">
|
||||
|
||||
<div id="fluentcrm_setup_wizard"></div>
|
||||
<?php
|
||||
if (!function_exists('media_handle_upload')) {
|
||||
require_once(ABSPATH . 'wp-admin/includes/image.php');
|
||||
require_once(ABSPATH . 'wp-admin/includes/file.php');
|
||||
require_once(ABSPATH . 'wp-admin/includes/media.php');
|
||||
}
|
||||
|
||||
wp_enqueue_media(); // add media
|
||||
wp_print_scripts(); // window.wp
|
||||
do_action('admin_footer');
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
/**
|
||||
* @var $config array
|
||||
**/
|
||||
|
||||
$template = \FluentCrm\Framework\Support\Arr::get($config, 'design_template', 'simple');
|
||||
|
||||
$align = $template === 'classic' ? 'left' : 'center';
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<!--[if gte mso 15]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<meta charset="<?php bloginfo('charset'); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="profile" href="https://gmpg.org/xfn/11">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<?php do_action('fluent_crm/email_header', 'block_editor'); ?>
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH . 'app/Views/emails/block_editor/block-styles.php'); ?>
|
||||
</head>
|
||||
<body class="fc_block_template_body template_<?php echo esc_attr($template); ?>" style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<?php if ($preHeader): ?><span class="fcPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;"><?php echo esc_attr($preHeader); ?></span><?php endif; ?>
|
||||
<center>
|
||||
<table<?php if (fluentcrm_is_rtl()) {
|
||||
echo ' dir="rtl"';
|
||||
} ?> class="fc_block_template" align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="templateWrapper"
|
||||
style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;color:inherit;">
|
||||
<tr>
|
||||
<td align="<?php echo $align; ?>" valign="top" id="bodyCell"
|
||||
style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0px;width: 100%;border-top: 0;">
|
||||
<!-- BEGIN TEMPLATE // -->
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600" style="width:600px;color:inherit;">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer"
|
||||
style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;color:inherit;">
|
||||
<tr>
|
||||
<td valign="top" id="templateBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 0;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%"
|
||||
style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" class="fcTextContentBody"
|
||||
style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;border-top: 0;padding-top: 0;padding-bottom: 9px;color:inherit;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody class="mcnTextBlockOuter">
|
||||
<tr>
|
||||
<td class="fc_email_body" align="left" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 16px;line-height: 160%;text-align: left;color:inherit;">
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if (!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td valign="top" id="templateFooter" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0; text-align: center;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" class="fcTextContent" style="padding: 0;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 12px;line-height: 150%;text-align: center;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if (!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p>
|
||||
<?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
<!-- // END TEMPLATE -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,382 @@
|
||||
<?php
|
||||
$alignLeft = 'left';
|
||||
$alignRight = 'right';
|
||||
if(fluentcrm_is_rtl()) {
|
||||
$alignLeft = 'right';
|
||||
$alignRight = 'left';
|
||||
}
|
||||
$content_font_family = $config['content_font_family'];
|
||||
$sanitizeFontStack = function ($fontStack) {
|
||||
$fontStack = wp_strip_all_tags((string)$fontStack);
|
||||
return preg_replace('/[^a-zA-Z0-9,\s\-_"\'\.]/', '', $fontStack);
|
||||
};
|
||||
$contentFontCss = $sanitizeFontStack($content_font_family);
|
||||
?>
|
||||
|
||||
<style type="text/css">
|
||||
<?php echo \FluentCrm\App\Services\Helper::generateThemePrefCss(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</style>
|
||||
|
||||
<style type="text/css">
|
||||
.fc_column_content {
|
||||
padding: 0;
|
||||
}
|
||||
body {
|
||||
<?php if ($contentFontCss): ?>font-family: <?php echo $contentFontCss; ?>;<?php endif; ?>
|
||||
line-height: 150%;
|
||||
}
|
||||
p {
|
||||
<?php if ($contentFontCss): ?>font-family: <?php echo $contentFontCss; ?>;<?php endif; ?>
|
||||
line-height: 150%;
|
||||
font-size: 16px;
|
||||
width: 100%;
|
||||
}
|
||||
li, ol {
|
||||
<?php if ($contentFontCss): ?>font-family: <?php echo $contentFontCss; ?>;<?php endif; ?>
|
||||
line-height: 120%;
|
||||
font-size: 16px;
|
||||
margin-bottom: 5px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
#footer_section p, #footer_section li {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
line-height: 120%;
|
||||
<?php if ($contentFontCss): ?>font-family: <?php echo $contentFontCss; ?>;<?php endif; ?>
|
||||
}
|
||||
|
||||
.has-text-align-right {
|
||||
text-align: <?php echo esc_attr($alignRight); ?> !important;
|
||||
}
|
||||
.has-text-align-left {
|
||||
text-align: <?php echo esc_attr($alignLeft); ?> !important;
|
||||
}
|
||||
.has-text-align-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.alignleft {
|
||||
text-align: <?php echo esc_attr($alignLeft);?> !important;
|
||||
}
|
||||
|
||||
.alignright {
|
||||
text-align: <?php echo esc_attr($alignRight);?> !important;
|
||||
}
|
||||
img.alignright {
|
||||
float: right;
|
||||
}
|
||||
img.alignleft {
|
||||
float: left;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
img, a img {
|
||||
border: 0;
|
||||
height: auto;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
max-width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.fcPreviewText {
|
||||
display: none !important;
|
||||
}
|
||||
img {
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
table {
|
||||
mso-table-lspace: 0pt;
|
||||
mso-table-rspace: 0pt;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
p, a, li, td, blockquote {
|
||||
mso-line-height-rule: exactly;
|
||||
}
|
||||
|
||||
ul li {
|
||||
padding-bottom: 0px;
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
ul ol {
|
||||
padding-bottom: 0px;
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
a[href^=tel], a[href^=sms] {
|
||||
color: inherit;
|
||||
cursor: default;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
p, a, li, td, body, table, blockquote {
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
a[x-apple-data-detectors] {
|
||||
color: inherit !important;
|
||||
text-decoration: none !important;
|
||||
font-size: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 24px;
|
||||
font-style: normal;
|
||||
line-height: 140%;
|
||||
letter-spacing: normal;
|
||||
margin: 7px 0px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
line-height: 140%;
|
||||
letter-spacing: normal;
|
||||
/*margin: 7px 0px;*/
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
line-height: 140%;
|
||||
letter-spacing: normal;
|
||||
/*margin: 7px 0px;*/
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 17px;
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
line-height: 125%;
|
||||
letter-spacing: normal;
|
||||
/*margin: 7px 0px;*/
|
||||
}
|
||||
.aligncenter {
|
||||
text-align: center !important;
|
||||
}
|
||||
.alignright {
|
||||
text-align: <?php echo esc_attr($alignRight); ?> !important;
|
||||
}
|
||||
/*
|
||||
* Classic Editor
|
||||
*/
|
||||
.wp-block-buttons .wp-block-button a {
|
||||
display: inline-block;
|
||||
}
|
||||
.wp-block-image.aligncenter img,
|
||||
img.aligncenter {
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.wp-block-image.alignright img,
|
||||
img.alignright {
|
||||
display: block;
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
img.alignright {
|
||||
float: right;
|
||||
}
|
||||
img.alignleft {
|
||||
float: left;
|
||||
}
|
||||
|
||||
<?php if(fluentcrm_is_rtl()) : ?>
|
||||
p,ul,li {
|
||||
text-align: right;
|
||||
}
|
||||
<?php endif; ?>
|
||||
|
||||
/* Latest Post Block */
|
||||
.fc_latest_post_item {
|
||||
border:1px solid #edeef4;
|
||||
}
|
||||
.fc_latest_post_item tbody tr td .fc_latest_post_overlay {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.fc_latest_post_item tbody tr td {
|
||||
position: relative;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 tbody tr td .fc_latest_post_overlay,
|
||||
.fc_latest_post_item.default tbody tr td .fc_latest_post_overlay {
|
||||
height: 350px;
|
||||
}
|
||||
.fc_latest_post_item tbody tr td img {
|
||||
width: 100%;
|
||||
max-height: 400px;
|
||||
display: block;
|
||||
object-fit: cover;
|
||||
}
|
||||
.fc_latest_post_item.layout-6,
|
||||
.fc_latest_post_item.layout-4 {
|
||||
border: none;
|
||||
border-bottom: 1px solid #edeef4;
|
||||
}
|
||||
.fc_latest_post_item.layout-5 {
|
||||
border: none;
|
||||
}
|
||||
.fc_latest_post_item.layout-6:first-child {
|
||||
border-top: 1px solid #edeef4;
|
||||
}
|
||||
.fc_latest_post_item.layout-6 .fc_latest_post_content .title {
|
||||
font-size: 20px;
|
||||
}
|
||||
.fc_latest_post_item.layout-6 .fc_latest_post_content .meta {
|
||||
margin: 0;
|
||||
}
|
||||
.fc_latest_post_item.layout-6 .fc_latest_post_overlay {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .title {
|
||||
font-size: 22px;
|
||||
line-height: 1.4;
|
||||
margin: 0 0 12px 0;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .description {
|
||||
margin: 0 0 15px 0;
|
||||
font-size: 15px;
|
||||
line-height: 160%;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .fc_latest_post_btn {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.fc_latest_post_item .fc_latest_post_content .meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .meta .author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .meta .author img {
|
||||
margin-right: 7px;
|
||||
flex: none;
|
||||
}
|
||||
.fc_latest_post_item .fc_latest_post_content .meta .comments {
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
}
|
||||
.fc_latest_post_item.layout-2 .fc_latest_post_content .fc_latest_post_btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.fc_latest_post_item.layout-3 tbody tr td .fc_latest_post_overlay {
|
||||
height: 220px;
|
||||
}
|
||||
.fc_latest_post_item.layout-4 .fc_latest_post_content .description {
|
||||
margin: 0;
|
||||
}
|
||||
.fc_latest_post_item.layout-4 .fc_latest_post_content .meta {
|
||||
margin: 20px 0 0 0;
|
||||
}
|
||||
.fc_latest_post_item.layout-5 {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.fc_latest_post_item.layout-5 tbody tr td {
|
||||
border: none;
|
||||
padding: 5px 0;
|
||||
display: flex;
|
||||
}
|
||||
.fc_latest_post_item.layout-5 tbody tr td a {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.fc_latest_post_item.layout-5 tbody tr td .fc_latest_post_marker {
|
||||
display: block;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background: #000;
|
||||
border-radius: 20px;
|
||||
margin-top: 8px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 {
|
||||
border: none;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 .fc_latest_post_content {
|
||||
padding: 0;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 .fc_latest_post_content .title {
|
||||
font-size: 25px;
|
||||
padding: 0;
|
||||
line-height: 1.4;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 .fc_latest_post_content .fc_latest_post_btn {
|
||||
border-radius: 4px;
|
||||
font-weight: 500;
|
||||
padding: 4px 14px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.fc_latest_post_item.layout-4 > tbody .fc_latest_post_item_tr .fc_latest_post_img img,
|
||||
.fc_latest_post_item.layout-3 > tbody .fc_latest_post_item_tr .fc_latest_post_img img {
|
||||
height: 100% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
.fc_latest_post_item.layout-4 > tbody .fc_latest_post_item_tr .fc_latest_post_img {
|
||||
padding: 0 !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.fc_latest_post_item.layout-3 > tbody .fc_latest_post_item_tr .fc_latest_post_img {
|
||||
padding: 10px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.fc_latest_post_item.layout-4 > tbody .fc_latest_post_item_tr .fc_latest_post_img,
|
||||
.fc_latest_post_item.layout-3 > tbody .fc_latest_post_item_tr .fc_latest_post_img,
|
||||
.fc_latest_post_item.layout-2 > tbody .fc_latest_post_item_tr .fc_latest_post_img {
|
||||
width: 100% !important;
|
||||
}
|
||||
.fc_latest_post_item.layout-2 > tbody .fc_latest_post_item_tr td,
|
||||
.fc_latest_post_item.layout-2 > tbody .fc_latest_post_item_tr,
|
||||
.fc_latest_post_item.layout-3 > tbody .fc_latest_post_item_tr td,
|
||||
.fc_latest_post_item.layout-3 > tbody .fc_latest_post_item_tr,
|
||||
.fc_latest_post_item.layout-4 > tbody .fc_latest_post_item_tr td,
|
||||
.fc_latest_post_item.layout-4 > tbody .fc_latest_post_item_tr {
|
||||
display:block !important;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.fc_latest_post_item.layout-7 tbody tr td .fc_latest_post_overlay,
|
||||
.fc_latest_post_item.default tbody tr td .fc_latest_post_overlay {
|
||||
height: 200px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,124 @@
|
||||
<!doctype html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<!--[if gte mso 15]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
|
||||
<link rel="profile" href="https://gmpg.org/xfn/11">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<?php do_action('fluent_crm/email_header', 'classic'); ?>
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH.'app/Views/emails/common-style.php'); ?>
|
||||
</head>
|
||||
<body class="fc_classic_template" style="background: none no-repeat center/cover;height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<?php if ($preHeader): ?><span class="fcPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;"><?php echo esc_html($preHeader); ?></span><?php endif; ?>
|
||||
<center>
|
||||
<table<?php if(fluentcrm_is_rtl()) { echo ' dir="rtl"'; } ?> align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="templateWrapper" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;color:inherit;">
|
||||
<tr>
|
||||
<td align="left" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
|
||||
<!-- BEGIN TEMPLATE // -->
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" style="max-width:100%;color:inherit">
|
||||
<tr>
|
||||
<td align="center" valign="top" style="max-width:100%">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;color:inherit;">
|
||||
<tr>
|
||||
<td valign="top" id="templateBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 0px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" class="fcTextContentBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;border-top: 0;padding-top: 0;padding-bottom: 9px;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody class="mcnTextBlockOuter">
|
||||
<tr>
|
||||
<td class="fc_email_body" align="left" valign="top" style="padding-top: 20px;padding-right: 20px;padding-bottom: 10px;padding-left: 20px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 16px;line-height: 160%;text-align: left;">
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php if(!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td valign="top" id="templateFooter" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody><tr>
|
||||
<td valign="top" class="fcTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 12px;line-height: 150%;text-align: left;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if(!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p><?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
<!-- // END TEMPLATE -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,126 @@
|
||||
<!doctype html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<!--[if gte mso 15]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
|
||||
<link rel="profile" href="https://gmpg.org/xfn/11">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<?php do_action('fluent_crm/email_header', 'plain'); ?>
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH.'app/Views/emails/common-style.php'); ?>
|
||||
</head>
|
||||
<body class="fc_plain_template" style="background: none no-repeat center/cover;height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<?php if ($preHeader): ?><span class="fcPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;"><?php echo esc_attr($preHeader); ?></span><?php endif; ?>
|
||||
<center>
|
||||
<table<?php if(fluentcrm_is_rtl()) { echo ' dir="rtl"'; } ?> align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="templateWrapper" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;color:inherit;">
|
||||
<tr>
|
||||
<td align="center" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0px;width: 100%;border-top: 0;">
|
||||
<!-- BEGIN TEMPLATE // -->
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600" style="width:600px;color:inherit;">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;color:inherit;">
|
||||
<tr>
|
||||
<td valign="top" id="templateBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 0;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" class="fcTextContentBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;border-top: 0;padding-top: 0;padding-bottom: 9px;color:inherit;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody class="mcnTextBlockOuter">
|
||||
<tr>
|
||||
<td class="fc_email_body" align="left" valign="top" style="padding-top: 20px;padding-right: 20px;padding-bottom: 10px;padding-left: 20px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 16px;line-height: 160%;text-align: left;color:inherit;">
|
||||
<div>
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php if(!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td valign="top" id="templateFooter" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody><tr>
|
||||
<td valign="top" class="fcTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 12px;line-height: 150%;text-align: left;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if(!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p><?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
<!-- // END TEMPLATE -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,46 @@
|
||||
<!doctype html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<!--[if gte mso 15]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<meta charset="<?php bloginfo('charset'); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="profile" href="https://gmpg.org/xfn/11">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<?php do_action('fluent_crm/email_header', 'raw_classic'); ?>
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH.'app/Views/emails/classic-style.php'); ?>
|
||||
|
||||
</head>
|
||||
<body class="fc_classic_template"
|
||||
style="background: none no-repeat center/cover;height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<?php if ($preHeader): ?><span class="fcPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;"><?php echo esc_html($preHeader); ?></span><?php endif; ?>
|
||||
<div style="padding: 0 10px;">
|
||||
<table<?php if (fluentcrm_is_rtl()) { echo ' dir="rtl"';} ?> align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<tr>
|
||||
<td align="left" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if (!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td align="left" valign="top" id="footer_section" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
|
||||
<div style="margin-top: 80px; text-align: left;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if (!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p><?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,123 @@
|
||||
<!doctype html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<!--[if gte mso 15]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
|
||||
<link rel="profile" href="https://gmpg.org/xfn/11">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<?php do_action('fluent_crm/email_header', 'simple'); ?>
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH.'app/Views/emails/common-style.php'); ?>
|
||||
</head>
|
||||
<body style="background: none no-repeat center/cover;height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<?php if ($preHeader): ?><span class="fcPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;"><?php echo esc_html($preHeader); ?></span><?php endif; ?>
|
||||
<center>
|
||||
<table<?php if(fluentcrm_is_rtl()) { echo ' dir="rtl"'; } ?> id="templateWrapper" align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;color:inherit;">
|
||||
<tr>
|
||||
<td align="center" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 10px;width: 100%;border-top: 0;">
|
||||
<!-- BEGIN TEMPLATE // -->
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600" style="width:600px;color:inherit;">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;color:inherit;">
|
||||
<tr>
|
||||
<td valign="top" id="templateBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top" class="fcTextContentBody" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;border-top: 0;padding-top: 0;padding-bottom: 9px;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody class="mcnTextBlockOuter">
|
||||
<tr>
|
||||
<td class="fc_email_body" align="left" valign="top" style="padding-top: 20px;padding-right: 20px;padding-bottom: 10px;padding-left: 20px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 16px;line-height: 160%;text-align: left;">
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php if(!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td valign="top" id="templateFooter" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top: 0;border-bottom: 0;"><table border="0" cellpadding="0" cellspacing="0" width="100%" class="fcTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<tbody class="fcTextBlockOuter">
|
||||
<tr>
|
||||
<td valign="top" class="fcTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
|
||||
<!--[if mso]>
|
||||
<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;color:inherit;">
|
||||
<tr>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
<td valign="top" width="600" style="width:600px;">
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color:inherit;" width="100%" class="fcTextContentContainer">
|
||||
<tbody><tr>
|
||||
<td valign="top" class="fcTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;font-size: 12px;line-height: 150%;text-align: left;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if(!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p><?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<!--[if mso]>
|
||||
</td>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if mso]>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
<!-- // END TEMPLATE -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php include(FLUENTCRM_PLUGIN_PATH.'app/Views/emails/classic-style.php'); ?>
|
||||
<table<?php if (fluentcrm_is_rtl()) { echo ' dir="rtl"';} ?> align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-image: none;background-repeat: no-repeat;background-position: center;background-size: cover;">
|
||||
<tr>
|
||||
<td align="left" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
|
||||
<?php echo $email_body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if (!empty($footer_text)): ?>
|
||||
<tr>
|
||||
<td align="left" valign="top" id="footer_section" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
|
||||
<div style="margin-top: 80px; text-align: left;">
|
||||
<?php echo $footer_text; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
<?php if (!defined('FLUENTCAMPAIGN')): ?>
|
||||
<p><?php esc_html_e('Powered By', 'fluent-crm'); ?> <a href="http://fluentcrm.com/?utm_source=wp&utm_medium=wp_mail&utm_campaign=footer"><?php esc_html_e('FluentCRM', 'fluent-crm'); ?></a></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?php esc_html_e('Email Confirmation', 'fluent-crm') ?></title>
|
||||
<meta name="robots" content="noindex">
|
||||
<?php
|
||||
wp_head();
|
||||
do_action('fluent_crm/confirmation_head', $subscriber);
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div class="fluentcrm_unsubscribe_wrapper">
|
||||
<div class="fluentcrm_un_title">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<div class="fluentcrm_un_logo_wrapper">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>" alt="<?php echo esc_attr($business['business_name']); ?>"/>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<h3><?php echo isset($business['business_name']) ? esc_html($business['business_name']) : ''; ?></h3>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_un_form_wrapper">
|
||||
<?php echo $body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
wp_footer();
|
||||
do_action('fluent_crm/confirmation_footer', $subscriber);
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>FluentCRM</title>
|
||||
<style type="text/css">@media only screen and (max-width: 599px) {table.body .container {width: 95% !important;}.header {padding: 15px 15px 12px 15px !important;}.header img {width: 200px !important;height: auto !important;}.content, .aside {padding: 30px 40px 20px 40px !important;}}</style>
|
||||
</head>
|
||||
<body style="height: 100% !important; width: 100% !important; min-width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-font-smoothing: antialiased !important; -moz-osx-font-smoothing: grayscale !important; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; background-color: #f1f1f1; text-align: center;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" class="body" style="border-collapse: collapse; border-spacing: 0; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; height: 100% !important; width: 100% !important; min-width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-font-smoothing: antialiased !important; -moz-osx-font-smoothing: grayscale !important; background-color: #f1f1f1; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; text-align: left; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%;">
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="center" valign="top" class="body-inner fluent-crm" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; text-align: center;">
|
||||
<!-- Container -->
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="container" style="border-collapse: collapse; border-spacing: 0; padding: 0; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; width: 600px; margin: 0 auto 30px auto; Margin: 0 auto 30px auto; text-align: inherit;">
|
||||
<?php if(!empty($business) && !empty($business['business_name'])): ?>
|
||||
<!-- Header -->
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="center" valign="middle" class="header" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; text-align: center; padding: 30px 30px 22px 30px;">
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<!-- Content -->
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="left" valign="top" class="content" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; margin: 0; Margin: 0; text-align: left; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; background-color: #ffffff; padding: 60px 75px 45px 75px; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; border-left: 1px solid #ddd; border-top: 4px solid #c716c1;">
|
||||
<div class="success" style="text-align: left;">
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
Hello <?php echo esc_html($subscriber->first_name); ?>,<br />
|
||||
We received a request for your email subscription preferences.
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
To ensure that we fulfill your request, we're sending this confirmation email with an email management link. Please click the link below to manage your email subscription preferences:
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
<a style="font-weight: bold;" href="<?php echo esc_url($manage_subscription_url); ?>">View Your Email Preferences</a>
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
If you did not make this request, it was probably submitted by someone else by mistake. You can ignore this email, and no changes will be made to your subscription preferences.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?php esc_html_e('Update your preferences', 'fluent-crm') ?></title>
|
||||
<meta name="robots" content="noindex">
|
||||
<?php
|
||||
wp_head();
|
||||
do_action('fluent_crm/manage_subscription_head', $subscriber);
|
||||
?>
|
||||
</head>
|
||||
<body class="fc_unsub">
|
||||
<div class="fluentcrm_unsubscribe_wrapper">
|
||||
<div class="fluentcrm_un_title">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<div class="fluentcrm_un_logo_wrapper">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>" alt="<?php echo esc_attr($business['business_name']); ?>"/>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_un_form_wrapper">
|
||||
<h3><?php esc_html_e('Update your preferences', 'fluent-crm'); ?></h3>
|
||||
<?php require_once FLUENTCRM_PLUGIN_PATH.'app/Views/external/manage_subscription_form.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
wp_footer();
|
||||
do_action('fluent_crm/manage_subscription_footer', $subscriber);
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<div class="fc_manage_sub_form">
|
||||
<form id="fluentcrm_preferences_form" class="fluentcrm_public_pref_form fc_public_form">
|
||||
<input type="hidden" name="_abs_email" value="<?php echo esc_html($abs_email); ?>"/>
|
||||
<input type="hidden" name="_abs_hash" value="<?php echo esc_html($abs_hash); ?>"/>
|
||||
<input type="hidden" name="_original_hash" value="<?php echo esc_html($subscriber->hash); ?>"/>
|
||||
<input type="hidden" name="action" value="fluentcrm_manage_preferences_ajax"/>
|
||||
<input type="hidden" name="_secure_hash" value="<?php echo esc_html($secure_hash); ?>"/>
|
||||
<div class="fc_field">
|
||||
<label for="fc_email"><?php esc_html_e('Your Email Address', 'fluent-crm'); ?></label>
|
||||
<input id="fc_email" required value="<?php echo esc_html($abs_email); ?>" placeholder="Your Email Address"
|
||||
class="fc_input_control" type="text" name="email"/>
|
||||
</div>
|
||||
<div class="fc_field">
|
||||
<label for="fc_first_name"><?php esc_html_e('First Name', 'fluent-crm'); ?></label>
|
||||
<input id="fc_first_name" required value="<?php echo esc_html($subscriber->first_name); ?>"
|
||||
placeholder="<?php esc_html_e('First Name', 'fluent-crm'); ?>" class="fc_input_control" type="text"
|
||||
name="first_name"/>
|
||||
</div>
|
||||
<div class="fc_field">
|
||||
<label for="fc_last_name"><?php esc_html_e('Last Name', 'fluent-crm'); ?></label>
|
||||
<input id="fc_last_name" required value="<?php echo esc_html($subscriber->last_name); ?>" placeholder="<?php esc_html_e('Last Name', 'fluent-crm'); ?>" class="fc_input_control" type="text" name="last_name"/>
|
||||
</div>
|
||||
|
||||
<?php if ($list_options): ?>
|
||||
<div class="fc_field">
|
||||
<h4 class="mainling_list_group_title"><?php esc_html_e('Mailing List Groups', 'fluent-crm') ?></h4>
|
||||
<?php foreach ($list_options as $list_option): ?>
|
||||
<label class="fc_list_items">
|
||||
<input <?php echo ($list_option['selected']) ? 'checked' : ''; ?> type="checkbox" name="lists[]" value="<?php echo esc_attr($list_option['id']); ?>"/> <?php echo esc_html($list_option['label']); ?>
|
||||
</label>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="fc_field">
|
||||
<input id="fluentcrm_preferences_submit" type="submit" value="<?php esc_html_e('Update Profile', 'fluent-crm'); ?>"></input>
|
||||
</div>
|
||||
<?php if (apply_filters('fluent_crm/show_unsubscribe_on_pref', false)): ?>
|
||||
<div class="fc_field">
|
||||
<?php esc_html_e('or', 'fluent-crm'); ?> <a id="pref_unsubscribe" href="#"><?php esc_html_e('Unsubscribe', 'fluent-crm'); ?></a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
<div class="fluentcrm_form_responses"></div>
|
||||
</div>
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* @var array $business
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?php esc_html_e('Request Manage Subscription', 'fluent-crm') ?></title>
|
||||
<meta name="robots" content="noindex">
|
||||
<?php
|
||||
wp_head();
|
||||
do_action('fluent_crm/manage_sub_request_head');
|
||||
?>
|
||||
</head>
|
||||
<body class="fc_unsub">
|
||||
<div class="fluentcrm_unsubscribe_wrapper">
|
||||
<div class="fluentcrm_un_title">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<div class="fluentcrm_un_logo_wrapper">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>" alt="<?php echo (isset($business['business_name'])) ? esc_html($business['business_name']) : ''; ?>"/>
|
||||
</div>
|
||||
<?php elseif(!empty($business['business_name'])): ?>
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_un_form_wrapper">
|
||||
<h4><?php esc_html_e('Get Email Subscription Management Link', 'fluent-crm') ?></h4>
|
||||
<p><?php esc_html_e('Looks like we could not determine your info. Please fill out the form and get your email subscription management link via email.', 'fluent-crm'); ?></p>
|
||||
|
||||
<form method="POST" class="fluentcrm_public_pref_form fc_public_form" action="/" id="fc_unsub_req_form">
|
||||
<input type="hidden" name="action" value="fluentcrm_request_manage_subscription_ajax"/>
|
||||
<div class="fc_field">
|
||||
<label for="fc_email"><?php esc_html_e('Your Email Address', 'fluent-crm'); ?></label>
|
||||
<input id="fc_email" required placeholder="Your Email Address"
|
||||
class="fc_input_control" type="text" name="email"/>
|
||||
</div>
|
||||
<div class="fc_field">
|
||||
<input id="fluentcrm_preferences_submit" type="submit" value="<?php esc_html_e('Email me the link', 'fluent-crm'); ?>"></input>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="fluentcrm_form_responses"></div>
|
||||
</div>
|
||||
<?php do_action('fluent_crm/after_manage_sub_request_content'); ?>
|
||||
</div>
|
||||
<?php
|
||||
wp_footer();
|
||||
do_action('fluent_crm/manage_sub_request_footer');
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="fc_pref_form_wrap">
|
||||
<form method="POST" id="fc_pref_form" class="fc_public_form fc_contact_data_form">
|
||||
<?php wp_nonce_field( 'fluent_crm_account_form_fields', '_fc_nonce' ); ?>
|
||||
<?php do_action('fluent_crm/before_pref_form', $subscriber, $fields); ?>
|
||||
<?php (new \FluentCrm\App\Services\Html\FormElementBuilder)->renderFields($fields, true); ?>
|
||||
<?php do_action('fluent_crm/after_pref_form_fields', $subscriber, $fields); ?>
|
||||
<?php (new \FluentCrm\App\Services\Html\FormElementBuilder)->renderButton($submitBtn); ?>
|
||||
</form>
|
||||
<?php do_action('fluent_crm/after_pref_form', $subscriber, $fields); ?>
|
||||
<div class="fluentcrm_form_responses"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
/*
|
||||
* @var \FluentCrm\App\Models\Subscriber $subscriber
|
||||
* @var \FluentCrm\App\Models\CampaignEmail $campaign_email
|
||||
* @var array $texts
|
||||
* @var array $business
|
||||
* @var string $combined_hash
|
||||
* @var array $reasons
|
||||
* @var string $secure_hash
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?php esc_html_e('Unsubscribe', 'fluent-crm') ?></title>
|
||||
<meta name="robots" content="noindex">
|
||||
<?php
|
||||
wp_head();
|
||||
do_action('fluent_crm/unsubscribe_head', $subscriber, $campaign_email);
|
||||
?>
|
||||
</head>
|
||||
<body class="fc_unsub">
|
||||
<div class="fluentcrm_unsubscribe_wrapper">
|
||||
<?php do_action('fluent_crm/before_unsubscribe_content', $subscriber, $campaign_email); ?>
|
||||
<div class="fluentcrm_un_title">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<div class="fluentcrm_un_logo_wrapper">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>" alt="<?php echo (isset($business['business_name'])) ? esc_html($business['business_name']) : ''; ?>"/>
|
||||
</div>
|
||||
<?php elseif(!empty($business['business_name'])): ?>
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_un_form_wrapper">
|
||||
<?php $wrapperClass = '';
|
||||
if ($one_click_unsubscribe == 'yes') {
|
||||
$wrapperClass = 'hide_wrap';
|
||||
?>
|
||||
<div class="fluentcrm_success">
|
||||
<?php echo esc_html__("You’ve successfully unsubscribed from our email list.", 'fluent-crm'); ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="fluentcrm_un_form_wrapper_inner <?php echo esc_attr($wrapperClass); ?>">
|
||||
<h3><?php echo esc_html($texts['heading']); ?></h3>
|
||||
<p><?php echo esc_html($texts['heading_description']); ?></p>
|
||||
<?php do_action('fluent_crm/before_unsubscribe_form', $subscriber, $campaign_email); ?>
|
||||
<form id="fluentcrm_unsubscribe_form" class="fluentcrm_public_pref_form">
|
||||
<input type="hidden" name="_e_id" value="<?php echo esc_attr($campaign_email->id); ?>" />
|
||||
<input type="hidden" name="action" value="fluentcrm_unsubscribe_ajax" />
|
||||
<input type="hidden" name="combined_hash" value="<?php echo esc_attr($combined_hash); ?>" />
|
||||
<input type="hidden" name="sub_hash" value="<?php echo esc_attr($subscriber->hash); ?>" />
|
||||
<input type="hidden" name="secure_hash" value="<?php echo esc_attr($secure_hash); ?>" />
|
||||
<div class="fluentcrm_form_item">
|
||||
<label><?php echo esc_html($texts['email_label']); ?></label>
|
||||
<input readonly="true" value="<?php echo esc_html($mask_email); ?>" class="fluentcrm_form_control" type="text" name="email_address" />
|
||||
</div>
|
||||
<?php if($reasons): ?>
|
||||
<div class="fluentcrm_form_item">
|
||||
<label><?php echo esc_html($texts['reason_label']); ?></label>
|
||||
<div class="fluentcrm_radio_group">
|
||||
<?php foreach ($reasons as $reasonKey => $reason): ?>
|
||||
<label>
|
||||
<input type="radio" name="reason" value="<?php echo esc_attr($reasonKey); ?>"></input> <?php echo esc_html($reason); ?>
|
||||
</label>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: none;" id="fluentcrm_other_reason_wrapper" class="fluentcrm_form_item">
|
||||
<input placeholder="<?php esc_html_e('Please specify', 'fluent-crm'); ?>" class="fluentcrm_form_control" type="text" name="other_reason" />
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php do_action('fluent_crm/before_unsubscribe_submit', $subscriber, $campaign_email); ?>
|
||||
<div class="fluentcrm_form_item">
|
||||
<input id="fluentcrm_unsubscribe_submit" type="submit" value="<?php echo esc_html($texts['button_text']); ?>"></input>
|
||||
</div>
|
||||
</form>
|
||||
<div class="fluentcrm_form_responses"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php do_action('fluent_crm/after_unsubscribe_content', $subscriber, $campaign_email); ?>
|
||||
</div>
|
||||
<?php
|
||||
wp_footer();
|
||||
do_action('fluent_crm/unsubscribe_footer', $subscriber, $campaign_email);
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>FluentCRM</title>
|
||||
<style type="text/css">@media only screen and (max-width: 599px) {table.body .container {width: 95% !important;}.header {padding: 15px 15px 12px 15px !important;}.header img {width: 200px !important;height: auto !important;}.content, .aside {padding: 30px 40px 20px 40px !important;}}</style>
|
||||
<?php
|
||||
do_action('fluent_crm/unsubscribe_request_email_head');
|
||||
?>
|
||||
</head>
|
||||
<body style="height: 100% !important; width: 100% !important; min-width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-font-smoothing: antialiased !important; -moz-osx-font-smoothing: grayscale !important; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; background-color: #f1f1f1; text-align: center;">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" class="body" style="border-collapse: collapse; border-spacing: 0; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; height: 100% !important; width: 100% !important; min-width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-font-smoothing: antialiased !important; -moz-osx-font-smoothing: grayscale !important; background-color: #f1f1f1; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; text-align: left; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%;">
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="center" valign="top" class="body-inner fluent-crm" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; text-align: center;">
|
||||
<!-- Container -->
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="container" style="border-collapse: collapse; border-spacing: 0; padding: 0; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; width: 600px; margin: 0 auto 30px auto; Margin: 0 auto 30px auto; text-align: inherit;">
|
||||
<?php if(!empty($business) && !empty($business['business_name'])): ?>
|
||||
<!-- Header -->
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="center" valign="middle" class="header" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; margin: 0; Margin: 0; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; text-align: center; padding: 30px 30px 22px 30px;">
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<!-- Content -->
|
||||
<tr style="padding: 0; vertical-align: top; text-align: left;">
|
||||
<td align="left" valign="top" class="content" style="word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; border-collapse: collapse !important; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; margin: 0; Margin: 0; text-align: left; font-size: 14px; mso-line-height-rule: exactly; line-height: 140%; background-color: #ffffff; padding: 60px 75px 45px 75px; border-right: 1px solid #ddd; border-bottom: 1px solid #ddd; border-left: 1px solid #ddd; border-top: 4px solid #c716c1;">
|
||||
<div class="success" style="text-align: left;">
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
Hello <?php echo esc_html($subscriber->first_name); ?>,<br />
|
||||
We received a request to unsubscribe from our emails, and we're sorry to see you go.
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
To ensure that we fulfill your request, we're sending this confirmation email with an unsubscribe link. Please click the link below to confirm your request and unsubscribe from our mailing list:
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
<a style="font-weight: bold;" href="<?php echo esc_url($unsubscribe_url); ?>">Unsubscribe</a>
|
||||
</p>
|
||||
|
||||
<p style="-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; color: #444; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: normal; padding: 0; text-align: left; mso-line-height-rule: exactly; line-height: 140%; margin: 0 0 15px 0; Margin: 0 0 15px 0; font-size: 16px;">
|
||||
If you did not make this request, it was probably submitted by someone else by mistake. You can ignore this email, and no changes will be made to your subscription preferences.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* @var array $business
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?php esc_html_e('Request Unsubscribe', 'fluent-crm') ?></title>
|
||||
<meta name="robots" content="noindex">
|
||||
<?php
|
||||
wp_head();
|
||||
do_action('fluent_crm/unsubscribe_request_head');
|
||||
?>
|
||||
</head>
|
||||
<body class="fc_unsub">
|
||||
<div class="fluentcrm_unsubscribe_wrapper">
|
||||
<div class="fluentcrm_un_title">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<div class="fluentcrm_un_logo_wrapper">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>" alt="<?php echo (isset($business['business_name'])) ? esc_html($business['business_name']) : ''; ?>"/>
|
||||
</div>
|
||||
<?php elseif(!empty($business['business_name'])): ?>
|
||||
<h3><?php echo esc_html($business['business_name']); ?></h3>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_un_form_wrapper">
|
||||
<h4><?php esc_html_e('Get Unsubscribe Link', 'fluent-crm') ?></h4>
|
||||
<p><?php esc_html_e('Looks like we could not determine your info. Please fill out the form and get an unsubscribe link via email.', 'fluent-crm'); ?></p>
|
||||
|
||||
<form method="POST" class="fluentcrm_public_pref_form fc_public_form" action="/" id="fc_unsub_req_form">
|
||||
<input type="hidden" name="action" value="fluentcrm_request_unsubscribe_ajax"/>
|
||||
<div class="fc_field">
|
||||
<label for="fc_email"><?php esc_html_e('Your Email Address', 'fluent-crm'); ?></label>
|
||||
<input id="fc_email" required placeholder="Your Email Address"
|
||||
class="fc_input_control" type="text" name="email"/>
|
||||
</div>
|
||||
<div class="fc_field">
|
||||
<input id="fluentcrm_preferences_submit" type="submit" value="<?php esc_html_e('Email me the link', 'fluent-crm'); ?>"></input>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="fluentcrm_form_responses"></div>
|
||||
</div>
|
||||
<?php do_action('fluent_crm/after_unsubscribe_request_content'); ?>
|
||||
</div>
|
||||
<?php
|
||||
wp_footer();
|
||||
do_action('fluent_crm/unsubscribe_request_footer');
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/*
|
||||
* @var array $business
|
||||
* @var string $email_heading
|
||||
* @var \FluentCrm\App\Models\CampaignEmail|null $email
|
||||
* @var array|string $email_body Either ['rendered' => $html] or a plain HTML string (error states).
|
||||
* @var array $cssAssets
|
||||
*/
|
||||
|
||||
/*
|
||||
* Pass the email payload and renderer through WordPress's script loader instead
|
||||
* of emitting a hardcoded inline <script>. Both the email payload and the
|
||||
* renderer go via wp_add_inline_script (see below for why not wp_localize_script
|
||||
* for the payload), attached to the DOMPurify handle — so a site owner's
|
||||
* CSP/nonce plugin can filter the tags (the page no longer requires
|
||||
* `script-src 'unsafe-inline'`) and there's nothing to ship under assets/,
|
||||
* which the build wipes and regenerates from resources/.
|
||||
*/
|
||||
foreach ((array) $cssAssets as $cssIndex => $cssAsset) {
|
||||
// Version is already baked into the URL as a query arg, so pass null for $ver.
|
||||
wp_enqueue_style('fluentcrm_view_on_browser_' . $cssIndex, $cssAsset, [], null);
|
||||
}
|
||||
|
||||
wp_enqueue_script('fluentcrm_dompurify', fluentCrmMix('libs/purify/purify.min.js'), [], FLUENTCRM_PLUGIN_VERSION, true);
|
||||
|
||||
// Normalize the body shape: callers pass either ['rendered' => $html] (success)
|
||||
// or a plain HTML string (error states). The renderer always expects `rendered`.
|
||||
if (is_array($email_body)) {
|
||||
$renderedBody = isset($email_body['rendered']) ? $email_body['rendered'] : '';
|
||||
} else {
|
||||
$renderedBody = (string) $email_body;
|
||||
}
|
||||
|
||||
// Email payload as window.fluentCrmEmail, printed BEFORE DOMPurify's tag.
|
||||
// Deliberately NOT wp_localize_script: that runs html_entity_decode() on the
|
||||
// value (WP_Scripts::localize), which would turn escaped entities in the email
|
||||
// body (e.g. `<style>`) into live HTML before DOMPurify ever sees it.
|
||||
// wp_add_inline_script preserves the payload verbatim; the JSON_HEX_* flags
|
||||
// neutralize any `</script>` breakout from the inline script context.
|
||||
$fcEmailData = wp_json_encode(
|
||||
['rendered' => $renderedBody],
|
||||
JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT
|
||||
);
|
||||
wp_add_inline_script('fluentcrm_dompurify', 'window.fluentCrmEmail = ' . $fcEmailData . ';', 'before');
|
||||
|
||||
// Renderer: sanitize the email body and mount it inside a closed shadow root so
|
||||
// its styles stay isolated from (and can't leak into) the surrounding page.
|
||||
// Runs after DOMPurify loads (default 'after' position).
|
||||
$fcViewOnBrowserScript = <<<'JS'
|
||||
(function () {
|
||||
var data = window.fluentCrmEmail;
|
||||
if (!data || !data.rendered) {
|
||||
return;
|
||||
}
|
||||
var host = document.getElementById('fluent_email_body');
|
||||
if (!host || typeof host.attachShadow !== 'function' || typeof window.DOMPurify === 'undefined') {
|
||||
return;
|
||||
}
|
||||
var clean = window.DOMPurify.sanitize(data.rendered, { ADD_TAGS: ['style'], ADD_ATTR: ['target'] });
|
||||
var shadow = host.attachShadow({ mode: 'closed' });
|
||||
var wrapper = document.createElement('div');
|
||||
wrapper.innerHTML = clean;
|
||||
shadow.appendChild(wrapper);
|
||||
})();
|
||||
JS;
|
||||
|
||||
wp_add_inline_script('fluentcrm_dompurify', $fcViewOnBrowserScript);
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Imagetoolbar" content="No"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="noindex">
|
||||
<title><?php echo esc_attr($email_heading); ?></title>
|
||||
<?php
|
||||
wp_head();
|
||||
$email && do_action('fluent_crm/view_on_browser_head', $email);
|
||||
?>
|
||||
</head>
|
||||
<body class="fluentcrm_web_body">
|
||||
<div class="fluentcrm_web_view_wrapper">
|
||||
<?php $email && do_action('fluent_crm/view_on_browser_before_heading', $email); ?>
|
||||
|
||||
<div class="fluentcrm_web_view_header">
|
||||
<div class="fluentcrm_web_logo">
|
||||
<?php if (!empty($business['logo'])): ?>
|
||||
<a href="<?php echo esc_url(site_url()); ?>">
|
||||
<img src="<?php echo esc_url($business['logo']); ?>"
|
||||
alt="<?php echo esc_html($business['business_name']); ?>"/>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="fluentcrm_web_heading">
|
||||
<h1><?php echo wp_kses_post($email_heading); ?></h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php $email && do_action('fluent_crm/view_on_browser_before_email_body', $email); ?>
|
||||
|
||||
<div class="fluentcrm_email_wrapper">
|
||||
<div id="fluent_email_body"></div>
|
||||
</div>
|
||||
|
||||
<?php $email && do_action('fluent_crm/view_on_browser_after_email_body', $email); ?>
|
||||
</div>
|
||||
<?php $email && do_action('fluent_crm/view_on_browser_footer', $email); ?>
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user