如何仅显示Opencart中当前登录用户的评论?

时间:2014-07-25 20:27:26

标签: opencart

我需要一些关于OpenCart的帮助

我想仅向登录的客户显示评论 [我已成功]

但是现在我只想向已经写过它的用户展示评论。

示例:

如果用户A登录并撰写了仅审核用户A,则不会看到任何其他用户

如果用户B登录并写了“仅审核”,则用户B将看到他的评论,而不是用户A或任何其他登录用户。

为什么我想要这个:

我想要,因为如果用户在几天或几个月后回来,他可以看到他的评论,我不想只向添加了该用户的用户显示所有用户的所有评论

1 个答案:

答案 0 :(得分:1)

在模型ModelCatalogReview中,您需要更改2个功能:getReviewsByProductIdgetTotalReviewsByProductId

getReviewsByProductId

$query = $this->db->query("SELECT r.review_id, r.author, r.rating, r.text, p.product_id, pd.name, p.price, p.image, r.date_added FROM " . DB_PREFIX . "review r LEFT JOIN " . DB_PREFIX . "product p ON (r.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND r.customer_id = '" . (int)$this->customer->getId() . "' ORDER BY r.date_added DESC LIMIT " . (int)$start . "," . (int)$limit);

(注意AND r.customer_id = '" . (int)$this->customer->getId() . "'

getTotalReviewsByProductId

$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r LEFT JOIN " . DB_PREFIX . "product p ON (r.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND r.customer_id = '" . (int)$this->customer->getId() . "'");

(注意AND r.customer_id = '" . (int)$this->customer->getId() . "'

这也列出了仅登录用户的评论,因为customer_id = '0'没有评论。

稍后编辑:
这适用于Opencart 1.5.5.1。如果您使用的是其他版本,则可能需要稍微更改一下代码。