我需要一些关于OpenCart的帮助
我想仅向登录的客户显示评论 [我已成功]
但是现在我只想向已经写过它的用户展示评论。
示例:
如果用户A登录并撰写了仅审核用户A,则不会看到任何其他用户
如果用户B登录并写了“仅审核”,则用户B将看到他的评论,而不是用户A或任何其他登录用户。
为什么我想要这个:
我想要,因为如果用户在几天或几个月后回来,他可以看到他的评论,我不想只向添加了该用户的用户显示所有用户的所有评论
答案 0 :(得分:1)
在模型ModelCatalogReview
中,您需要更改2个功能:getReviewsByProductId
和getTotalReviewsByProductId
。
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
。如果您使用的是其他版本,则可能需要稍微更改一下代码。