Skip to content

Troubleshooting

Simon Kraft edited this page Sep 10, 2026 · 1 revision

No email arrives

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' );

A subscription is stuck on pending

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 never arrive, but confirmations do

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 comment form has no checkbox

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.

The subscribe form does not appear

It returns nothing when comments are closed on the post. Override with:

add_filter( 'happy_comments_subscribe_form_available', '__return_true' );

The Gmail unsubscribe button does nothing

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/.

Confirmation links 404

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.

Everything looks wrong after an update

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.

Clone this wiki locally