如何在ecshop商品详情页显示已售商品数量和评论数量?

avatar
作者
筋斗云
阅读量:0
在ECShop商品详情页增加已售商品数量和评论数量,可以通过修改模板文件和数据库查询来实现。具体步骤如下:,,1. 打开ECShop的模板文件夹(通常位于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中增加商品详情页的已售商品数量和评论数量,可以通过以下步骤实现:

如何在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商品详情页增加已售商品数量和评论数量的方法”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!