Magento Geo IP 導向指南
在多國多語系的網站架構下,往往有個需求是希望使用者第一次進入頁面時,可以自動進到該地區對應的語系頁面,而Magento商店上也有許多的套件可協助滿足此需求,但本篇文章要來介紹如何在沒有套件的支援下,自行將使用者導向到所屬地區的語系頁面。
環境介紹
- PHP7.1
- UBUNTU16.04
- NGINX
執行步驟
- 安裝PHP-GEOIP
- 設定XML檔 (Magento)
- 在BLOCK裡面加上商業邏輯
安裝PHP-GEOIP
在ubuntu的安裝方式
apt install php-geoip
然後重啟FPM
systemctl reload php7.1-fpm
查看模組是否存在
php -m|grep 'geoip'
如果php-geoip有顯示在畫面上,表示模租安裝完成
設定XML檔
<reference name="header"> <reference name="top.container"> <block type="ipredirect/ipredirect" name="ipredirect" template="astralweb/ipredirect.phtml" /> </reference> </reference>
設定一個block 在layout xml裡,確保每個頁面都會讀取這個block。
在BLOCK裡面加上商業邏輯
<?php class Astralweb_Ipredirect_Block_Ipredirect extends Mage_Core_Block_Template{ public function getIpredirect(){ //取得IP對應的國家代碼 $region = geoip_country_code_by_name(帶入使用者的IP); } }
取得國家代碼之後就可以決定要導向到哪個store了。
例如,我設定如果使用者的IP是屬於TW的話就要導向到台灣站。
<?php class Astralweb_Ipredirect_Block_Ipredirect extends Mage_Core_Block_Template{ public function getIpredirect(){ //取得IP對應的國家代碼 $region = geoip_country_code_by_name(帶入使用者的IP); if($region = 'TW'){ echo "<script>location.href='http://new-mio.magento.com/tw/'</script>"; } } }
我要留言