1.问题
发布商品时,选择的运费模板只能到市,而不能精确到区县,又且,只做陕西。所以需求就又来了。

通过源码查到模板页面/templates/default/member/transport.add.php,不过没有什么用,line 95引入了另一模板页,require(template(‘member/transport_area_’.(strtolower(CHARSET)==’utf-8’?’utf-8’:’gbk’)));即在选择区域列表项有两个不同编码文件,分别是transport_area_utf-8.php和transport_area_gbk.php。先改一个便好。

首先,要有区县的数据,区县数据怕搜到的缺怎么办,只好去淘宝模板那里一组组里弄出来。
现在开始在模板中加区县的显示,用的<select>(淘宝页面本来也就是select,比较方便)但未果,因为多选比较难调,而且还得处理较多的JS,实在对JS没有过兴趣。那么,就继续用市的样式开始。也好操作,最后区分哪些是真的市,哪些是区县就好。

2.精确
选定之后,除了【运送到】区域的显示,还有和数据库关联(用户提交订单的时候,才会取到地区邮费),这时,暴力解:看到宝鸡的values是440,直接全局搜,出来好多文件,一番排查下来,锁定几个文件:

  • transport.php line278 数组,形如 440=>27 ①
  • area.php 更为庞大的数组 ,下面说 ②
  • area_array.js 重要,这里应该是运送会用到的信息,很全,地域,市为key,下级为values,可以使用,早知就不用去淘宝页面复制了

现在添加数据到上面两个文件,数据源在ID.txt,帖一部分:

3.解决
数据有了,写个脚本生成吧,无奈Python才刚学,C&C++又好久没用,还是用PHP写吧

针对文件①脚本,形如440=>27,

<?php //440=>27,header("Content-type: text/html; charset=utf-8"); $file=fopen("ID.txt",'r') or die ("error!");$str=fread($file,filesize("ID.txt"));if(strlen($str)%2 != 0)exit();//$lab=False;$str_arr=array();for($i=0,$j=0;$i<strlen($str);$i++){if($str[$i]=="'") {$i++;$str_arr[$j]=substr($str,$i,4);$j++;}}$str="";for($i=0;$i<count($str_arr);$i+=4){  //跨度为4是因为 单引号隔4个取组后四位。这是得要多信任数据啊=-=//echo $str_arr[$i].'<br/>';$str.=$str_arr[$i]."=>27,";}echo $str;//print_r($str_arr);fclose($file);
?>

效果如….
最后多出的一个逗号都不用取了,效果刚好。
针对文件②脚本,形如 440 => array ( ‘area_name’ => ‘宝鸡’, ‘area_parent_id’ => ‘27’, ),

<?php //440 => array ( 'area_name' => '宝鸡', 'area_parent_id' => '27', ), header("Content-type: text/html; charset=utf-8"); $file=fopen("ID.txt",'r') or die ("error!");$str=fread($file,filesize("ID.txt"));if(strlen($str)%2 != 0)exit();$lab=False;$str_arr=array();//稍作改动,只取单引号内内容,这其实是第一次想实现的=-=for($i=0,$j=0;$i<strlen($str);$i++){if((!$lab) && $str[$i]=="'") {$i++;$str_arr[$j]='';$lab=True;}else if($lab && $str[$i]=="'"){$lab=False;$j++;}if ($lab){$str_arr[$j].=$str[$i];}       }$str="";for($i=0,$j=1;$i<count($str_arr);$i+=2,$j+=2){  //跨度2是因为前面ID($i),后面地区($j)//echo $str_arr[$i].'--'.$str_arr[$j].'<br/>';$str.=$str_arr[$i]."=> array ( 'area_name' => '$str_arr[$j]', 'area_parent_id' => '27', ),";echo $str_arr[$i]."=> array ( 'area_name' => '$str_arr[$j]', 'area_parent_id' => '27', ),<br/>";}//echo $str;//print_r($str_arr);fclose($file);
?>

