We are using wpdiscuz for comments in our blog section of our site, which consists of:
-Wordpress (latest)
- Listify theme (latest)
The problem we are facing is that the ratings are not shown correctly. Please visit this page:
https://certs-it.com/2018/05/01/thassos-the-emerald-island/
As you can see here, there are eight comments. All of them have a rating of 5-stars. This is reflected at the average shown, which is 5. However, the number of comments, is NOT correct, the rating shows 5/2, while it should show 5/8.
We also have noticed that if a guest enters a comment, after it is approved, it is not reflected in the number of rating comments. The average is updated correctly to whatever value it should be, but the number of comments is not. The only way to update the number of comments correctly, is if the guest commenter does an "Edit" of his comment and saves it. Comments entered by known users are counted correctly.
In Live Update, I have "Always check and update automatically" and "Disable Live Update for Guess" to off.
Any help will be greatly appreciated.
Hi sv1cec,
Thank you for letting us know, we'll check and back to you asap.
Any news about these? It is getting quite frustrating.
Hi sv1cec,
We couldn't find such an issue on our test websites. Could you please uninstall wpDiscuz then install and activate it again?
Will that loose all our existing comments?!?!!?
No, the comments will not be lost after uninstalling the wpDiscuz plugin.
I did as you suggested, but the results are still strange.
For example, there is a page which shows Rating (4.75 / 4) when there are five comments without rating and one comment with a 4-star rating. Typically, this should show either Rating (4 / 1) or Rating (0.67 / 6) depending on how the calculation is done. If you count only comments which have a rating then it should be 4 / 1. If you count all comments and average them, then 4+0+0+0+0+0=4 so 4/6 is 0.67 / 6.
I tried to troubleshoot your logic in /wp-content/plugins/wpdiscuz/forms/wpdFormAttr/Form.php, by adding some code to show how these results are calculated. The code looks like this:
$var1.='<br>PostID: ' . $postid . ' - Metakey: ' . $metaKey . ' - Rating: ' . $rating . ' - Count: ' . $count . ' - TempRating: ' . $tempRating . ' - TempRatingCount: ' . $tempRatingCount . '<br>';
and then I added this to $html like:
$html .= $var1;
What I get is this:
VAR1:
PostID: 18392 - Metakey: custom_field_5b1b87271090f - Rating: 5 - Count: 3 - TempRating: 15 - TempRatingCount: 3
PostID: 18392 - Metakey: custom_field_5b1b87271090f - Rating: 4 - Count: 1 - TempRating: 19 - TempRatingCount: 4
The problem is, that the first line, which gives a TempRating of 15 and a TempRatingCount of 3 doesn't correspond to any records in my commentmeta table!!! There are absolutely no records having a rating of 5. Here are two screenshots which show the records with meta_key = rating and meta_key = custom_field_5b1b87271090f.
I do not know where the records shown in the first line come from, but I know there are no records which can give these numbers.
If you want me to give you access to the site I use to do my experiments, please email me for log in credentials.
Well, it appears that you have corrected the problem in your latest version (5.1.3). Thanks!!!