PHP编程最快明白 by www.kuphp.com 案例实战zencart1.38a支付模块简化Fast and Easy Checkout配置...
zencart默認的支付功能是三步以上才能進入paypal等支付頁面的,非常繁復,所以,有必要實現(xiàn)一個一頁買單(one page checkout)的功能,現(xiàn)在,以我的成功經驗,給大家講一個成功的案例吧,絕對能弄好,如果有看不明白的可以找我,只要看完我的教程,一般是不會有問題了。
雖然可以修改checkout_shipping的內容實現(xiàn)了one page checkout的功能,但是一般的phper還是無從下手。例如,請看這個支付頁面:
這是通過手工修改的zencart的支付模塊,實現(xiàn)了one page checkout,但難點是Ajax和一些代碼邏輯。
今天,我將在我們的網站www.dm800.eu上使用專門的模塊實現(xiàn)這一功能,請先看效果:
以上是做好了的效果,www.dm800.eu我采用的是Fast and Easy Checkout模塊,只需改動少數(shù)(前臺顯示css等)代碼便可,其實不難。步驟和注意的地方如下:
前提條件:
軟件我使用的是zencart 1.38a,Fast and Easy Checkout 1.93,都是免費的,php編輯器用的是Dreamweaver。整個測試通過,如果你的zencart版本不是1.38+,建議你安裝前先備份好網站數(shù)據(jù),以防萬一,具體請看第一步。
第一步,網站數(shù)據(jù)和數(shù)據(jù)庫備份,Fast and Easy Checkout會覆蓋極個別includes或admin里的文件,比如admin里的order.php等,所以,如果你的網站改過了這些文件,就要備份后按需求改回來的。數(shù)據(jù)庫則會在configuration和configuration_group增加記錄而已。這一步是必要的,必須養(yǎng)成良好的習慣。
第二步,下載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數(shù)據(jù)庫上的SQL上運行一次,這時候,configuration約增加了23條記錄和configuration_group增加了一條記錄。當然,你也可以復制 install.sql 到 ADMIN->TOOLS->INSTALL SQL(也就是SQL運行器中進行運行)。這時候,管理后臺的configuration菜單最后出現(xiàn)了Fast and Easy Checkout configuration,進去把第一個選項Fast and Easy Checkout改為true即可。你也可以改一下跳轉到paypal時的字Checkout Confirmation Alternate Text,其他選項不需要改,數(shù)據(jù)庫和后臺配置成功。
第六步,現(xiàn)在把required_files里的文件全部覆蓋到網站的主目錄,打開你的網站,新的支付頁面是否大體出來了?現(xiàn)在,美化一下頁面的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開始編輯,因為默認的頁面顯示順序是先顯示運輸方式和支付方式的,不符合我們的習慣,我們要把顯示順序改一改,現(xiàn)在把<!--BOF SHIPPING-->前面的代碼全部剪切到<fieldset class="checkout" id="checkoutComments">這一行前面。現(xiàn)在看看效果如何吧。
然后,打開CSS\checkout.css,我們可能要在最后增加些修改的顯示樣式,比如把id為checkoutShipto的寬度改為80%,把class為checkoutAddress的邊框改為無,把class為gvBal的input框的文字上下對齊方式改為top,以及把class為cartTableHeading的背景顏色改為#dedede等。還有一些邊距也需要調小一些,具體要和你的模板搭配好。現(xiàn)在刷新再看看效果吧。
第七步,由于www.dm800.eu是免運費的,每次要點擊free shipping的checkbox,現(xiàn)在我要不這個按鈕默認是選上的,所以在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()函數(shù)刷新,這時候加載的運輸方式默認都會選上的。
第八步,把原來網站上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復制過來的,優(yōu)惠碼加上去后報錯是因為在后臺沒定義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配置...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj 2001
- 下一篇: 转 用户注册及输入框js检测范例(reg