1
Magento 2.1.9:国に基づいてストアを変更する
重要:GeoIP拡張機能を購入したくありません。マルチサイトおよびマルチストア設定のMagento 2.1.9 Webサイトを持っています。KSA、UAE、CHINA、EGYPTなどのウェブサイトをセットアップしました。各ウェブサイトの下に少なくとも2つのストアビューがあります。たとえば、KSAの場合、アラビア語と英語のストアビューがあります。 IPアドレスごとに、国に応じたWebサイトをユーザーに表示したい。たとえば、UAE(ar_uaeまたはen_uae)のユーザーと同様に、KSAからアクセスするユーザーの場合は、ar_sa(アラビア語-サウジアラビアのストアがデフォルトである必要があります)。 これまでに次のコーディングを行い、IPアドレスから国を取得しました。 これは私のetc/frontend/events.xmlファイルです: <config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework/Event/etc/events.xsd'> <event name='controller_action_predispatch'> <observer name='Asoft_GeoIP_Redirect' instance='Asoft\GeoIP\Observer\Redirect' /> </event> </config> そして、これは私のObserver/Redirect.phpです。 namespace Asoft\GeoIP\Observer; class Redirect implements \Magento\Framework\Event\ObserverInterface { protected $_objectManager; protected $_storeManager; protected $_curl; public function __construct( \Magento\Framework\ObjectManagerInterface $objectManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\HTTP\Client\Curl $curl ) { $this->_objectManager = $objectManager; $this->_storeManager = $storeManager; $this->_curl = …