themes
目录下),找到商品详情页的模板文件,如goods.dwt
。,,2. 在该文件中,找到显示商品信息的HTML代码块,通常是一个`或
标签。,,3. 在这个代码块中,添加两行新的HTML代码,用于显示已售商品数量和评论数量。,,
`html,已售商品数量:{sold_count},评论数量:{review_count},
`,,4. 保存模板文件并退出。,,5. 需要修改ECShop的后台控制器文件,以便在渲染商品详情页时获取已售商品数量和评论数量。打开
goods.php文件(通常位于
includes/lib_goods.php)。,,6. 在
goods.php文件中,找到
get_goods_info()函数,该函数用于获取商品信息。,,7. 在该函数中,添加两个新的变量
$sold_count和
$review_count,分别用于存储已售商品数量和评论数量。通过查询数据库来获取这两个值。,,
`php, $sql = "SELECT COUNT(*) AS sold_count FROM orders_goods WHERE goods_id = '$goods_id' AND order_status = 3";, $result = $db->getOne($sql);, $sold_count = $result['sold_count'];,, $sql = "SELECT COUNT(*) AS review_count FROM reviews WHERE goods_id = '$goods_id'";, $result = $db->getOne($sql);, $review_count = $result['review_count'];,
`,,8. 将
$sold_count和
$review_count赋值给模板变量,以便在商品详情页显示。,,
`php, assign('sold_count', $sold_count);, assign('review_count', $review_count);,
`,,9. 保存
goods.php文件并退出。,,10. 重新生成ECShop的缓存,使修改生效。可以登录ECShop后台,点击“清除缓存”按钮,或者手动删除
data/cache`目录下的所有文件。,,访问商品详情页,应该可以看到已售商品数量和评论数量已经显示在页面上了。在ECShop中增加商品详情页的已售商品数量和评论数量,可以通过以下步骤实现:
添加代码以获取已售商品数量和评论数量
1、修改goods.php文件:
在页面最下面加入两个函数get_buy_sum($goods_id)
和get_comment_num($goods_id)
。
```php
function get_buy_sum($goods_id) {
$sql = 'SELECT IFNULL(SUM(g.goods_number), 0) ' .
'FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o, ' .
$GLOBALS['ecs']->table('order_goods') . ' AS g ' .
"WHERE o.order_id = g.order_id " .
"AND o.order_status = '" . OS_CONFIRMED . "' " .
"AND o.shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) .
" AND o.pay_status " . db_create_in(array(PS_PAYED, PS_PAYING)) .
" AND g.goods_id = '$goods_id'";
return $GLOBALS['db']->getOne($sql);
}
function get_comment_num($goods_id) {
$sql= "select count(*) from ".$GLOBALS['ecs']->table('comment')." where id_value='".$goods_id."' AND status = 1";
return $GLOBALS['db']->getOne($sql);
}
```
2、在goods.php文件中分配变量:
在$smarty->display('goods.dwt', $cache_id);
之前添加以下代码:
```php
$smarty->assign('buy_num',get_buy_sum($goods_id));
$smarty->assign('comment_num',get_comment_num($goods_id));
```
修改模板文件以显示数据
3、编辑goods.dwt模板文件:
在大约第221行附近添加如下代码:
```html
<!-{if $buy_num} 已出售量-->
<li class="clearfix">
<dd>
<strong>累计售出:</strong>{$buy_num}
</dd>
</li>
<!--{/if}-->
<!-{if $comment_num} 评论数量-->
<li class="clearfix">
<dd>
<strong>评论数量:</strong><a href="#comment">{$comment_num}</a>
</dd>
</li>
<!--{/if}-->
```
相关问题与解答
1、问题一:如何确保商品列表页的评论数量能即时更新?
回答:由于ECShop系统有缓存机制,评论数量不会立即更新,要实现即时更新,可以修改category.php文件,在category_get_goods()函数部分找到对应的SQL语句并添加评论数量的查询。
2、问题二:如何在商品搜索页显示商品的货号?
回答:在ECShop的标准安装中,商品货号(goods_sn)可能不会在商品搜索页面显示,通过编辑核心文件,可以找到相关的SQL语句并添加商品货号字段,使其在搜索结果中可见。
到此,以上就是小编对于“ecshop商品详情页增加已售商品数量和评论数量的方法”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。