{"id":313479,"date":"2026-05-28T11:53:48","date_gmt":"2026-05-28T11:53:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/presspilot-email-template-customizer\/"},"modified":"2026-05-28T18:52:04","modified_gmt":"2026-05-28T18:52:04","slug":"presspilot-email-template-customizer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/presspilot-email-template-customizer\/","author":23463474,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"PressPilot Email Template Customizer","header_author":"CardeeTech","header_description":"Wrap all outgoing WordPress emails in a branded, responsive HTML template. Fully compatible with any SMTP plugin.","assets_banners_color":"b9c4d0","last_updated":"2026-05-28 18:52:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/cardee.tech\/plugins\/presspilot-email-template-customizer\/","header_author_uri":"https:\/\/cardee.tech\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"cardeetech","date":"2026-05-28 11:53:30"},"1.0.4":{"tag":"1.0.4","author":"cardeetech","date":"2026-05-28 18:04:09"},"1.0.5":{"tag":"1.0.5","author":"cardeetech","date":"2026-05-28 18:40:23"},"1.0.6":{"tag":"1.0.6","author":"cardeetech","date":"2026-05-28 18:52:04"}},"upgrade_notice":{"1.0.6":"<p>Bug-fix: adds native GD fallback for WebP conversion on servers where wp_get_image_editor() fails but imagecreatefromwebp() is available.<\/p>","1.0.5":"<p>Bug-fix release: corrects WebP logo conversion for optimizer-generated WebP files and adds diagnostic hints when conversion fails.<\/p>","1.0.4":"<p>Bug-fix release: corrects WebP logo conversion when logo_id is 0 and fixes the refresh preview button icon alignment.<\/p>","1.0.3":"<p>Metadata correction: fixes contributor usernames and plugin URI for WordPress.org compliance.<\/p>","1.0.2":"<p>Bug-fix release: corrects the inactive status badge color, color picker clipping, tab redirect on save, preheader preview visibility, and header image WebP conversion.<\/p>","1.0.1":"<p>Removes the admin bar shortcut and updates the default test email message.<\/p>","1.0.0":"<p>Initial public release of PressPilot Email Template Customizer.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3552055,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3552055,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3552055,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3552055,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3552055,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3552055,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3552055,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3552055,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3552055,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3552055,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3552055,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3552055,"resolution":"7","location":"assets","locale":"","width":1920,"height":1080},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3552055,"resolution":"8","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Panel tab \u2014 status dashboard with ACTIVE\/INACTIVE badge, system info, and quick setup checklist.","2":"Settings tab \u2014 master enable switch, template mode selection (Default Designer or Custom HTML), and sender configuration.","3":"Style tab \u2014 color token controls with live preview showing the branded email template in real time.","4":"Reference tab \u2014 full placeholder reference table for Custom HTML mode.","5":"Quick Guide tab \u2014 step-by-step setup guide for first-time configuration.","6":"Custom HTML editor \u2014 HTML template editor with supported placeholders displayed as one-click chips.","7":"Test email form and diagnostics panel \u2014 send real test emails and review system status checks.","8":"Content blocks and footer configuration \u2014 pre\/post content areas and footer visibility controls with live preview."}},"plugin_section":[],"plugin_tags":[2604,267,6696,975,6695],"plugin_category":[41,43],"plugin_contributors":[258600,264709],"plugin_business_model":[],"class_list":["post-313479","plugin","type-plugin","status-publish","hentry","plugin_tags-branding","plugin_tags-email","plugin_tags-smtp","plugin_tags-template","plugin_tags-wp_mail","plugin_category-communication","plugin_category-customization","plugin_contributors-cardeetech","plugin_contributors-neriomolina","plugin_committers-cardeetech"],"banners":{"banner":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/banner-772x250.png?rev=3552055","banner_2x":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/banner-1544x500.png?rev=3552055","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/icon.svg?rev=3552055","icon":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/icon.svg?rev=3552055","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-1.png?rev=3552055","caption":"Panel tab \u2014 status dashboard with ACTIVE\/INACTIVE badge, system info, and quick setup checklist."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-2.png?rev=3552055","caption":"Settings tab \u2014 master enable switch, template mode selection (Default Designer or Custom HTML), and sender configuration."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-3.png?rev=3552055","caption":"Style tab \u2014 color token controls with live preview showing the branded email template in real time."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-4.png?rev=3552055","caption":"Reference tab \u2014 full placeholder reference table for Custom HTML mode."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-5.png?rev=3552055","caption":"Quick Guide tab \u2014 step-by-step setup guide for first-time configuration."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-6.png?rev=3552055","caption":"Custom HTML editor \u2014 HTML template editor with supported placeholders displayed as one-click chips."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-7.png?rev=3552055","caption":"Test email form and diagnostics panel \u2014 send real test emails and review system status checks."},{"src":"https:\/\/ps.w.org\/presspilot-email-template-customizer\/assets\/screenshot-8.png?rev=3552055","caption":"Content blocks and footer configuration \u2014 pre\/post content areas and footer visibility controls with live preview."}],"raw_content":"<!--section=description-->\n<p>PressPilot Email Template Customizer adds a presentation layer to outgoing WordPress emails. It does not replace <code>wp_mail()<\/code> and does not interfere with SMTP plugins.<\/p>\n\n<p>Developed and maintained by <strong>CardeeTech<\/strong> (Cardee Technologies, SL).<\/p>\n\n<p>Key features:<\/p>\n\n<ul>\n<li>Wrap outgoing <code>wp_mail()<\/code> messages with a consistent HTML template.<\/li>\n<li>Default Designer mode with visual tokens (logo, header image, colors, typography, width, radius).<\/li>\n<li>Custom HTML mode with placeholder replacement.<\/li>\n<li>Live preview in admin for faster iteration.<\/li>\n<li>Built-in test email tool (single or multiple recipients).<\/li>\n<li>WebP safety flow for email compatibility with PNG conversion cache.<\/li>\n<li>Diagnostics panel for runtime checks and recent log visibility.<\/li>\n<\/ul>\n\n<p>Template modes:<\/p>\n\n<ul>\n<li><strong>Default Designer<\/strong>: uses internal template + design tokens from settings.<\/li>\n<li><strong>Custom HTML<\/strong>: uses your HTML as-is and replaces supported placeholders.<\/li>\n<\/ul>\n\n<p>Supported placeholders:<\/p>\n\n<pre><code>{{message}}, `{{subject}}`, `{{site_name}}`, `{{site_url}}`, `{{site_host}}`, `{{logo}}`, `{{header_image}}`, `{{date}}`, `{{year}}`, `{{preheader}}`\n<\/code><\/pre>\n\n<p>Legacy compatibility during migration window:<\/p>\n\n<ul>\n<li><code>{{ctetc_header_image}}<\/code> is still accepted for upgraded installations.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>presspilot-email-template-customizer<\/code> to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from <strong>Plugins<\/strong>.<\/li>\n<li>Open <strong>PressPilot<\/strong> in the WordPress admin menu.<\/li>\n<li>Configure wrapper mode, style tokens, and template settings.<\/li>\n<li>Send a test email before production use.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20wordpress%20email%20delivery%3F\"><h3>Does this replace WordPress email delivery?<\/h3><\/dt>\n<dd><p>No. The plugin only transforms the message HTML before send. Delivery remains <code>wp_mail()<\/code> + your existing mail transport.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20smtp%20plugins%3F\"><h3>Is it compatible with SMTP plugins?<\/h3><\/dt>\n<dd><p>Yes. SMTP plugins continue to handle transport\/authentication exactly as before.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20custom%20template%20misses%20%60%7B%7Bmessage%7D%7D%60%3F\"><h3>What happens if my custom template misses `{{message}}`?<\/h3><\/dt>\n<dd><p>The message body is appended as a fail-safe to avoid blank emails.<\/p><\/dd>\n<dt id=\"can%20i%20use%20webp%20images%3F\"><h3>Can I use WebP images?<\/h3><\/dt>\n<dd><p>WebP is detected and converted to PNG when possible for better email client compatibility. Converted files are cached under <code>wp-content\/uploads\/ppetc-cache\/<\/code>.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20translation-ready%3F\"><h3>Is this plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. English is the source language, and Spanish is provided for all <code>es*<\/code> WordPress locales.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: WebP conversion now falls back to native PHP GD functions (imagecreatefromwebp\/imagepng) when WordPress image editor abstraction fails. Handles servers where GD supports WebP but WordPresss WP_Image_Editor_GD rejects the file.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix: WebP logo conversion now handles optimizer-generated WebP files (Imagify, EWWW, ShortPixel, Avada). When the registered attachment is the original PNG\/JPG, its URL is returned directly instead of attempting GD\/Imagick conversion.<\/li>\n<li>Fix: Conversion failure now shows a specific diagnostic message explaining why (CDN\/URL mismatch, file not found, or missing GD\/Imagick WebP support).<\/li>\n<li>Fix: Diagnostic hint added to \"Convert for email\" button to guide resolution without needing server log access.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: WebP logo conversion now works when the logo URL was entered manually (logo_id not set). Adds fallback via attachment_url_to_postid().<\/li>\n<li>Fix: Refresh preview button icon now aligns correctly with button text.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Corrected Contributors field to match the WordPress.org owner account (cardeetech) and added co-author (neriomolina).<\/li>\n<li>Fix: Plugin URI updated to plugin-specific page.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Email wrapper status badge and KPI icon now correctly show inactive (red\/gray) state when wrapper is disabled.<\/li>\n<li>Fix: Color picker dropdowns no longer clip in the Style tab.<\/li>\n<li>Fix: Settings save now returns to the same tab instead of always returning to Panel.<\/li>\n<li>Fix: Preheader text is now visible in the admin preview as a labeled strip.<\/li>\n<li>Fix: WebP-to-PNG conversion for header images now falls back to attachment ID path resolution.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Removed the admin bar shortcut.<\/li>\n<li>Updated the default test email message.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release on WordPress.org.<\/li>\n<li>Canonical branding and architecture under <code>ppetc<\/code> \/ <code>PPETC_<\/code>.<\/li>\n<li>Wrapper engine for default and custom template modes.<\/li>\n<li>Placeholder system, live preview, diagnostics, and test-email workflow.<\/li>\n<li>WebP conversion cache and uninstall cleanup for canonical and legacy keys.<\/li>\n<li>Security\/compliance hardening for WordPress.org publication.<\/li>\n<\/ul>","raw_excerpt":"Wrap outgoing WordPress emails in a branded HTML template while keeping native wp_mail() delivery and SMTP compatibility.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=313479"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cardeetech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313479"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313479"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313479"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313479"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313479"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}