ecshop订单确认中不能显示国家省市县的解决方法

本文介绍如何解决Ecshop在下单确认页面不显示完整收货地址的问题,通过修改flow.php文件和flow.dwt模板文件,使页面能正确展示国家、省份、城市及区县等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ecshop在下订单到最后一步的时候,会再次显示收货人地址,但只显示末尾的详细地址,并不能显示前面的国家、省、市、县,这常常让顾客误以为自己的地址没有写全,于是返回去改,可是确认改好了回来最后一步又不显示省市县,非常影响购物体验,而且这个问题直到现在的ecshop2.7.3最新版也没解决,以下我们就通过修改ecshop解决这个BUG (以Ecshop 2.7.3为例)。

1、打开根目录的flow.php,定位到约487-493行。

    /* 检查收货人信息是否完整 */
    if (!check_consignee_info($consignee, $flow_type))
    {
        /* 如果不完整则转向到收货人信息填写界面 */
        ecs_header("Location: flow.php?step=consignee\n");
        exit;
    }

2、在其下面增加如下代码:

/* 取得国家 */
$country = $db->getRow("SELECT region_name FROM " . $GLOBALS['ecs']->table('region') . " WHERE region_id = ".$consignee['country']);
$smarty->assign('country', $country);
 
/* 取得省 */
$province = $db->getRow("SELECT region_name FROM " . $GLOBALS['ecs']->table('region') . " WHERE region_id = ".$consignee['province']);
$smarty->assign('province', $province);
 
/* 取得市 */
$city = $db->getRow("SELECT region_name FROM " . $GLOBALS['ecs']->table('region') . " WHERE region_id = ".$consignee['city']);
$smarty->assign('city', $city);
 
/* 取得县 */
$district = $db->getRow("SELECT region_name FROM " . $GLOBALS['ecs']->table('region') . " WHERE region_id = ".$consignee['district']);
$smarty->assign('district', $district);

3、修改模板文件flow.dwt,定位到显示详细地址的地方(因为不同的模板差异很大,所以在此无法指出在哪一行),一般为:{$consignee.address|escape},在它前面补充以下代码 {$country.region_name} {$province.region_name} {$city.region_name} {$district.region_name}


 通过以上修改,可以完美解决ecshop详细地址不显示国家、省、市、县的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值