mbouclas/mcms-mailchimp

用于mcms的Mailchimp包

v1.1.0 2019-04-11 11:53 UTC

This package is auto-updated.

Last update: 2024-09-12 00:34:33 UTC


README

MCMS Mailchimp

此包提供了一种简单的方法来集成MailChimp和Laravel 5。幕后使用的是MailChimp API的v3版本。以下是一些使用此包可以做的示例:

Newsletter::subscribe('rincewind@discworld.com');

Newsletter::unsubscribe('the.luggage@discworld.com');

//Merge variables can be passed as the second argument
Newsletter::subscribe('sam.vines@discworld.com', ['firstName'=>'Sam', 'lastName'=>'Vines']);

//Subscribe someone to a specific list by using the third argument:
Newsletter::subscribe('nanny.ogg@discworld.com', ['firstName'=>'Nanny', 'lastName'=>'Ogg'], 'Name of your list');

//Get some member info, returns an array described in the official docs
Newsletter::getMember('lord.vetinari@discworld.com');

//Returns a boolean
Newsletter::hasMember('greebo@discworld.com');

//If you want to do something else, you can get an instance of the underlying API:
Newsletter::getApi();

安装

您可以通过Composer使用以下命令安装此包:

composer require mbouclas/mcms-mailchimp

您还必须安装此服务提供者。

// config/app.php
'providers' => [
    ...
    Mcms\Mailchimp\McmsMailchimpServiceProvider::class,
    ...
];

要发布配置文件到app/config/mcmcMailchimp.php,请运行:

php artisan vendor:publish --provider="Mcms\Mailchimp\McmsMailchimpServiceProvider"

这将发布一个名为mcmcMailchimp.php的文件到您的配置目录,其中包含以下内容:

return [

        /*
         * The api key of a MailChimp account. You can find yours here:
         * https://us10.admin.mailchimp.com/account/api-key-popup/
         */
        'apiKey' => env('MAILCHIMP_APIKEY'),

        /*
         * When not specifying a listname in the various methods,
         *  this list name will be used.
         */
        'defaultListName' => 'subscribers',

        /*
         * Here you can define properties of the lists you want to
         * send campaigns.
         */
        'lists' => [

            /*
             * This key is used to identify this list. It can be used
             * in the various methods provided by this package.
             *
             * You can set it to any string you want and you can add
             * as many lists as you want.
             */
            'subscribers' => [

                /*
                 * A mail chimp list id. Check the mailchimp docs if you don't know
                 * how to get this value:
                 * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id
                 */
                 'id' => env('MAILCHIMP_LIST_ID'),
            ],
        ],
];

使用方法

安装此包并填写配置文件中的值后,使用此包将变得非常简单。以下所有示例都使用外观。别忘了在文件顶部导入它。

use Newsletter;

订阅和退订

订阅一个电子邮件地址可以这样操作:

use Newsletter;

Newsletter::subscribe('rincewind@discworld.com');

让我们退订某个人

Newsletter::unsubscribe('the.luggage@discworld.com');

您可以将一些合并变量作为第二个参数传递

Newsletter::subscribe('rincewind@discworld.com', ['firstName'=>'Rince', 'lastName'=>'Wind']);

请注意,在撰写本文时,MailChimp中的默认合并变量名称为FNAMELNAME。在我们的示例中,我们使用firstNamelastName以提高可读性。

您可以通过使用第三个参数将某人订阅到特定的列表

Newsletter::subscribe('rincewind@discworld.com', ['firstName'=>'Rince', 'lastName'=>'Wind'], 'subscribers');

第三个参数是配置文件中配置的列表的名称。

您还可以从特定列表中退订某人

Newsletter::unsubscribe('rincewind@discworld.com', 'subscribers');

删除订阅者

注意:删除与退订不同。删除会丢失所有历史记录(添加/确认/编辑)以及从列表中删除它们。与退订不同,它们以后还可以再次添加。这仅用于列表维护。如果订阅者是“退出”,则应使用unsubscribe而不是删除!

要从列表中永久删除订阅者的记录

Newsletter::delete('rincewind@discworld.com');

获取订阅者信息

您可以使用getMember函数获取有关订阅者的信息

Newsletter::getMember('lord.vetinari@discworld.com');

这将返回一个包含有关订阅者信息的数组。如果没有订阅者使用该电子邮件地址,则函数将返回false

还有一个方便的方法来检查某人是否已经订阅

Newsletter::hasMember('nanny.ogg@discworld.com'); //returns a bool

创建活动

这就是创建活动的方式

/**
 * @param string $fromName
 * @param string $replyTo
 * @param string $subject
 * @param string $html
 * @param string $listName
 * @param array  $options
 * @param array  $contentOptions
 *
 * @return array|bool
 *
 * @throws \Mcms\Mailchimp\Exceptions\InvalidMailchimpList
 */
public function createCampaign($fromName, $replyTo, $subject, $html = '', $listName = '', $options = [], $contentOptions = [])

请注意,活动将仅被创建,不会发送邮件。

处理错误

如果出现问题,您可以使用以下方法获取最后一个错误:

Newsletter::getLastError();

如果您只想确保最后一个操作是否成功,可以使用

Newsletter::lastActionSucceeded(); //returns a bool
$api = Newsletter::getApi();

测试

使用以下命令运行测试:

vendor/bin/phpunit

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件