zencart默认的支付功能是三步以上才能进入paypal等支付页面的,非常繁复,所以,有必要实现一个一页买单(one page checkout)的功能,现在,以我的成功经验,给大家讲一个成功的案例吧,绝对能弄好,如果有看不明白的可以找我,只要看完我的教程,一般是不会有问题了。

虽然可以修改checkout_shipping的内容实现了one page checkout的功能,但是一般的phper还是无从下手。例如,请看这个支付页面:

这是通过手工修改的zencart的支付模块,实现了one page checkout,但难点是Ajax和一些代码逻辑。

今天,我将在我们的网站www.dm800.eu上使用专门的模块实现这一功能,请先看效果:

以上是做好了的效果,www.dm800.eu我采用的是Fast and Easy Checkout模块,只需改动少数(前台显示css等)代码便可,其实不难。步骤和注意的地方如下:

前提条件:

软件我使用的是zencart 1.38a,Fast and Easy Checkout 1.93,都是免费的,php编辑器用的是Dreamweaver。整个测试通过,如果你的zencart版本不是1.38+,建议你安装前先备份好网站数据,以防万一,具体请看第一步。

第一步,网站数据和数据库备份,Fast and Easy Checkout会覆盖极个别includes或admin里的文件,比如admin里的order.php等,所以,如果你的网站改过了这些文件,就要备份后按需求改回来的。数据库则会在configuration和configuration_group增加记录而已。这一步是必要的,必须养成良好的习惯。

第二步,下载Fast and Easy Checkout 1.93,可以用google搜索:Fast and Easy Checkout 1.93 download,出来第一个就是啦,这是英文的,没有带中文等语言,呆会给大家讲语言包翻译。我用的下载地址是:http://www.numinix.com/fast-and-easy-checkout-for-zen-cart,点download now即可,不用放在购物车里面的。

第三步,解压缩Fast and Easy Checkout,对着required_files文件夹,查找所有叫YOUR_TEMPLATE,全部重命名为你的网站里对应的一个TEMPLATE 名字,并且把required_files里的admin文件夹重命名为对应的你的管理文件夹名字。这一步用于最后覆盖用。

第四步,把includes\languages\english复制成你的语言目录名称,对应你网站的这个目录的几个语言,里面的php文件的 define都要一一翻译过来,否则会只看到英文的,小技巧:这里的对应语言的TEMPLATE目录下login.php、logoff.php你的网站对应的上一级目录是有的,你可以参考一下,只要复制一份再把多出来的定义加上去就行。

第五步,进phpmyadmin,把install.sql里的内容复制了在zencart数据库上的SQL上运行一次,这时候,configuration约增加了23条记录和configuration_group增加了一条记录。当然,你也可以复制 install.sql 到 ADMIN->TOOLS->INSTALL SQL(也就是SQL运行器中进行运行)。这时候,管理后台的configuration菜单最后出现了Fast and Easy Checkout configuration,进去把第一个选项Fast and Easy Checkout改为true即可。你也可以改一下跳转到paypal时的字Checkout Confirmation Alternate Text,其他选项不需要改,数据库和后台配置成功。

第六步,现在把required_files里的文件全部覆盖到网站的主目录,打开你的网站,新的支付页面是否大体出来了?现在,美化一下页面的CSS等,如下:

进入required_files\includes\templates\(YOUR_TEMPLATE)目录,打开template里的tpl_checkout_default.php文件,找到这一行:

<?php include(DIR_WS_TEMPLATE . 'templates/tpl_checkout_stacked.php'); ?>

可以知道checkout的显示是另一个文件控制的。

打开tpl_checkout_stacked.php开始编辑,因为默认的页面显示顺序是先显示运输方式和支付方式的,不符合我们的习惯,我们要把显示顺序改一改,现在把<!--BOF SHIPPING-->前面的代码全部剪切到<fieldset class="checkout" id="checkoutComments">这一行前面。现在看看效果如何吧。

然后,打开CSS\checkout.css,我们可能要在最后增加些修改的显示样式,比如把id为checkoutShipto的宽度改为80%,把class为checkoutAddress的边框改为无,把class为gvBal的input框的文字上下对齐方式改为top,以及把class为cartTableHeading的背景颜色改为#dedede等。还有一些边距也需要调小一些,具体要和你的模板搭配好。现在刷新再看看效果吧。

第七步,由于www.dm800.eu是免运费的,每次要点击free shipping的checkbox,现在我要不这个按钮默认是选上的,所以在tpl_checkout_stacked.php代码最后增加以下代码:

1 <?php
2  //code:free shipping checked,power by www.dm800.eu
3  if($_SESSION['shipping']==null){ ?>
4  <script type="text/javascript" language="javascript"><!--//
5 updateForm();
6 //--></script>
7 <?php }

这几行代码是如果shipping没记录则使用jQuery初始化,调用updateForm()函数刷新,这时候加载的运输方式默认都会选上的。

第八步,把原来网站上includes\modules\order_total\ot_coupon.php,找到这一行:

$ratioTax = $adjustedTax/$order->info['tax'];

改为:

1 //$ratioTax = $adjustedTax/$order->info['tax'];
2 $ratioTax = (isset($order->info['tax']) && $order->info['tax'] != 0) ? $adjustedTax/$order->info['tax'] : 0;

