Skip to content

Releases: fphxgallery/wordpress-ai-email-marketing-plugin

v1.2.4

Choose a tag to compare

@fphxgallery fphxgallery released this 05 Jun 16:07

Bug Fixes

  • Scheduled campaign timezone display — Campaign list "Scheduled For" column and edit form date picker were showing times 7 hours off on sites where the WordPress timezone (e.g. Phoenix, UTC-7) differs from the PHP server timezone (UTC). scheduled_at is stored in WP local time but strtotime() was treating it as UTC. Fixed both display sites to use DateTimeImmutable + wp_timezone() for correct parsing.

Improvements

  • Cron logging — Added cron_check and cron_batch log events so cron activity is now visible in the Logs tab. Each check_scheduled run logs how many campaigns were found due and their IDs. Each batch run logs pending count, completion, and scheduling of subsequent batches. AI generation failures on recurring campaigns are now logged instead of silently ignored.
  • Log event filter — Added "Cron: Check Scheduled" and "Cron: Process Batch" entries to the Logs event filter dropdown.

v1.2.3

Choose a tag to compare

@fphxgallery fphxgallery released this 04 Jun 19:16

What's New

  • Send Now button — Campaigns list now has a Send Now action for any scheduled campaign, bypassing the scheduled time for immediate dispatch
  • Scheduled For column — Shows the next run time for scheduled campaigns with an overdue indicator if the time has passed without firing
  • Template persistence — The Email Editor template selected when generating is now saved with the campaign and pre-selected when you re-open it; recurring AI regeneration uses this saved template automatically
  • Scheduling timezone fix — schedule_campaign was parsing the datetime using PHP server timezone instead of WordPress timezone, which could cause campaigns to fire at the wrong time

Bug Fixes

  • send_campaign and resend_campaign now call process_batch directly instead of scheduling via WP-Cron, ensuring emails go out immediately on Send Now
  • Fixed fatal PHP error on new campaign edit page (null campaign → template_id access)

DB Migration

A new template_id column is added to wp_aiem_campaigns automatically on first page load after updating.

v1.2.2

Choose a tag to compare

@fphxgallery fphxgallery released this 04 Jun 00:03

Breaking Change

Email wrapper removed — campaigns are now sent as the raw HTML you write, with no gradient header or white container added around them. Tracking pixel, merge tags, link rewriting, and {{unsubscribe_url}} / {{site_name}} / {{site_url}} placeholders are still applied directly to your HTML. If you were relying on the wrapper for an unsubscribe link, add {{unsubscribe_url}} to your campaign HTML.

v1.2.1

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 21:08

Improvement

Multi-product template layout — when multiple WooCommerce products are provided, the AI now places each product in its own section separated by dividers, with the footer block always at the end. Structure: product 1 → <hr> → product 2 → <hr> → footer.

v1.2.0

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 18:53

Bug Fix

Template HTML stripped on savewp_kses_post() was silently removing inline CSS properties and <img src=""> tags from email templates, campaigns, and workflow content. Since all these save paths require manage_options, replaced with wp_unslash() so the full HTML is preserved.

v1.1.9

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 18:39

New

Reset to Default buttons — Settings → OpenAI now has a Reset to Default button next to both the System Prompt and Template System Prompt fields. Clicking confirms before overwriting the current value.

v1.1.8

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 18:17

Bug Fixes

Backslash in subject line — WordPress applies wp_magic_quotes() to all $_POST data, adding backslashes before apostrophes (e.g. Don\'t). Fixed by adding wp_unslash() before sanitization on all campaign and workflow text fields.

Button styles stripped by AI — AI was replacing styled button <a> tags with plain hyperlinks, losing inline CSS. Updated template system prompt to explicitly require preserving all attribute values on anchor tags verbatim.

v1.1.7

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 18:06

New

Template System Prompt now editable — Settings → OpenAI has a new "Template System Prompt" textarea. Pre-fills with the current default. Edit it to tune how the AI fills your Email Editor templates without touching plugin code.

v1.1.6

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 18:02

Bug Fix

AI was rewriting style attributes when filling templates, dropping text-align:center and other CSS properties. System prompt now explicitly instructs the AI to copy every tag and style attribute verbatim — only text nodes and img src/alt may change.

v1.1.5

Choose a tag to compare

@fphxgallery fphxgallery released this 03 Jun 17:50

Bug Fixes

Image blocks dropped from template HTML — image blocks with no URL set were returning empty string from the template renderer, so the saved html_content contained no <img> tag. The AI had nothing to fill. Now renders <img src=""> so the AI can populate src and alt.

AI not replacing placeholder text — expanded the template-mode system prompt to explicitly instruct the AI to replace all generic placeholder text ("Your footer", "product title", "Your Heading", etc.), write real footer content, and populate empty image src attributes with relevant public image URLs.

Action required after updating

Re-open your template in Email Editor, click Update Template to re-save the HTML with the image tag included, then generate again.