西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento自动识别性别的插件

时间:2017-01-13 11:17来源:未知 作者:好模板 点击:
为客户创建一个Magento自动识别性别的插件。插件基于Rapleaf的个性化API。Rapleaf公司提供人口统计和消费者个人数据(年龄,性别,婚姻状况,收入等),不能用作商业电子邮件。他们的

为客户创建一个Magento自动识别性别的插件。插件基于Rapleaf的个性化API。Rapleaf公司提供人口统计和消费者个人数据(年龄,性别,婚姻状况,收入等),不能用作商业电子邮件。他们的合作伙伴,一些大(小)型数据公司将数据汇总并绑定到邮箱地址。你可以创建一个免费的Rapleaf账户来获取API。 让我们开始吧。

Alwayly_Autogender.xml

首先,我们要在/app/etc/modules文件夹里创建Alwayly_Autogender.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Alwayly_Autogender>
           <active>true</active>
            <codePool>local</codePool>
        </Alwayly_Autogender>
   </modules>
</config>

config.xml

第二步是在 /app/code/local/Alwayly/Autogender/etc文件夹里创建config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Alwayly_Autogender>
            <version>0.1.0</version>
        </Alwayly_Autogender>
    </modules>
    <global>
        <models>
            <alwayly_autogender>
                <class>Alwayly_Autogender_Model</class>
            </alwayly_autogender>
        </models>
        <events>
            <customer_register_success>
                <observers>
                    <alwayly_autogender_add_email>
                        <class>alwayly_autogender/observer</class>
                        <method>getGender</method>
                    </alwayly_autogender_add_email>
                </observers>
            </customer_register_success>
        </events>
    </global>
</config>

Observer.php

最后一步是/app/code/local/Alwayly/Autogender/Model文件夹里创建Observer.php

<?php
 
class Alwayly_Autogender_Model_Observer
{
    public function getGender($observer = null)
    {
        if($observer)
        {
            try
            {
                $customer = $observer->getCustomer();
 
                $api_key = '... your api key ...';
 
                $client = new Zend_Http_Client();
 
                $client->setUri('https://personalize.rapleaf.com/v4/dr?api_key=' . $api_key .
                                '&email=' . urlencode($customer->getEmail()) .
                                '&first=' . urlencode($customer->getFirstname()) .
                                '&last=' . urlencode($customer->getLastname())
                );
 
                $client->setConfig(array('maxredirects' => 0, 'timeout' => 2));
 
                $response = $client->request();
 
                if ($response->getStatus() < 200 || $response->getStatus() >= 300)
                {
                    Mage::log(
                        sprintf("Rapleaf query failed. (status: %s), (message: %s)",
                            $response->getStatus(),
                            strip_tags($response->getBody())),
                        null,
                        'rapleaf_api.log',
                        false);
                }
                else
                {
                    $data = json_decode($response->getBody(), true);
                    if(array_key_exists('gender', $data))
                    {
                        $customer->setGender(
                            Mage::getResourceSingleton('customer/customer')
                                ->getAttribute('gender')
                                ->getSource()
                                ->getOptionId($data['gender'])
                        );
                    }
                }
            }
            catch (Exception $e)
            {
                Mage::log(
                    sprintf("Exception in Rapleaf query. (message: %s)",
                       strip_tags($e->getMessage())),
                    null,
                    'rapleaf_api.log',
                    false);
            }
        }
    }
}
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容