所周知像越南,印度利西亞等國家是出來名的喜歡拒付,為了避免我們的損失我先直接讓是這些國家郵件地址的不顯示信用卡支付通道,只顯示西聯(lián)
以日付支付模塊為例為大家講解
首先要知道支付模塊的核心文件放在includes\modules\payment下,我們打開日付支付模塊的核心文件rppay.php
第一步
查找remove方法,來確定rppay支付模塊使用的常量前綴
5 |
???? $db ->Execute( "delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE_PAYMENT_RPPAY_%'" ); |
我們定義禁止國家的常量為DISABLE_COUNTRIES, 從上面可以看到日付常量前綴為MODULE_PAYMENT_RPPAY_,合起來禁止國家的常量為MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES
第二步
確定了禁止國家的常量后,將這個值加入key方法return數(shù)組中
4 |
???????? 'MODULE_PAYMENT_RPPAY_STATUS' , |
5 |
???????? 'MODULE_PAYMENT_RPPAY_ZONE' , |
6 |
???????? 'MODULE_PAYMENT_RPPAY_ORDER_STATUS_ID' , |
7 |
???????? 'MODULE_PAYMENT_RPPAY_SORT_ORDER' , |
8 |
???????? 'MODULE_PAYMENT_RPPAY_SITEID' , |
9 |
???????? 'MODULE_PAYMENT_RPPAY_PRIVATE_KEY' , |
10 |
???????? 'MODULE_PAYMENT_RPPAY_ACTION_URL' , |
11 |
???????? 'MODULE_PAYMENT_RPPAY_ORDER_PREFIX' , |
12 |
???????? 'MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES' |
第三步
我們還要講禁止國家的常量值加入安裝方法中,在上面的key方法中隨便找一個其他常量來定位,如MODULE_PAYMENT_RPPAY_STATUS, 在install方法查找這個值
1 |
$db ->Execute( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable RPPAY Module', 'MODULE_PAYMENT_RPPAY_STATUS', 'True', 'Do you want to accept RPPAY payments?', '6', '1', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())" ); |
我們依葫蘆畫瓢,將MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES也增加上
1 |
$db ->Execute( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Disable Payment Countries', 'MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES', '', 'Please Enter Country code (like US,GB)', '6', '3', 'zen_cfg_textarea( ', now())" ); |
將上面的代碼插入install方法的合適位置
注意上面的configuration_group_id對應(yīng)的6,我們自己寫的也要為6,sort_order排序的話 看你自己的愛好
第四步
查找update_status方法,在這個方法后面增加,2013-6-22更新,原來的函數(shù)寫復(fù)雜了而且有點小bug
2 |
function disable_countries(){ |
4 |
????? if ( $this ->enabled == true && MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES!= '' ){ |
5 |
???????????? $disable_countries_array = explode ( ',' , str_replace ( ' ' , '' ,MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES)); |
6 |
???????????? if (in_array( $order ->delivery[ 'country' ][ 'iso_code_2' ], $disable_countries_array )){ |
7 |
???????????????? $this ->enabled = false; |
注意:如果你是其他的支付模塊,記得將禁止國家的常量MODULE_PAYMENT_RPPAY_DISABLE_COUNTRIES改為對應(yīng)的
第五步
在update_status方法末尾添加
1 |
$this ->disable_countries(); |
第六步
到后臺卸載日付模塊,然后重裝后回多出一個選項Disable Payment Countries,這里填寫你不想這個模塊顯示的國家二位碼,多個用逗號隔開,如你要禁止美國和英國的郵寄地址使用日付插件,就填寫US,GB
未經(jīng)允許不得轉(zhuǎn)載:外貿(mào)商城系統(tǒng),外貿(mào)網(wǎng)站模板,php建站教程,zencart模板 » ZenCart支付模塊增加某些國家不顯示項