{"id":393381,"date":"2026-10-29T02:19:30","date_gmt":"2026-10-29T02:19:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/yoohw-advanced-noticiations\/"},"modified":"2026-10-29T02:18:55","modified_gmt":"2026-10-29T02:18:55","slug":"yoohw-advanced-notifications","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/yoohw-advanced-notifications\/","author":21137534,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.0","stable_tag":"0.3.0","tested":"7.1.4","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"Advanced Notifications for WooCommerce","header_author":"YoOhw Studio","header_description":"Compose, preview, schedule and track WooCommerce customer email campaigns.","assets_banners_color":"42bcbb","last_updated":"2026-10-29 02:18:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/yoohw-advanced-notifications","header_author_uri":"https:\/\/yoohw.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.0":{"tag":"0.3.0","author":"yoohw","date":"2026-10-29 02:18:55","revision":3771948}},"upgrade_notice":{"0.3.0":"<p>Campaign controls, reusable drafts, audience filters, scheduling and privacy tools. Existing data is retained. Stop old background workers before upgrading. Do not downgrade to 0.2.2 because it lacks the new cancellation and erasure protections.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3771972,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3771972,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3771972,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3771972,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[7619,267,264,4906,286],"plugin_category":[41,45],"plugin_contributors":[223812],"plugin_business_model":[],"class_list":["post-393381","plugin","type-plugin","status-publish","hentry","plugin_tags-customers","plugin_tags-email","plugin_tags-email-marketing","plugin_tags-notifications","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-yoohw","plugin_committers-yoohw"],"banners":{"banner":"https:\/\/ps.w.org\/yoohw-advanced-notifications\/assets\/banner-772x250.png?rev=3771972","banner_2x":"https:\/\/ps.w.org\/yoohw-advanced-notifications\/assets\/banner-1544x500.png?rev=3771972","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/yoohw-advanced-notifications\/assets\/icon-128x128.png?rev=3771972","icon_2x":"https:\/\/ps.w.org\/yoohw-advanced-notifications\/assets\/icon-256x256.png?rev=3771972","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Advanced Notifications for WooCommerce helps store managers send product updates, post-purchase guidance and service announcements from the WordPress dashboard.<\/p>\n\n<p>Choose an audience, write your message using the rich-text editor, send a test email, review the recipient list and confirm the campaign. Manage everything from Marketing &gt; Email campaigns.<\/p>\n\n<h4>Choose and review your audience<\/h4>\n\n<ul>\n<li>Select product or variation purchasers, WooCommerce customers with matching orders, registered users or a pasted email list. Order-based sources include guest customers.<\/li>\n<li>Filter matching orders by product, category (including child categories), creation date, order status and billing country. These order conditions must match the same order.<\/li>\n<li>Filter registered users by role and profile billing country. Only filters supported by the selected source can be used.<\/li>\n<li>Select by subscription status or a previous campaign's recorded handoff outcome. Missing or unknown delivery history is not treated as proof that an email was never sent.<\/li>\n<li>Apply exclusions, remove duplicate email addresses and respect saved unsubscribes across every recipient source.<\/li>\n<li>Save audience criteria for reuse. Each use requires a fresh recipient preview and confirmation.<\/li>\n<li>Review selection and exclusion counts and inspect why an email address is included or excluded.<\/li>\n<\/ul>\n\n<h4>Write once and reuse<\/h4>\n\n<ul>\n<li>Save incomplete drafts and return to them later without creating send jobs.<\/li>\n<li>Duplicate an existing campaign into a new draft with a separate campaign identity.<\/li>\n<li>Start with three editable templates for updates, post-purchase guidance and service announcements.<\/li>\n<li>Use WooCommerce HTML email styling, the rich-text editor and desktop\/mobile previews for a sample recipient.<\/li>\n<li>Send a test email and continue editing the draft before confirming recipients.<\/li>\n<li>Personalize the message body with {customer_name} and {product_name}. A missing customer name falls back to the email address. The product variable is a campaign-wide label, not a record of each recipient's purchases. Subjects and headings do not expand these variables.<\/li>\n<\/ul>\n\n<h4>Schedule and control sending<\/h4>\n\n<ul>\n<li>Send after confirmation, at one time in the store timezone, or at the same local time for each recipient using a clearly labelled location estimate.<\/li>\n<li>Preview the earliest\/latest scheduled send times and how many recipients use the UTC fallback.<\/li>\n<li>Pause, resume or cancel a campaign. Work that already started may finish; email already handed to the mail system cannot be recalled.<\/li>\n<li>Set shared per-minute and per-day campaign admission limits for the website. Waiting for a limit or a pause does not consume retry attempts.<\/li>\n<li>Track pending, processing, handed-off, failed, skipped and unknown outcomes, with reasons and overdue queue diagnostics.<\/li>\n<li>Recover interrupted work using confirmed recipients and bounded retries for eligible known failures. Unknown handoff outcomes are not automatically retried.<\/li>\n<\/ul>\n\n<h4>Subscription and privacy tools<\/h4>\n\n<ul>\n<li>Keep subscribed, unsubscribed and unknown states separate, with the recorded source and time where available.<\/li>\n<li>Preview subscription\/suppression imports before applying them. Repeated imports do not create duplicates or remove existing opt-outs.<\/li>\n<li>Include signed unsubscribe links and check suppression again before handing off campaign mail.<\/li>\n<li>Use WordPress personal data export and erasure tools for registered users and guest email addresses.<\/li>\n<li>Configure optional retention for finished campaign content and personal logs while keeping the minimum suppression and duplicate-protection records.<\/li>\n<\/ul>\n\n<h4>Requirements and delivery<\/h4>\n\n<p>WooCommerce must be active. This plugin uses WooCommerce email rendering, the site's configured WordPress mail transport and Action Scheduler. A working queue runner is required for scheduled\/background work. It does not provide an SMTP service, verify inbox delivery, or track opens and clicks.<\/p>\n\n<p>Only this plugin's campaign emails are subject to its send controls and admission limits. WooCommerce transactional emails and unrelated scheduled actions keep their existing behavior. Test emails are outside the campaign admission limits.<\/p>\n\n<p>This plugin does not include recurring marketing automation, WooCommerce Subscriptions audiences, CRM synchronization or additional messaging channels.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate Advanced Notifications for WooCommerce. For a manual installation, upload the yoohw-advanced-notifications folder to wp-content\/plugins\/.<\/li>\n<li>Open Marketing &gt; Email campaigns &gt; Settings and review the sender, Reply-To, limits and retention settings.<\/li>\n<li>Open Compose, choose an audience and write your message. Save a draft or send a test email as needed.<\/li>\n<li>Select the schedule, preview the recipients, review the counts and confirm the campaign.<\/li>\n<li>Follow progress and use campaign controls in Campaigns &amp; Logs.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20an%20order%20or%20account%20mean%20a%20customer%20has%20subscribed%3F\"><h3>Does an order or account mean a customer has subscribed?<\/h3><\/dt>\n<dd><p>No. An email address in an order, account or pasted list is not opt-in evidence. Without recorded evidence the status remains unknown. You can filter audiences by subscription status. Store managers are responsible for recording the appropriate permission for their messages. An existing unsubscribe always takes priority over a new subscription import.<\/p><\/dd>\n<dt id=\"what%20does%20a%20sent%20or%20handed-off%20result%20mean%3F\"><h3>What does a sent or handed-off result mean?<\/h3><\/dt>\n<dd><p>It means the site's mail system accepted the handoff. It does not prove delivery to an inbox. Failed and unknown outcomes are shown separately. Only eligible known failures can be retried; unknown results are not automatically replayed.<\/p><\/dd>\n<dt id=\"which%20timezone%20is%20used%3F\"><h3>Which timezone is used?<\/h3><\/dt>\n<dd><p>Store-time scheduling uses the store timezone shown when composing the campaign. Recipient-local scheduling estimates a timezone only when the billing country has one supported timezone; missing or ambiguous location data uses UTC. This is a location estimate, not a confirmed customer preference. Manual lists use UTC.<\/p>\n\n<p>New schedules reject past times and local times that are missing or repeated because of daylight saving changes. They are not silently moved to another day. Confirmed UTC due times are preserved through pauses, retries and recovery; queue delays and limits may make actual sending later.<\/p><\/dd>\n<dt id=\"can%20i%20change%20a%20confirmed%20campaign%3F\"><h3>Can I change a confirmed campaign?<\/h3><\/dt>\n<dd><p>Confirmed content, recipients and scheduled times are saved for that campaign. Editing a draft or saved audience does not change it. Duplicate the campaign into a new draft to prepare another mailing, then preview and confirm again. Cancelled campaigns cannot be resumed.<\/p><\/dd>\n<dt id=\"why%20is%20a%20scheduled%20campaign%20waiting%3F\"><h3>Why is a scheduled campaign waiting?<\/h3><\/dt>\n<dd><p>Check its pause state, admission limit and queue diagnostics in Campaigns &amp; Logs. Shared limits use fixed UTC minute\/day windows; a reserved send slot may remain counted after an interrupted attempt. A working WordPress cron or queue worker is still required. The controls cannot recall mail already handed off.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20store%20and%20erase%3F\"><h3>What data does the plugin store and erase?<\/h3><\/dt>\n<dd><p>The plugin stores campaign content, confirmed recipients, scheduling and delivery records, drafts, saved audience criteria, subscription evidence and opt-outs in your WordPress database. Emails are sent through the mail transport configured on your site.<\/p>\n\n<p>WordPress Tools &gt; Export Personal Data and Erase Personal Data include this plugin's records for the requested email address, including guests. Erasure retains protective hashes and opt-out evidence to prevent reconstruction or another send. In-flight work or shared content in an active campaign may require another erasure pass after completion; the erasure result reports retained data.<\/p>\n\n<p>Retention is off by default (0 days). When enabled, hourly cleanup removes content, personal recipient details, snapshots and plugin queue arguments\/logs from eligible finished campaigns after the configured period. Active campaigns, unfinished preparation and retryable work are excluded. Minimal campaign identifiers, email hashes, outcomes, claims, counters and suppression remain. Drafts and saved criteria remain until explicitly deleted or erased. This cleanup does not remove records held by mail providers, server logs or backups.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20deactivate%20or%20upgrade%3F\"><h3>What happens when I deactivate or upgrade?<\/h3><\/dt>\n<dd><p>Deactivation cancels pending campaign work and removes the reconciliation event while retaining campaign records and opt-outs. Reactivation does not automatically restart cancelled work.<\/p>\n\n<p>When upgrading, stop background workers that have already loaded the old plugin code before replacing files. Version 0.3.0 keeps the existing plugin slug, text domain, settings, campaigns and opt-outs. Do not downgrade directly to 0.2.2, which does not understand the new cancellation and erasure protections. Data from the separate YoOhw Extra Code plugin is not imported automatically.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20the%20interface%3F\"><h3>Can I translate the interface?<\/h3><\/dt>\n<dd><p>Yes. Use the yoohw-advanced-notifications text domain and the included languages\/yoohw-advanced-notifications.pot template with Poedit or Loco Translate. Store compiled locale files in wp-content\/languages\/plugins\/ to preserve them across updates. Administrator-written email content and saved messages are not translated automatically. Preserve placeholders such as %s, {customer_name} and {product_name}.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Rename the plugin to Advanced Notifications for WooCommerce; keep the existing slug, text domain and stored data.<\/li>\n<li>Add individual campaign controls and shared sending admission limits.<\/li>\n<li>Add durable drafts, duplication, content templates and personalized previews.<\/li>\n<li>Add source-aware saved audiences and explicit timezone scheduling.<\/li>\n<li>Add subscription\/suppression administration, privacy callbacks and terminal retention.<\/li>\n<li>Preserve erased data boundaries, known-unsent history and cancellation during concurrent recovery.<\/li>\n<li>Unify campaign forms with the admin color scheme, SelectWoo fields and desktop\/mobile preview controls.<\/li>\n<li>Harden confirmed recipient snapshots, duplicate protection, bounded retries and interrupted-work recovery.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Align the translation domain with the WordPress.org slug yoohw-advanced-notifications.<\/li>\n<li>Resolve Plugin Check findings for SQL identifiers, input handling, test fixtures and plugin metadata.<\/li>\n<li>Load admin JavaScript and CSS from separate files with WordPress dependencies.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Register the languages directory on init and include a POT translation template.<\/li>\n<li>Make remaining delivery messages and status labels translatable.<\/li>\n<li>Add translator notes and translation setup instructions.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Add WooCommerce customers and Manual email list recipient sources.<\/li>\n<li>Add multi-role filtering for registered users, including preview and campaign history.<\/li>\n<li>Preserve recipient selections when restoring drafts and retrying failed schedules.<\/li>\n<li>Use native JavaScript trim() for the live preview.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Extract standalone customer email campaigns from YoOhw Extra Code.<\/li>\n<li>Remove WooCommerce Subscriptions audiences and exclusions, and Audience sync integration.<\/li>\n<li>Isolate plugin storage\/hooks and use the current store's sender defaults.<\/li>\n<\/ul>","raw_excerpt":"Create targeted WooCommerce email campaigns with reusable drafts, recipient previews, scheduling, send controls and unsubscribe management.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=393381"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yoohw"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393381"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393381"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393381"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393381"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393381"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}