另,发现JS中有区域选择相关代码操作,不去动它。理由,前面有。
然后检查了下数据库,运费模板有添加的区县值。
现在,开始改订单这块,查多次后,决定修改templates/default/home/cart_shipping.php

city_id="$val['city_id']"; //原数据
//改动:
$cityToArea=array(438,439,440,441,442,443,444,445,446,447);//数组存储陕西省份,然后判断,不是陕西的省就用原数据,即市的ID,否则,用区县ID
city_id="<?php if(!in_array($val['city_id'],$cityToArea))  echo $val['city_id'];else{echo $val['area_id']; }?>"

已经好了,添加的几个测试数据都行,但是(我哥哥告诉我,”但是”前面的都是废话 ——权力的游戏)还有一个小问题,就是把transport_area_gbk.php和transport_area_utf-8.php数据添加完整,继续用前面写的脚本生成所需数据:

形如
市
区*3<br/>
区*3<br/>
...
<hr/>
市
//不管区隔几个换行和hr了,直接输出区就好了。
...
<?php /*<span class="areas"><input type="checkbox" class="J_City" id="J_City_4669" value="4669"/><label for="J_City_4669">新城区</label></span>*/header("Content-type: text/html; charset=utf-8"); $file=fopen("ID.txt",'r') or die ("error!");$str=fread($file,filesize("ID.txt"));if(strlen($str)%2 != 0)exit();$lab=False;$str_arr=array();//稍作改动,只取单引号内内容,这其实是第一次想实现的=-=for($i=0,$j=0;$i<strlen($str);$i++){if((!$lab) && $str[$i]=="'") {$i++;$str_arr[$j]='';$lab=True;}else if($lab && $str[$i]=="'"){$lab=False;$j++;}if ($lab)$str_arr[$j].=$str[$i];     }$str="";for($i=0,$j=1,$k=1;$i<count($str_arr);$i+=2,$j+=2,$k++){  //$k为<br/>位,最后弃用$str.='<span class="areas"><input type="checkbox" class="J_City" id="J_City_'.$str_arr[$i].'" value="'.$str_arr[$i].'"/><label for="J_City_'.$str_arr[$i].'">'.$str_arr[$j].'</label></span>';//if($k%6==0) $str.= '<br />';}echo $str;fclose($file);
?>

运行结果是:

但不是要取这些,取页面html源码即可。

最后,稍作改动就好了。(其实,并不是,还有用JS检测全选,取消等),稍微写了下完成了。
最终效果:

注:
1. 谢绝转载
2. 程序不要用,都是根据需要特写的
3. 程序员节快到了,预祝各位monkey节日快乐。是不是该玩个hackthon,但没人会要我=-=

