-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Check Settings → Happy Comments first. It shows what happened to the last message the plugin tried to send: when, to which domain, the From header used, and any error WordPress reported. That one line often ends the search.
Three things it can tell you:
"This plugin has not tried to send any email yet." — nothing has been attempted. The subscription exists but the send never ran, which almost always means the comment is still in moderation. See below.
"WordPress could not send it: …" — wp_mail() refused. That is a mail configuration problem, not a plugin one. Install an SMTP plugin.
"WordPress accepted the message." — it left WordPress and vanished afterwards. Check the From address shown next to it. If your site sends through a transactional provider, an unverified sender is usually rejected silently. Point it at a verified address:
add_filter( 'happy_comments_from_address', fn() => 'hello@example.com' );Open Comments → Subscriptions. Pending rows say which of two things is happening:
- "no confirmation sent yet" — the comment is almost certainly awaiting moderation. Nothing is emailed on behalf of an unapproved comment, on purpose. Approve it and the mail goes out. Or use Send confirmation now on the row.
- "confirmation sent, waiting for the link" — the mail went out and has not been clicked. Links last 48 hours.
This catches people out most often when testing with a fresh address each time: WordPress holds every first-time commenter, so every test comment sits in moderation.
Notifications are queued rather than sent immediately, so they depend on WP-Cron running. Check with:
wp cron event list
If happy_comments_dispatch entries are piling up with timestamps in the past, cron is not running. Look for DISABLE_WP_CRON in wp-config.php — if it is set, a real cron job needs to be calling wp-cron.php.
The field is added through comment_form_submit_field, which needs the theme to use comment_form(). Themes that build their own form markup will not show it. happy_comments_show_comment_form_field is the hook for placing it yourself.
It returns nothing when comments are closed on the post. Override with:
add_filter( 'happy_comments_subscribe_form_available', '__return_true' );One-click unsubscribe is a POST to the unsubscribe URL by an unauthenticated client. Some security plugins block exactly that. Allow-list /happy-comments/unsubscribe/.
Rewrite rules. They are flushed on activation and whenever the plugin's rule version changes, but a stray caching or permalink plugin can get in the way. Re-saving Settings → Permalinks rebuilds them.
The subscription table and all settings survive deactivation. Deactivating and reactivating is safe and re-runs the schema check.
Deleting the plugin removes everything, permanently.