如何区分来自两个不同域的客户?

时间:2012-02-03 13:35:33

标签: magento

我希望能够区分来自两个不同域的来自我的网站商店的客户。例如:

local.pruebas.es → from spain
local.pruebas.extra → from extra source.

这两个域都将转到我的网站,但.extra域(例如)来自营销活动。

我认为解决方案可以是创建一个观察者,例如:

<global>
    <events>
        <controller_action_predispatch>
            <observers>
                    <type>singleton</type>
                    <class>Mycompany_Identifycustomer_Model_Observer</class>
                    <method>checkCustomer</method>
                </wpr_identifycustomer>
            </observers>
        <controller_action_predispatch>
    </events>
</global>

在我的观察者中:

public function checkCustomer($observer){
    //echo 'this work';exit;
    var_dump( $observer->getControllerAction()->_getRefererUrl());exit;

}

但它是一个受保护的方法,我无法调用它,因为该类不继承自Mage_Core_Controller_Varien_Action

虚拟主机定义的一个示例:

对于local.pruebas.es

<VirtualHost *:80>
   DocumentRoot "C:\Program Files\Zend\Apache2/htdocs/local.pruebas.es"
   ServerName local.pruebas.es
   DirectoryIndex index.html index.php index.htm
   SetEnv MAGE_IS_DEVELOPER_MODE "1"    
   <Directory "C:\Program Files\Zend\Apache2/htdocs/local.pruebas.es">
     AllowOverride All
      Options All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
<VirtualHost *:80>

对于local.pruebas.extra

<VirtualHost *:80>
   DocumentRoot "C:\Program Files\Zend\Apache2/htdocs/local.pruebas.es"
   ServerName local.pruebas.extra
   DirectoryIndex index.html index.php index.htm
   SetEnv MAGE_IS_DEVELOPER_MODE "1"    
   <Directory "C:\Program Files\Zend\Apache2/htdocs/local.pruebas.es">
     AllowOverride All
      Options All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
<VirtualHost *:80>

有人可以用另一种方法帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

要获取请求HTTP_REFERER标头,您应该使用

$observer->getControllerAction()->getRequest()->getServer('HTTP_REFERER');

在你的情况下。