Skip to content

Subscribe and email notifications on status change #22

Description

@mukto90

Problem

Visitors who vote or comment get no signal when something changes. Once they leave the page they never learn that their idea moved to Planned or shipped. That is a missed retention loop and the best reason for voters to return and trust the roadmap.

Proposal

Let visitors subscribe to an item and email them when its status changes (and optionally on new team comments).

Front end

  • "Notify me" control in the popup: single email field + consent checkbox. Logged-in users get a one-click toggle.
  • Auto-offer subscription after a vote or comment ("Want an update when this ships?").
  • Every email contains an unsubscribe link (per item and "unsubscribe from all").

Back end

  • Storage: table {prefix}niroroadmap_subscribers (id, item_id, email, user_id, token, confirmed_at, created_at). Unique on item_id + email.
  • Double opt-in: send a confirmation email; only confirmed addresses are notified.
  • Trigger: set_object_terms on niroroadmap_status (status changed). Queue emails with Action Scheduler-style batching or wp_schedule_single_event so a status change on a popular item does not time out the admin request.
  • Email templates (HTML + plain text) with item title, old -> new status, link to roadmap. Template overridable from a theme folder (niroroadmap/emails/).
  • Settings: enable notifications, From name/address, subject/body customisation, "notify on comment from team".
  • Admin: subscriber count per item column; export CSV; delete a subscriber.

Privacy and compliance

  • Store only email (+ optional user ID). Include in WP personal-data export and erase tools (wp_privacy_personal_data_exporters / _erasers).
  • Unsubscribe via signed token, no login required.
  • Update readme.txt privacy section.

Acceptance criteria

  • A visitor can subscribe with email and must confirm via emailed link.
  • Changing an item's status sends one email per confirmed subscriber, in batches, and never twice for the same change.
  • Unsubscribe link works without login and takes effect immediately.
  • Unconfirmed/unsubscribed addresses never receive mail.
  • Personal data exporter and eraser cover subscriber rows.
  • Rate limit and honeypot on the subscribe endpoint.
  • Email template can be overridden by the theme and filtered.
  • Bulk status changes in admin don't send duplicate or runaway emails.
  • Respects the global enable toggle; feature fully dormant when disabled.

Dependencies

Settings page. Comments (for "team replied" notifications). Submission issue (notify the submitter when their idea is approved/shipped).

Priority rationale

Medium. High retention value but depends on submissions/comments and needs careful privacy work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureSomething we want to add

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions