本文最後更新日期:2012年3月12日
Opencart的註冊表格有超過200個國家和特殊政區可供選擇,真是他媽的詳盡!連南極洲都有,以便你將網店生意拓展到企鵝族群。
但是,光找國家名稱眼睛都看到脫窗了 。
若果將國家和特殊政區按世界七大洲排序,就可以方便客戶快速揀選。
修改程式方法:
- 分別編輯以下檔案:
- [catalog/view/theme/default/template/account/address_form.tpl]
- [catalog/view/theme/default/template/account/register.tpl]
- [catalog/view/theme/default/template/affiliate/edit.tpl]
- [catalog/view/theme/default/template/affiliate/register.tpl]
- [catalog/view/theme/default/template/checkout/address.tpl]
- [catalog/view/theme/default/template/checkout/guest.tpl]
- [catalog/view/theme/default/template/checkout/guest_shipping.tpl]
- [catalog/view/theme/default/template/checkout/register.tpl ]
- [catalog/view/theme/default/template/total/shipping.tpl]
- 搜索以下程式碼:
<?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> - 將以上程式碼替換為以下程式碼:
<?php $countries_sort_by_continent=array( array( 'name' => 'Asia','iso_code_2' => array( "AF" /*Afghanistan, Islamic Republic of阿富汗伊斯蘭共和國*/ , "AZ" /*Azerbaijan, Republic of阿塞拜疆共和國*/ , "BH" /*Bahrain, Kingdom of巴林王國*/ , "BD" /*Bangladesh, People's Republic of孟加拉國*/ , "AM" /*Armenia, Republic of亞美尼亞共和國*/ , "BT" /*Bhutan, Kingdom of不丹王國*/ , "IO" /*British Indian Ocean Territory (Chagos Archipelago)英屬印度洋領地(查戈斯群島)*/ , "BN" /*Brunei Darussalam汶萊*/ , "MM" /*Myanmar, Union of緬甸聯盟*/ , "KH" /*Cambodia, Kingdom of柬埔寨王國*/ , "LK" /*Sri Lanka, Democratic Socialist Republic of斯里蘭卡民主社會主義共和國*/ , "CN" /*China, People's Republic of中華人民共和國*/ , "TW" /*Taiwan台灣*/ , "CX" /*Christmas Island聖誕島*/ , "CC" /*Cocos (Keeling) Islands科科斯(基林)群島*/ , "CY" /*Cyprus, Republic of塞浦路斯共和國*/ , "GE" /*Georgia格魯吉亞*/ , "PS" /*Palestinian Territory, Occupied被佔巴勒斯坦領土*/ , "HK" /*Hong Kong 香港*/ , "IN" /*India, Republic of印度共和國*/ , "ID" /*Indonesia, Republic of印度尼西亞共和國*/ , "IR" /*Iran, Islamic Republic of伊朗伊斯蘭共和國*/ , "IQ" /*Iraq, Republic of伊拉克共和國*/ , "IL" /*Israel, State of以色列*/ , "JP" /*Japan日本*/ , "KZ" /*Kazakhstan, Republic of哈薩克斯坦共和國*/ , "JO" /*Jordan, Hashemite Kingdom of約旦哈希姆王國*/ , "KP" /*Korea, Democratic People's Republic of朝鮮民主主義人民共和國*/ , "KR" /*Korea, Republic of大韓民國*/ , "KW" /*Kuwait, State of科威特國家*/ , "KG" /*Kyrgyz Republic吉爾吉斯共和國*/ , "LA" /*Lao People's Democratic Republic老撾人民民主共和國*/ , "LB" /*Lebanon, Lebanese Republic黎巴嫩*/ , "MO" /*Macao 澳門*/ , "MY" /*Malaysia馬來西亞*/ , "MV" /*Maldives, Republic of馬爾代夫共和國*/ , "MN" /*Mongolia蒙古*/ , "OM" /*Oman, Sultanate of阿曼蘇丹國*/ , "NP" /*Nepal, State of尼泊爾國家*/ , "PK" /*Pakistan, Islamic Republic of巴基斯坦伊斯蘭共和國*/ , "PH" /*Philippines, Republic of the菲律賓共和國*/ , "TL" /*Timor-Leste, Democratic Republic of東帝汶民主共和國*/ , "QA" /*Qatar, State of卡塔爾*/ , "RU" /*Russian Federation俄羅斯聯邦*/ , "SA" /*Saudi Arabia, Kingdom of沙特阿拉伯王國*/ , "SG" /*Singapore, Republic of新加坡*/ , "VN" /*Vietnam, Socialist Republic of越南社會主義共和國*/ , "SY" /*Syrian Arab Republic阿拉伯敘利亞共和國*/ , "TJ" /*Tajikistan, Republic of塔吉克斯坦共和國*/ , "TH" /*Thailand, Kingdom of 泰國*/ , "AE" /*United Arab Emirates阿拉伯聯合酋長國*/ , "TR" /*Turkey, Republic of土耳其共和國*/ , "TM" /*Turkmenistan土庫曼斯坦*/ , "UZ" /*Uzbekistan, Republic of烏茲別克斯坦共和國*/ , "YE" /*Yemen也門*/) ),array( 'name' => 'Europe','iso_code_2' => array( "AL" /*Albania, Republic of阿爾巴尼亞共和國*/ , "AD" /*Andorra, Principality of安道爾公國的*/ , "AZ" /*Azerbaijan, Republic of阿塞拜疆共和國*/ , "AT" /*Austria, Republic of奧地利共和國*/ , "AM" /*Armenia, Republic of亞美尼亞共和國*/ , "BE" /*Belgium, Kingdom of比利時王國*/ , "BA" /*Bosnia and Herzegovina波斯尼亞和黑塞哥維那*/ , "BG" /*Bulgaria, Republic of保加利亞共和國*/ , "BY" /*Belarus, Republic of白俄羅斯共和國*/ , "HR" /*Croatia, Republic of克羅地亞*/ , "CY" /*Cyprus, Republic of塞浦路斯共和國*/ , "CZ" /*Czech Republic捷克共和國*/ , "DK" /*Denmark, Kingdom of丹麥王國*/ , "EE" /*Estonia, Republic of愛沙尼亞共和國*/ , "FO" /*Faroe Islands法羅群島*/ , "FI" /*Finland, Republic of芬蘭共和國*/ , "AX" /*Åland Islands奧蘭群島*/ , "FR" /*France, French Republic法國*/ , "GE" /*Georgia格魯吉亞*/ , "DE" /*Germany, Federal Republic of德意志聯邦共和國*/ , "GI" /*Gibraltar直布羅陀*/ , "GR" /*Greece, Hellenic Republic希臘*/ , "VA" /*Holy See (Vatican City State)羅馬教廷(梵蒂岡城國)*/ , "HU" /*Hungary, Republic of匈牙利共和國*/ , "IS" /*Iceland, Republic of冰島共和國*/ , "IE" /*Ireland愛爾蘭*/ , "IT" /*Italy, Italian Republic意大利*/ , "KZ" /*Kazakhstan, Republic of哈薩克斯坦共和國*/ , "LV" /*Latvia, Republic of拉脫維亞共和國*/ , "LI" /*Liechtenstein, Principality of列支敦士登公國的*/ , "LT" /*Lithuania, Republic of立陶宛共和國*/ , "LU" /*Luxembourg, Grand Duchy of盧森堡大公國*/ , "MT" /*Malta, Republic of馬耳他共和國*/ , "MC" /*Monaco, Principality of摩納哥公國的*/ , "MD" /*Moldova, Republic of摩爾多瓦共和國*/ , "ME" /*Montenegro, Republic of黑山共和國*/ , "NL" /*Netherlands, Kingdom of the荷蘭王國*/ , "NO" /*Norway, Kingdom of挪威王國*/ , "PL" /*Poland, Republic of波蘭共和國*/ , "PT" /*Portugal, Portuguese Republic葡萄牙*/ , "RO" /*Romania羅馬尼亞*/ , "RU" /*Russian Federation俄羅斯聯邦*/ , "SM" /*San Marino, Republic of聖馬力諾共和國*/ , "RS" /*Serbia, Republic of塞爾維亞共和國*/ , "SK" /*Slovakia (Slovak Republic)斯洛伐克(斯洛伐克共和國)*/ , "SI" /*Slovenia, Republic of斯洛文尼亞共和國*/ , "ES" /*Spain, Kingdom of西班牙王國*/ , "SJ" /*Svalbard , Jan Mayen Islands斯瓦爾巴群島和揚馬延島*/ , "SE" /*Sweden, Kingdom of瑞典王國*/ , "CH" /*Switzerland, Swiss Confederation瑞士*/ , "TR" /*Turkey, Republic of土耳其共和國*/ , "UA" /*Ukraine烏克蘭*/ , "MK" /*Macedonia, Republic of馬其頓共和國*/ , "GB" /*United Kingdom of Great Britain , Northern Ireland大不列顛及北愛爾蘭聯合王國*/ , "GG" /*Guernsey, Bailiwick of根西島*/ , "JE" /*Jersey, Bailiwick of 澤西島*/ , "IM" /*Isle of Man馬恩島*/) ),array( 'name' => 'North America','iso_code_2' => array( "AG" /*Antigua and Barbuda安提瓜和巴布達*/ , "BS" /*Bahamas, Commonwealth of the巴哈馬,英聯邦*/ , "BB" /*Barbados巴巴多斯*/ , "BM" /*Bermuda百慕大*/ , "BZ" /*Belize伯利茲*/ , "VG" /*British Virgin Islands英屬維爾京群島*/ , "CA" /*Canada加拿大*/ , "KY" /*Cayman Islands開曼群島*/ , "CR" /*Costa Rica, Republic of哥斯達黎加共和國*/ , "CU" /*Cuba, Republic of古巴共和國*/ , "DM" /*Dominica, Commonwealth of多米尼加聯邦*/ , "DO" /*Dominican Republic多米尼加共和國*/ , "SV" /*El Salvador, Republic of薩爾瓦多共和國*/ , "GL" /*Greenland格陵蘭*/ , "GD" /*Grenada格林納達*/ , "GP" /*Guadeloupe瓜德羅普島*/ , "GT" /*Guatemala, Republic of危地馬拉共和國*/ , "HT" /*Haiti, Republic of海地共和國*/ , "HN" /*Honduras, Republic of洪都拉斯共和國*/ , "JM" /*Jamaica牙買加*/ , "MQ" /*Martinique馬提尼克島*/ , "MX" /*Mexico, United Mexican States墨西哥*/ , "MS" /*Montserrat蒙特塞拉特*/ , "AN" /*Netherlands Antilles荷屬安的列斯*/ , "CW" /*Curaçao庫拉索島*/ , "AW" /*Aruba阿魯巴*/ , "SX" /*Sint Maarten (Netherlands)聖馬丁島(荷蘭)*/ , "BQ" /*Bonaire, Sint Eustatius and Saba博內爾島*/ , "NI" /*Nicaragua, Republic of尼加拉瓜共和國*/ , "UM" /*United States Minor Outlying Islands美國本土外小島嶼*/ , "PA" /*Panama, Republic of巴拿馬共和國*/ , "PR" /*Puerto Rico, Commonwealth of波多黎各聯邦*/ , "BL" /*Saint Barthelemy聖巴泰勒米*/ , "KN" /*Saint Kitts and Nevis, Federation of聖基茨和尼維斯聯邦*/ , "AI" /*Anguilla安圭拉*/ , "LC" /*Saint Lucia聖盧西亞*/ , "MF" /*Saint Martin聖馬丁*/ , "PM" /*Saint Pierre and Miquelon聖皮埃爾和密克隆*/ , "VC" /*Saint Vincent and the Grenadines聖文森特和格林納丁斯*/ , "TT" /*Trinidad and Tobago, Republic of特里尼達和多巴哥共和國*/ , "TC" /*Turks and Caicos Islands特克斯和凱科斯群島*/ , "US" /*United States of America美國美國*/ , "VI" /*United States Virgin Islands美屬維爾京群島*/) ),array( 'name' => 'Oceania','iso_code_2' => array( "AS" /*American Samoa美屬薩摩亞*/ , "AU" /*Australia, Commonwealth of澳大利亞聯邦*/ , "SB" /*Solomon Islands所羅門群島*/ , "CK" /*Cook Islands庫克群島*/ , "FJ" /*Fiji, Republic of the Fiji Islands斐濟*/ , "PF" /*French Polynesia法屬波利尼西亞*/ , "KI" /*Kiribati, Republic of基里巴斯共和國*/ , "GU" /*Guam關島*/ , "NR" /*Nauru, Republic of瑙魯*/ , "NC" /*New Caledonia新喀裡多尼亞*/ , "VU" /*Vanuatu, Republic of瓦努阿圖共和國*/ , "NZ" /*New Zealand新西蘭*/ , "NU" /*Niue紐埃*/ , "NF" /*Norfolk Island諾福克島*/ , "MP" /*Northern Mariana Islands, Commonwealth of the北馬里亞納群島,英聯邦*/ , "UM" /*United States Minor Outlying Islands美國本土外小島嶼*/ , "FM" /*Micronesia, Federated States of密克羅尼西亞聯邦*/ , "MH" /*Marshall Islands, Republic of the馬紹爾群島共和國*/ , "PW" /*Palau, Republic of帕勞共和國*/ , "PG" /*Papua New Guinea, Independent State of巴布亞新幾內亞獨立國*/ , "PN" /*Pitcairn Islands皮特凱恩群島*/ , "TK" /*Tokelau托克勞*/ , "TO" /*Tonga, Kingdom of湯加王國*/ , "TV" /*Tuvalu圖瓦盧*/ , "WF" /*Wallis and Futuna瓦利斯群島和富圖納群島*/ , "WS" /*Samoa, Independent State of薩摩亞獨立國*/) ),array( 'name' => 'South America','iso_code_2' => array( "AR" /*Argentina, Argentine Republic阿根廷*/ , "BO" /*Bolivia, Republic of玻利維亞共和國*/ , "BR" /*Brazil, Federative Republic of巴西聯邦共和國*/ , "CL" /*Chile, Republic of智利共和國*/ , "CO" /*Colombia, Republic of哥倫比亞共和國*/ , "EC" /*Ecuador, Republic of厄瓜多爾共和國*/ , "FK" /*Falkland Islands (Malvinas)福克蘭群島(馬爾維納斯)*/ , "GF" /*French Guiana法屬圭亞那*/ , "GY" /*Guyana, Co-operative Republic of圭亞那合作共和國*/ , "PY" /*Paraguay, Republic of巴拉圭共和國*/ , "PE" /*Peru, Republic of秘魯共和國*/ , "SR" /*Suriname, Republic of蘇里南共和國*/ , "UY" /*Uruguay, Eastern Republic of烏拉圭東岸共和國*/ , "VE" /*Venezuela, Bolivarian Republic of委內瑞拉玻利瓦爾共和國*/ ) ),array( 'name' => 'Africa','iso_code_2' => array( "DZ" /*Algeria, People's Democratic Republic of阿爾及利亞人民民主共和國*/ , "AO" /*Angola, Republic of安哥拉共和國*/ , "BW" /*Botswana, Republic of博茨瓦納共和國*/ , "BI" /*Burundi, Republic of布隆迪共和國*/ , "CM" /*Cameroon, Republic of喀麥隆共和國*/ , "CV" /*Cape Verde, Republic of佛得角共和國*/ , "CF" /*Central African Republic中非共和國*/ , "TD" /*Chad, Republic of乍得共和國*/ , "KM" /*Comoros, Union of the科摩羅聯盟*/ , "YT" /*Mayotte馬約特島*/ , "CG" /*Congo, Republic of the剛果共和國*/ , "CD" /*Congo, Democratic Republic of the剛果民主共和國*/ , "BJ" /*Benin, Republic of貝寧共和國*/ , "GQ" /*Equatorial Guinea, Republic of赤道幾內亞共和國*/ , "ET" /*Ethiopia, Federal Democratic Republic of埃塞俄比亞聯邦民主共和國*/ , "ER" /*Eritrea, State of厄立特里亞國家*/ , "DJ" /*Djibouti, Republic of吉布提共和國*/ , "GA" /*Gabon, Gabonese Republic加蓬*/ , "GM" /*Gambia, Republic of the岡比亞共和國*/ , "GH" /*Ghana, Republic of加納共和國*/ , "GN" /*Guinea, Republic of幾內亞共和國*/ , "CI" /*Cote d'Ivoire, Republic of科特迪瓦共和國*/ , "KE" /*Kenya, Republic of肯尼亞共和國*/ , "LS" /*Lesotho, Kingdom of萊索托王國*/ , "LR" /*Liberia, Republic of利比里亞共和國*/ , "LY" /*Libyan Arab Jamahiriya阿拉伯利比亞民眾國*/ , "MG" /*Madagascar, Republic of馬達加斯加共和國*/ , "MW" /*Malawi, Republic of馬拉維共和國*/ , "ML" /*Mali, Republic of馬里共和國*/ , "MR" /*Mauritania, Islamic Republic of毛里塔尼亞伊斯蘭共和國*/ , "MU" /*Mauritius, Republic of毛里求斯共和國*/ , "MA" /*Morocco, Kingdom of摩洛哥王國*/ , "MZ" /*Mozambique, Republic of莫桑比克共和國*/ , "NA" /*Namibia, Republic of納米比亞共和國*/ , "NE" /*Niger, Republic of尼日爾共和國*/ , "NG" /*Nigeria, Federal Republic of尼日利亞聯邦共和國*/ , "GW" /*Guinea-Bissau, Republic of幾內亞比紹共和國*/ , "RE" /*Reunion留尼旺島*/ , "RW" /*Rwanda, Republic of盧旺達共和國*/ , "SH" /*Saint Helena聖赫勒拿*/ , "ST" /*Sao Tome and Principe, Democratic Republic of聖多美與普林西比民主共和國*/ , "SN" /*Senegal, Republic of塞內加爾共和國*/ , "SC" /*Seychelles, Republic of塞舌爾共和國*/ , "SL" /*Sierra Leone, Republic of塞拉利昂共和國*/ , "SO" /*Somalia, Somali Republic索馬里*/ , "ZA" /*South Africa, Republic of南非共和國*/ , "ZW" /*Zimbabwe, Republic of津巴布韋共和國*/ , "SS" /*South Sudan南蘇丹*/ , "EH" /*Western Sahara西撒哈拉*/ , "SD" /*Sudan, Republic of蘇丹共和國*/ , "SZ" /*Swaziland, Kingdom of斯威士蘭王國*/ , "TG" /*Togo, Togolese Republic多哥*/ , "TN" /*Tunisia, Tunisian Republic突尼斯*/ , "UG" /*Uganda, Republic of烏干達共和國*/ , "EG" /*Egypt, Arab Republic of埃及*/ , "TZ" /*Tanzania, United Republic of坦桑尼亞聯合共和國*/ , "BF" /*Burkina Faso布基納法索*/ , "ZM" /*Zambia, Republic of贊比亞共和國*/) ),array( 'name' => 'Antarctica','iso_code_2' => array( "AQ" /*Antarctica (the territory South of 60 deg S)南極洲*/ , "BV" /*Bouvet Island (Bouvetoya)布維島*/ , "GS" /*South Georgia and the South Sandwich Islands南喬治亞島和南桑威奇群島*/ , "TF" /*French Southern Territories法國南部領土*/ , "HM" /*Heard Island and McDonald Islands赫德島和麥當勞群島*/ ) ) ); ?> <?php foreach ($countries_sort_by_continent as $continent_name) { ?> <optgroup label="<?php echo $continent_name['name']; ?>"> <?php foreach ($countries as $country) { if (in_array($country['iso_code_2'],$continent_name['iso_code_2'])) { ?> <option value="<?php echo $country['country_id']; ?>"<?php if ($country['country_id'] == $country_id) { ?> selected="selected"<?php } ?> style="background: url('image/flags/<?php echo strtolower($country['iso_code_2']); ?>.png') center right no-repeat;"> <?php echo $country['name']; ?></option> <?php } } ?> </optgroup> <?php } ?> <option value="236">Other Area</option>
示範:
有一點要注意,世界七大洲的地理劃分沒有統一的定義,而且有些國家的領土橫跨超過一個洲,所以有些國家會在列表重複出現,但這不影響Opencart儲存地址資料。
我怎樣一次過隱藏不需要的國家?
剛才的程式碼中,每行變數值旁都標示了國家或特殊政區的名字。
如果你的網店不服務某個國家,就將標示該國家名字的一行刪除。
如果你的網店只服務某些大洲,就將其他洲的變數值刪除掉。
這樣你就不用在Opencart後台逐一修改國家的設定來停用它們。






