People visiting my site have suddenly started complaining they can’t vote on comments. Guests are allowed to vote on comments freely. When I try to vote on any comment, there’s no reaction from the server, even though the progress bar is working for a second in the upper right corner of my site.
The console for debugging is reporting this issue after every vote click:
“Empty string passed to getElementById().”
I have repaired + optimized my database yesterday via PhpMyAdmin becuause of a poor MySQL performace lately and there was no error reported. It looks like after this optimization people can’t vote on comments anymore.
This issue is present when I use 2 numbers for showing voting stats for each comment (plus/minus thumbs). When I switch to 1 number system, something weird is going on. Voting suddenly works but without limitations for all users, people can click and vote for each comment repeatedly still over and over again, not only once for each comment, so this is also a "no-go" solution. I have been using WpDiscuz for years without any issues until now.
I have the latest version of WpDiscuz (4.1.1) installed on PHP 5.6 / Nginx VPS.
How to fix this?
If you have CSS / JS file optimizer/minifier plugins please deactivate, delete all cache, do Ctrl+F5 on front and check again. Some optimizer plugins damage wpDiscuz JS code on minificatio/optimization.
Also you may have JS error on front-end. Even one JS error from other plugins and theme can stop other JS functions. So pleas leave you website URL to allow us debug errors.
As far as we see you also use wpDiscuz Advanced Likers addon. Could you please deactivate this addon and delete caches? Which version of wpDiscuz Advanced Likers you use? What is the wpDiscuz version?
WpDiscuz Advanced Liking plugin (v1.0.5) is deactivated, we don't use it at this moment. WpDiscuz base version is the latest one, 4.1.1. I have already purged all caches. If you need an admin access to our Wordpress, just let me know via PM. Thank you.
I think I have found the culprit of this issue. This MySql table is reported as corrupted in my database:
wp_wc_users_voted
The table contains only the "Columns" record but there's no "Indexes" record. It's completely missing and when I click (via PhpMyAdmin) on the "Columns" record, it shows only these messages:
No index defined
No partitioning defined
This is most likely the reason of this issue. How can I fix it?
Ok, the issue has been resolved. Since repairing the particular table didn't work for me, I had to drop the "wp_wc_users_voted" table and reinstall WordPress and WpDiscuz. Now everything is back to normal, the issue is fixed. The only downside is that people who previously voted on comments will have another chance to vote on them once again but it's a small price paid for resolving this issue.
Anyway, thanks for your time and help.