求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

Zen Cart的安装、设置、升级讨论和使用技巧交流

版主: shaning

求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子zch0071 » 2011-04-16 21:50

求助!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的选?
个人感觉既然提示了超重,但是运费的选项还是存在的,这种客户还是可以选择0运费下单,这样订单下了之后,运费就是为0,所以求助,怎么修改运费模块中的php代码,当超重之后,运费的选项就消失了,这个应该是所有的运送模块都存在的问题,EMS,DHL,TNT等运送模块都是存在这个问题,所以在这里求个解决的办法。(个人真的对php代码不熟悉。)
以下是图片

如图片中红色划圈部分,在当重量超过运费设置时候,如何取消掉选择项

这是运费模块的php代码
代码: 全选
if ($shipping == -1) {
          $shipping_cost = 0;
          $shipping_method = MODULE_SHIPPING_CRM_UNDEFINED_RATE;
        }
zch0071
中级会员
中级会员
 
帖子: 71
注册: 2009-06-07 12:10

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子zch0071 » 2011-04-16 22:45

各位版主 各位大神 我们亲爱的Jack。谁能解决这个很小的小问题啊?
zch0071
中级会员
中级会员
 
帖子: 71
注册: 2009-06-07 12:10

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子zch0071 » 2011-04-17 12:37

有大神能解决这个问题么?
zch0071
中级会员
中级会员
 
帖子: 71
注册: 2009-06-07 12:10

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子kira » 2011-04-18 23:54

有没有试过 运费配置 最后 加一个 按价格百分比收取
这样 可能不是最完美的解决方案
但应该不至于出现0运费的情况
头像
kira
VIP会员
VIP会员
 
帖子: 1398
注册: 2010-03-06 11:38
QQ 帐号: 6171718

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子zch0071 » 2011-04-19 11:52

运费设置只有2KG以内的。超过2Kg就没有了。
其他配送是可以的。
但是设置的重量都是有设定的。比如只设置50KG以前的运费,一旦重量超过50KG,那么所有运费都会显示为0.因为超过50KG的运费参数没有设置。所以想问下怎么修改代码,才能把前面的那个选择项不显示。
我个人修改了“MODULE_SHIPPING_CRM_UNDEFINED_RATE”对应的english语言修改为“Over weight, please choose other shipping method!”
只能是这样。但是前面的选择项,就是那个圈圈我想取消掉。
zch0071
中级会员
中级会员
 
帖子: 71
注册: 2009-06-07 12:10

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子Jack » 2011-04-20 8:18

是说如果超重就不让客户下单吗?
可以设置一个比较大的运费,例如 2000:99999,这样超过2公斤时,客户因为运费太贵就不会下单了
头像
Jack
论坛版主
论坛版主
 
帖子: 12265
注册: 2004-12-16 10:04

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子zch0071 » 2011-04-22 20:03

这样的会会不会很麻烦,Jack。有没有那种if语句控制,如果超重了,这个运费选项就直接不会出现。就相当于在后台关闭运费选项那种。
zch0071
中级会员
中级会员
 
帖子: 71
注册: 2009-06-07 12:10

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子21458796 » 2016-04-08 17:47

有同样的问题,有没有高手能解决啊
21458796
 
帖子: 1
注册: 2016-04-08 17:14

Re: 求助版主、Jack和各位大神!当运送商品重量超过运费模块设置的重量时,价格显示0,怎么取消运费选择的圈?

帖子Jack » 2016-04-12 11:20

好多年前的问题了 ...

以DHL Zones 配送模块为例,打开dhlzones.php文件,

查找
代码: 全选
    function dhlzones() {

在其后添加代码
代码: 全选
      global $order, $total_weight, $total_count, $currencies;



查找
代码: 全选
       $this->num_zones = 9;


在其后添加代码
代码: 全选
      // 当产品重量大于配送模块允许范围,不显示该配送模块
      $dest_country = $order->delivery['country']['iso_code_2'];
      $dest_zone = 0;

      for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_DHLZONES_COUNTRIES_' . $i);
        $countries_table = strtoupper(str_replace(' ', '', $countries_table));
        $country_zones = split("[,]", $countries_table);
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
        if (in_array('00', $country_zones)) {
          $dest_zone = $i;
          break;
        }
      }

      if ($dest_zone == 0) {
        $this->enabled = false;
      }

      $zones_cost = constant('MODULE_SHIPPING_DHLZONES_COST_' . $dest_zone);
      $zones_table = split("[:,]" , $zones_cost);
      $size = sizeof($zones_table)-1;
       
      if (((MODULE_SHIPPING_DHLZONES_METHOD == 'Weight') and (ceil($total_weight) > $zones_table[$size]))
           OR ((MODULE_SHIPPING_DHLZONES_METHOD == 'Price') and (($_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices()) > $zones_table[$size]))
           OR ((MODULE_SHIPPING_DHLZONES_METHOD == 'Item') and (($total_count - $_SESSION['cart']->free_shipping_items()) > $zones_table[$size])))
      {
           $this->enabled = false;
      }
Zen Cart - 让每个人拥有自己生意的梦想成真
加入Zen Cart地图 | 恕不回复站内短信提问 | QQ: 3171061
头像
Jack
论坛版主
论坛版主
 
帖子: 12265
注册: 2004-12-16 10:04



  • 相关话题
    回复总数
    阅读次数
    最新文章

回到 安装设置



在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客

cron