Как отличить клиентов от двух разных доменов? - PullRequest
0 голосов
/ 03 февраля 2012

Я хочу иметь возможность различать клиентов, приходящих в мой магазин сайта, из двух разных доменов. Например:

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 Ответ

1 голос
/ 03 февраля 2012

Чтобы получить заголовок HTTP_REFERER запроса, вы должны использовать

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

в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...