再摸shopnc——修改运费模板相关推荐

  1. win10无法修改mac地址_为什么淘宝运费模板无法修改发货地址?发货地址改不了是什么原因?...

    有的淘宝卖家在修改运费模板时,发现之前填写的旧发货地址无法修改.为什么淘宝运费模板无法修改发货地址?发货地址改不了是什么原因?想要修改成新的发货地址应该怎么办呢?接下来就让我们一起来了解下吧.图1 运 ...

  2. 艾司博讯:拼多多运费模板修改流程

    在拼多多开店的商家朋友,需要对各个方面都做好设置.比如与运费模板这一块,不管包不包邮,都要设置好模板,当信息有所变动的时候,也需要及时调整.那么拼多多运费模板在哪里修改,下面就为大家讲一讲. 拼多多运 ...

  3. Ecshop实现仿Taobao地区运费模板

    2019独角兽企业重金招聘Python工程师标准>>> 淘宝网(Taobao)购物的宝贝详情页面,可以针对不同地区显示不同运费,运费由后台设定:结算时间,按重量.件数计算运费.Ecs ...

  4. php电子商务模板,关于php:电商系统设计之运费模板下

    电商大伙每天都在用,相似某猫,某狗等. 电商零碎设计看似简单又很简略,看似简略又很简单 本章适宜初中级工程师细看,大佬请随便 [腾讯云]云产品限时秒杀,爆款1核2G云服务器,首年99元 前言 在订单零 ...

  5. MyEclipse修改Servlet模板

    进入myeclipse的安装路径 然后进入plugins文件夹 打开搜索框,输入 *wizard* 找到名字是 com.genuitec.eclipse.wizards_11.5.0.me201310 ...

  6. java运费模板设计_猿实战17——实现你未必知晓的运费模板

    猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,变身猿人找到工作不是问题.还等什么呢?关注公号,取基 ...

  7. PHP电商运费模板,拼多多运费模板怎么设置?怎么使用运费模板?

    拼多多开店后在上传产品的时候,需要我们选择运费模板.这就需要我提前设置好以后直接进行选择即可.那么,拼多多运费模板怎么设置?怎么使用运费模板?感兴趣的朋友一起来了解一下吧. 第一步:打开并登陆拼多多商 ...

  8. PHP电商运费模板,电商系统设计之运费模板(下)

    电商大伙每天都在用,类似某猫,某狗等. 电商系统设计看似复杂又很简单,看似简单又很复杂 本章适合初中级工程师细看,大佬请随意 前言 在订单系统中,运费模板是其中一个重要组成部分,看似简单的一个设置,在 ...

  9. java电商快递费收取_电商系统设计之运费模板(上)

    电商大伙每天都在用,类似某猫,某狗等. 电商系统设计看似复杂又很简单,看似简单又很复杂 本章适合初中级工程师细看,大佬请随意 前言 在订单系统中,运费模板是其中一个重要组成部分,看似简单的一个设置,在 ...

  10. java运费模板设计_电商系统设计之运费模板(下)

    电商大伙每天都在用,类似某猫,某狗等. 电商系统设计看似复杂又很简单,看似简单又很复杂 本章适合初中级工程师细看,大佬请随意 前言 在订单系统中,运费模板是其中一个重要组成部分,看似简单的一个设置,在 ...

最新文章

  1. 谷歌官方扩展UI组件---SlideTabLayout
  2. Oracle 11gR1中细粒度拜候搜集效劳(2)
  3. C语言 strlen 函数 - C语言零基础入门教程
  4. Eclipse中安装TestNG插件
  5. 为Web Service添加缓存
  6. 【Codeforces 321E / BZOJ 5311】【DP凸优化】【单调队列】贞鱼
  7. 一个成功的BI项目实施需要注意哪些?
  8. UVA10033 Interpreter【模拟】
  9. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理
  10. 计算机入侵有什么方法,教你个一看就会的入侵方法 -电脑资料
  11. 淘宝APP用户行为分析
  12. centos8修改主机名称
  13. 如何通过电感+MOS管实现BUCK降压和Boost升压
  14. 解决:tcpdump -w xxxxx.pcap 提示 Permission denied
  15. 软件测试工程师简历项目经验怎么写?--10000个已成功入职的软件测试工程师简历范文模板(含北凡老师的真实简历)
  16. Android9.0对非 SDK 接口的限制
  17. AFL fuzzing tcpdump-tcpdump-4.9.0
  18. Cesium空间分析-填挖方计算(地形、模型通用)
  19. 形容人的内核是什么意思_请问甜文的内核是什么?
  20. SRPG游戏开发(三)第二章 创建项目

热门文章

  1. java 痛并快乐着 day02(2021-11-09)
  2. 火狐插件 测试浏览器兼容性_在Firefox中测试和报告插件兼容性
  3. openwrt-mt7628 wds配置
  4. python实现排列组合
  5. Python窗体控制相关方法
  6. python 基于卡方值分箱算法
  7. freenom 加 cloudflare免费域名申请
  8. 【食品加工技术】第二章 果蔬加工技术 笔记
  9. sphinx使用笔记
  10. Rotation - 旋转