这是zencart1.38+一个bug,第二行代码我是从1.39h复制过来的,优惠码加上去后报错是因为在后台没定义tax时,会有如下报错:

Warning: Division by zero in 。。。/public_html/includes/modules/order_total/ot_coupon.php on line 364

这时候,我们的Fast and Easy Checkout配置完毕。

其实,整个过程看上去很难,其实,做起来还是比较简单的,也就是小小的错误修复一下,Fast and Easy Checkout采用jQuery来刷新修改自己的地址,这是比较好的地方,还有其他功能比如Checkout Without Account  充许用户不注册购买等,适合做不同的网站需求。

转载于:https://www.cnblogs.com/lookyou/archive/2011/08/08/2131314.html

PHP编程最快明白 by www.kuphp.com 案例实战zencart1.38a支付模块简化Fast and Easy Checkout配置...相关推荐

  1. 【雕爷学编程】Arduino动手做(78)---槽型光耦测速模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  2. Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...

    JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过! 1.JPG (37.82 KB, 下载次数: 0) 2018-12-3 09:40 上传 2.JPG (28 ...

  3. magento -- 开发magento快钱支付模块

    浪费了三四天时间终于完成了magento的快钱支付模块.其实对于熟悉magento的程序员来说,开发一个普通的支付模块不需要太多的时间,可能一天或者一个下午就可以完成开发和测试.然而快钱的magent ...

  4. c语言网络编程电子书下载,Visual C++网络编程案例实战 中文pdf版[11MB]

    Visual C++网络编程案例实战结合21个实战开发案例,全面.系统地介绍了Visual C++网络开发所涉及的各种技术.读者可以以<Visual C++网络编程案例实战>中的案例为基础 ...

  5. 冰河最新出版的《深入理解高并发编程:核心原理与案例实战》到底讲了些啥?(视频为证)

    大家好,我是冰河~~ 最近有很多小伙伴问我:<深入理解高并发编程:核心原理与案例实战>这本书有没有目录.我:安排!这不,我连夜录制了这本书的整体内容,希望能够为小伙伴们带来实质性的帮助,直 ...

  6. python实操100例乘法表_Python编程快速上手——Excel表格创建乘法表案例分析

    本文实例讲述了Python Excel表格创建乘法表.分享给大家供大家参考,具体如下: 题目如下: 创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel电子表格中 ...

  7. Visual C++网络编程案例实战

    <Visual C++网络编程案例实战(附光盘)>共15章,分为3篇.     第1篇 介绍了Visual C++网络开发基础知识,包括Visual C++网络编程概述.Socket套接字 ...

  8. 这五个网站可以让你免费学习编程,快收藏!

    学习编程技术是现在很多人的一个选择,互联网快速发展的时代,越来越多的人选择学习编程技术,来实现自己的职业梦想.下面小千就为大家整理了五个可以免费学习编程语言的网站,希望能够帮助到大家. 1.W3sch ...

  9. 阜阳有儿童计算机编程吗,终于明白儿童有必要学编程吗

    学习少儿编程不是要让孩子成为程序员,而是帮助孩子创造一套有效的解决问题的方法,今天小编主要给大家分享儿童有必要学编程吗,希望对你们有帮助! 一.抽象逻辑思维能力 6-14岁是学习少儿编程的最佳年龄.逻 ...

最新文章

  1. 数据分析 python 用途-想做好数据分析,不用Python怎么行?
  2. TfidfVectorizer(stop_words='english',ngram_range=(1,1))中ngram_range的意义
  3. 浅析何时进行概况分析
  4. android倒角按钮,Android实现圆角Button按钮
  5. div table 超出了_div包裹的table,table的宽度超出了的宽度,出现的滚动条的在windows下无法拖动...
  6. 自动化测试学习之路--java 数组
  7. 2018年python工作好找吗-2018年Python发展前景如何?Python就业有哪些方向?
  8. async/await实现同步
  9. OBS Studio是一款非常专业的视频直播录制软件,完全免费
  10. Unity3d C#实现语音合成(TTS)试听并选择路径保存下载功能(含源码)
  11. 201927 钢琴指法简介
  12. 7年弹指一挥间:iOS演进史
  13. 勾号、叉号、圈号的收集
  14. 微信小程序map中polyline的坑
  15. [usaco2010 Oct]Soda Machine (入门oj Problem 6195 )
  16. 「Gitea篇」如何用Git平台账号登录建木CI
  17. ChinaSoft 论坛巡礼 | 群智化软件测试技术和方法
  18. sysbench花式采坑之一:自增值导致的TPS不可靠
  19. 开源数据库MySQL DBA运维实战 第2章 SQL1
  20. Velocity最简易的Servlet加载

热门文章

  1. stl-unique()函数去重
  2. 【IPFS + 区块链 系列】 入门篇 - IPFS+IPNS+个人博客搭建
  3. 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
  4. 深入理解Fabric环境搭建的详细过程
  5. python 惰性_Django中的“惰性翻译”方法的相关使用
  6. 利用dos管道命令获取屏幕内容_汇编语言--常用DOS功能
  7. JZOJ 4919. 【NOIP2017提高组模拟12.10】神炎皇
  8. echarts迁徙图 vue_vue中高德搭配echarts做数据迁徙流线图
  9. vue按钮字体大小设置_vue-elementui之按钮
  10. julia 调用python库_Julia调用Python实现超像素分割SLIC算法