[Solved] Seeking assistance solving new users not getting a confirmation emails on WP Multisite
Problem: When a new user registers through WPForo, they do not receive a confirmation/activation email.
I know this is a popular question, and I understand from what I have read, that this is potentially a WP config issue.
I'm just hoping someone can give some assistance trying to fix or debug this issue.
After 3 days of digging through forum posts, code, tables, the WP codex, etc, I have no idea what the problem may be.
My website is running Wordpress 5.6 MultiSite, WPForo 1.9.3, serving 2 domains (same content in 2 different languages - using Multisite Language Switcher to switch between the 2 sites/languages).
The table prefix for the main domain is "wp_", for the second domain this is "wp_2_".
On MultiSite there is only one table for users, used by both domains.
I've tested this with 3 different email addresses - 3 different domains, none of them the same domain as the server domains.
Observation before activating (!) an account, which makes me think something is going wrong here;
- When signing up through WPForo, :
The user is added to the wp_users table even before activation.
The user is not added to the wp_signups table (MultiSite specific table).
No activation email for the new user send.
- When signing up with the WP native signup form (wp-signup.php):
The user is not added to the wp_users table.
The user is however added to the wp_signups table.
Proper activation email send for the new user.
Only after clicking the activation link, the user will be added to wp_users.
I suspect this is a MultiSite specific issue, but that's just a guess based on digging through all the settings, tables, code, forum posts, etc. Maybe this could be related to the WP API calls versus the WPMU API calls to register a new user?
Things I have tested and tried on the main site, based on the How-To in this forum;
1. Check your Spam / Junk folder.
Email does not go to Junk mail.
2. Disable all other plugins and test it again.
This did not make a difference.
3. Make sure your server email sender works well. Make sure you receive emails from your WordPress (on registration or on other cases...). You can check it in Dashboard > Forums > Tools > Debug > Errors & issues admin page.
No errors here, tables OK, no issues reported either.
Users and Admins do receive WPForo emails (topic notifications, etc).
4. Install SMTP plugin. The new one is Post SMTP. Do a test email sending via Post SMTP.
Test email got send correctly, and the log shows all WPForo emails that do work (eg. subscription notifications, notifications for the admins, etc). However ... the new user confirmation emails are never listed in the log (like they were never asked to be send to begin with).
5. Some shared hosting services, or some Antispam plugins try to cache emails and those are not being sent immediately. You should wait 1-30 min (e.g.: on some GoDaddy hosting plans you receive emails in 45 min).
Waited 24 hours, still no confirmation emails for new users.
6. If you're using GMail Fetch services, go to Gmail Settings > Accounts and Import and click on "Check mail now" link to load all new comments from website email server.
Not using GMail Fetch Services.
7. Make sure the "Anyone Can Register" option is enabled in WordPress Settings > General page.
MultiSite does not have that option.
On the main site, "Settings"->"Network Settings"->"User accounts may be registered" is enabled.
Not sure if this is comparable to the "Anyone Can Register" option though.
8. Make sure the "Enable User Registration email confirmation" option is enabled in Dashboard > Forums > Settings > Features admin page.
This option is enabled. I've tested with this enabled, disabled and enabled again. Still no email for new users.
9. Disable wpForo and use the WordPress native registration form to test. The native registration form can be found with this URL.
I honestly did not even dare to do disable WPForo - being afraid I'd somehow damage the forum data and have to rebuild everything. However the native registration form does work (wp-signup.php).
Note: with "Replace Registration Page URL to Forum Registration Page URL" enabled in WPForo, the native registration form still works!
While digging through the code I may (!?) have found the culprit.
I've posted my possible fix as potential bug in the hopefully appropriate sub forum.