{"id":321938,"date":"2026-06-09T22:35:01","date_gmt":"2026-06-09T22:35:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/autonewsletterai\/"},"modified":"2026-06-09T22:40:05","modified_gmt":"2026-06-09T22:40:05","slug":"reztart-ai-newsletters-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/reztart-ai-newsletters-woocommerce\/","author":23509776,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Reztart AI Newsletters for WooCommerce","header_author":"reztart","header_description":"AI-generated marketing offers and newsletters for WooCommerce stores. Personalized per-customer email copy via OpenAI; send via wp_mail. Connects WooCommerce to the AutoNewsletterAI service at autonewsai.com.","assets_banners_color":"","last_updated":"2026-06-09 22:40:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.autonewsai.com\/wordpress","header_author_uri":"https:\/\/www.autonewsai.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"reztart","date":"2026-06-09 22:30:10"},"1.0.8":{"tag":"1.0.8","author":"reztart","date":"2026-06-09 22:40:05"}},"upgrade_notice":{"1.0.8":"<p>Send-button state fix \u2014 the Send button now correctly enables for already-sent rows so you can resend without manual workarounds.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.8"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 generated \/ sent \/ failed cards plus plan quota progress, all styled to match WP-admin conventions.","2":"Campaign list \u2014 uses WordPress's standard list-table conventions for filtering, sorting and bulk actions.","3":"Campaign builder (page 1) \u2014 recipient mode, style, tone, language selection.","4":"Campaign builder (page 2) \u2014 product selection with cross-sell \/ up-sell \/ recent-products fallback chain.","5":"Plans page \u2014 bundled catalog with side-by-side GPT-4.1-mini vs GPT-5 comparison."}},"plugin_section":[],"plugin_tags":[2353,264,1010,194533,286],"plugin_category":[41,45],"plugin_contributors":[266406],"plugin_business_model":[],"class_list":["post-321938","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-email-marketing","plugin_tags-newsletters","plugin_tags-openai","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-reztart","plugin_committers-reztart"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/reztart-ai-newsletters-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Stop sending the same blast email to every customer.<\/strong> AutoNewsletterAI is a native WooCommerce plugin that uses GPT-4.1-mini and GPT-5 to write a fresh, individualized newsletter for every single recipient \u2014 based on their real order history, country, last-purchased product, total spend and recency. Two customers never see the same message. No merge-tag illusions. No bulk fingerprints that land in spam.<\/p>\n\n<h4>What makes it different<\/h4>\n\n<ul>\n<li><strong>Truly individualized.<\/strong> Every email is a fresh AI generation. Not a template with a {first_name} swap.<\/li>\n<li><strong>Reads your store directly.<\/strong> Pulls from WooCommerce \u2014 customers, orders, products. No external sync, no extra cron jobs, no third-party newsletter platform.<\/li>\n<li><strong>HPOS-compatible.<\/strong> Order queries go through <code>wc_get_orders()<\/code> so they work on both legacy and High-Performance Order Storage.<\/li>\n<li><strong>Per-row or bulk batch.<\/strong> Generate one email at a time to fine-tune, or batch-generate 50+ in parallel with live progress polling.<\/li>\n<li><strong>Bring your own SMTP.<\/strong> Uses your existing WordPress mail config (or any SMTP plugin like FluentSMTP \/ WP Mail SMTP). Your sender reputation stays in your hands.<\/li>\n<li><strong>Two AI models.<\/strong> GPT-4.1-mini (fast workhorse, on every plan) or GPT-5 (premium reasoning, on paid plans).<\/li>\n<li><strong>Same account across platforms.<\/strong> One AutoNewsletterAI login works on WordPress, OpenCart, PrestaShop and Shopify. Plan and quota are shared.<\/li>\n<\/ul>\n\n<h4>What goes into every email<\/h4>\n\n<ul>\n<li>Country and language (auto-detected from billing address)<\/li>\n<li>Last purchased product \u2014 name, price, category<\/li>\n<li>Days since the last order \u2014 first-time vs returning customer messaging<\/li>\n<li>Total order count and average order value<\/li>\n<li>Cross-sell and up-sell hints from your product relations<\/li>\n<li>Your style + tone preset (modern \/ classic \/ minimal, formal \/ casual, emoji on\/off)<\/li>\n<li>Your free-form additional instructions per campaign \u2014 e.g. <em>\"Mention our Black Friday sale\"<\/em>, <em>\"Speak in Italian\"<\/em>, <em>\"Keep it under 80 words\"<\/em><\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li>WordPress <strong>6.0 \u2014 6.7<\/strong><\/li>\n<li>WooCommerce <strong>6.0 \u2014 10.8<\/strong> (HPOS supported)<\/li>\n<li>PHP <strong>7.4, 8.0, 8.1, 8.2, 8.3, 8.4<\/strong><\/li>\n<li>Multi-language stores (Polylang \/ WPML coexistence \u2014 recipient language auto-detected from billing country)<\/li>\n<\/ul>\n\n<h4>Pricing<\/h4>\n\n<ul>\n<li><strong>Free tier<\/strong> \u2014 5 generations \/ month, GPT-4.1-mini. Permanent free, no credit card.<\/li>\n<li><strong>Paid plans<\/strong> \u2014 from $19\/month, up to 10 000 generations\/month. All paid tiers also unlock GPT-5. Cancel any time from the in-store Account tab.<\/li>\n<\/ul>\n\n<p>Full plan details: <a href=\"https:\/\/www.autonewsai.com\/pricing\">autonewsai.com\/pricing<\/a><\/p>\n\n<h4>External services this plugin uses<\/h4>\n\n<p>This plugin connects to two external services to operate. By installing and activating it, you agree to those services' terms.<\/p>\n\n<ul>\n<li><p><strong>AutoNewsletterAI backend<\/strong> at <code>https:\/\/api.autonewsai.com<\/code> \u2014 the SaaS service that runs the AI generation, billing, and account management. Sends an HTTPS request per generation containing: the recipient's name and email, country, order summary fields you pick for the campaign, the products you chose, and your campaign instructions. <a href=\"https:\/\/www.autonewsai.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.autonewsai.com\/privacy\">Privacy Policy<\/a><\/p><\/li>\n<li><p><strong>OpenAI<\/strong> (used internally by the AutoNewsletterAI backend) \u2014 the language model that writes the email body. You don't talk to OpenAI directly from your WordPress site; the request flows through our backend. <a href=\"https:\/\/openai.com\/policies\/\">OpenAI policies<\/a><\/p><\/li>\n<li><p><strong>Stripe<\/strong> (used only when you upgrade) \u2014 Stripe Checkout is opened in a new tab; card details never touch your WordPress site or our backend. <a href=\"https:\/\/stripe.com\/legal\">Stripe terms<\/a><\/p><\/li>\n<\/ul>\n\n<h4>Try the live demo<\/h4>\n\n<p>We host a demo OpenCart admin (same feature set as WP) so you can click around without installing:<\/p>\n\n<ul>\n<li>URL: https:\/\/autodemo.autonewsai.com\/admin\/<\/li>\n<li>Username: <code>demo<\/code><\/li>\n<li>Password: <code>demo<\/code><\/li>\n<\/ul>\n\n<p>Generation, send, and account mutations are blocked in the demo so you can explore risk-free.<\/p>\n\n<!--section=installation-->\n<h4>Quick install<\/h4>\n\n<ol>\n<li>In WP admin, go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Upload <code>autonewsletterai-&lt;version&gt;-wp.zip<\/code> and click <strong>Install Now<\/strong>.<\/li>\n<li>Click <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>WooCommerce \u2192 AutoNewsletterAI<\/strong> (new submenu).<\/li>\n<li>Click the <strong>Account<\/strong> tab and <strong>Register<\/strong> with your email. Verify the email link.<\/li>\n<li>Click <strong>Campaigns \u2192 + Add Campaign<\/strong>, fill in the form, and click <strong>Generate all<\/strong>.<\/li>\n<\/ol>\n\n<h4>Permissions<\/h4>\n\n<p>Any user with the <strong><code>manage_woocommerce<\/code><\/strong> capability gets access automatically. Default roles that have it: <strong>Administrator<\/strong> and <strong>Shop Manager<\/strong>. For custom roles, grant <code>manage_woocommerce<\/code> via your role manager (User Role Editor, Members, etc.).<\/p>\n\n<h4>Required PHP extensions<\/h4>\n\n<ul>\n<li><code>curl<\/code> (always present)<\/li>\n<li><code>json<\/code> (always present)<\/li>\n<\/ul>\n\n<p>No additional extensions or composer packages required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20api%20key%20from%20openai%3F\"><h3>Do I need an API key from OpenAI?<\/h3><\/dt>\n<dd><p>No. AutoNewsletterAI runs its own backend that handles AI generation. You only need an AutoNewsletterAI account \u2014 sign up from the Account tab inside the plugin (free tier available, no credit card).<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20my%20existing%20smtp%20plugin%20%28wp%20mail%20smtp%20%2F%20fluentsmtp%20%2F%20postmark%20%2F%20sendgrid%29%3F\"><h3>Can I use this with my existing SMTP plugin (WP Mail SMTP \/ FluentSMTP \/ Postmark \/ SendGrid)?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses WordPress's native <code>wp_mail()<\/code> function, which any SMTP plugin can override. Configure your SMTP plugin as usual; AutoNewsletterAI will send through it automatically.<\/p><\/dd>\n<dt id=\"is%20it%20hpos-compatible%3F\"><h3>Is it HPOS-compatible?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares <code>custom_order_tables<\/code> compatibility on activation and all order queries go through <code>wc_get_orders()<\/code>, so it works on both legacy <code>wp_posts<\/code>-based orders and the new HPOS tables.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20my%20customers%27%20data%20on%20your%20servers%3F\"><h3>Does the plugin store my customers' data on your servers?<\/h3><\/dt>\n<dd><p>No. The plugin reads customer + order data from your WooCommerce database at generation time only, sends it to our backend for the single generation request, and discards it server-side after. We retain only the <em>generated<\/em> email (subject + body) plus the recipient's email address on YOUR WordPress database \u2014 used to populate the Ready \/ History tabs. The full Privacy Policy: <a href=\"https:\/\/www.autonewsai.com\/privacy\">autonewsai.com\/privacy<\/a><\/p><\/dd>\n<dt id=\"will%20my%20data%20train%20an%20ai%20model%3F\"><h3>Will my data train an AI model?<\/h3><\/dt>\n<dd><p>No. The backend uses OpenAI's paid API, where their terms explicitly prohibit training on API customer inputs.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20deactivate%20%2F%20delete%20the%20plugin%3F\"><h3>What happens to my data if I deactivate \/ delete the plugin?<\/h3><\/dt>\n<dd><p>Deactivation: nothing changes. Delete: WordPress runs <code>uninstall.php<\/code> which drops the plugin's two database tables (<code>{$wpdb-&gt;prefix}autonewsletterai_campaign<\/code> and <code>_campaign_customer<\/code>). Export your data first if you want to keep history.<\/p><\/dd>\n<dt id=\"what%20if%20a%20generation%20fails%3F\"><h3>What if a generation fails?<\/h3><\/dt>\n<dd><p>Failed (4xx \/ 5xx) generations do <strong>not<\/strong> count against your monthly quota. The recipient row stays in <code>failed<\/code> status with the error message visible in the History tab \u2014 you can re-click Generate to retry.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20email%20html%20template%3F\"><h3>Can I customize the email HTML template?<\/h3><\/dt>\n<dd><p>The generated body IS the HTML. The AI writes the full <code>&lt;html&gt;...&lt;\/html&gt;<\/code> from scratch per recipient, matching the style\/tone you picked. No separate template to maintain.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20tier%3F\"><h3>Is there a free tier?<\/h3><\/dt>\n<dd><p>Yes. 5 generations per month, GPT-4.1-mini model, with no expiration and no credit card required. Permanent \u2014 not a 14-day trial.<\/p><\/dd>\n<dt id=\"how%20do%20i%20cancel%20a%20paid%20subscription%3F\"><h3>How do I cancel a paid subscription?<\/h3><\/dt>\n<dd><p>From the Account tab inside WP admin, click <strong>Manage subscription<\/strong> \u2192 opens Stripe's customer portal in a new tab. Cancel there; your access remains until the end of the paid period.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20same%20account%20on%20multiple%20wordpress%20sites%3F\"><h3>Can I use the same account on multiple WordPress sites?<\/h3><\/dt>\n<dd><p>Yes. Sign in with the same AutoNewsletterAI account on every site you own. Plan and monthly quota are shared across all sites (and across all four supported platforms \u2014 WP, OC, PS, Shopify).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8 (2026-06-01)<\/h4>\n\n<ul>\n<li>Send button enables on <code>status='generated'<\/code> regardless of prior send result \u2014 label flips to \"Resend\" for already-sent rows. (UI was stricter than the backend, which always allowed resend.)<\/li>\n<li>Minor copy fixes.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>API required fields backfilled at the payload layer: <code>offered_products[*].image<\/code> falls back to <code>wc_placeholder_img_src()<\/code>, <code>short_description<\/code> falls back to a single space if empty, <code>website_logo<\/code> falls back to WC placeholder \u2192 WP admin logo.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Three-step product picker fallback: cross-sells\/up-sells \u2192 recent excluding already-purchased \u2192 recent without exclusion. Plus diagnostic: error message now includes \"Store has N published products total\" when picker fails.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li><code>PayloadBuilder<\/code> rewritten to match the API contract \u2014 now sends <code>style_code<\/code> \/ <code>text_tone<\/code> \/ <code>offered_products<\/code> (was sending <code>style<\/code> \/ <code>tone<\/code> \/ <code>products<\/code> and getting 422). Plus <code>client_name<\/code>, <code>website_name\/url\/logo<\/code>, <code>purchased_products<\/code>, <code>color_palette<\/code>. Validation errors now surface <code>validationDetails<\/code> in the error message.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li><code>validate_callback<\/code> PHP 8 strict-mode fix \u2014 <code>is_numeric<\/code> is 1-arg but WP REST calls validators with 3 args. Replaced with internal <code>isNumericValue<\/code> wrapper.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Plan upgrade locked until email is verified \u2014 UI banner + disabled buttons + REST backstop returning 403 <code>email_not_verified<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Force <code>\/info<\/code> refresh on the Account tab when the user returns from Stripe Checkout via <code>?subscribed=1<\/code>. Same on the Plans tab on every render. Pulsing \"Verify email\" pill added to the in-plugin navbar when <code>email_verified=false<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Plans page now includes a 4-screenshot comparison panel (B2B SaaS sample + B2C e-commerce sample, two models each).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release. Full Phase 1-4 feature set: campaign CRUD, recipient resolution (5 modes), single-row + batch generation, Ready + History + Dashboard pages, Plans catalog with model toggle, Stripe Checkout + billing portal + cancel + resume, defensive <code>Throwable<\/code> catch on every REST endpoint, demo-build flag.<\/li>\n<\/ul>","raw_excerpt":"Generate individualized AI marketing emails for every WooCommerce customer \u2014 based on their real order history, country, last purchase, and spend.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321938","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=321938"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/reztart"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321938"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321938"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321938"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321938"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321938"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}