Как добавить 1 подписчика в несколько MailWizz (с разными API и доменами)? - PullRequest
1 голос
/ 22 апреля 2020

Я купил MailWizz, это отлично. И API очень прост в использовании:

https://github.com/twisted1919/mailwizz-php-sdk

https://api-docs.mailwizz.com/#subscribers -создать

И что я необходимо добавить одного подписчика в 2 разных API, в 2 разных домена. Но я не знаю, как это сделать, потому что мне нужно использовать только 1 файл установки. php file.

Я просто создал свою HTML форму информационного бюллетеня с полями name и email и направил в сохранить. php файл со следующим кодом:

<?php
// require the setup which has registered the autoloader
require_once dirname(__FILE__) . '/setup.php';

// CREATE THE ENDPOINT
$endpoint = new MailWizzApi_Endpoint_ListSubscribers();

if (!empty($_POST)) {
    // CREATE / UPDATE EXISTING SUBSCRIBER
    $response = $endpoint->createUpdate('id-my-list', array(
        'EMAIL'    => isset($_POST['EMAIL']) ? $_POST['EMAIL'] : null,
        'FNAME'    => isset($_POST['FNAME']) ? $_POST['FNAME'] : null
    ));
}
?>

setup. php

<?php// require the autoloader class if you haven't used composer to install the package
require_once dirname(__FILE__) . '/MailWizzApi/Autoloader.php';

// register the autoloader if you haven't used composer to install the package
MailWizzApi_Autoloader::register();

// configuration object
$config = new MailWizzApi_Config(array(
    'apiUrl'        => 'https://site1.com/mailwizz/api/',
    'publicKey'     => '0000000',
    'privateKey'    => '11111111',

    // components
    'components' => array(
        'cache' => array(
            'class'     => 'MailWizzApi_Cache_File',
            'filesPath' => dirname(__FILE__) . '/MailWizzApi/Cache/data/cache', // make sure it is writable by webserver
        )
    ),
));

// now inject the configuration and we are ready to make api calls
MailWizzApi_Base::setConfig($config);

// start UTC
date_default_timezone_set('UTC');
?>

У меня 2 API

'apiUrl' => 'https://site1.com/mailwizz/api/',
'publicKey' => '0000000',
'privateKey' => '11111111',

and
'apiUrl' => 'https://other-site2.com/mailwizz-new/api/',
'publicKey' => '22222222',
'privateKey' => '333333333',

Спасибо.

1 Ответ

1 голос
/ 23 апреля 2020

Это может помочь вам:

    <?php

require_once dirname(__FILE__) . '/MailWizzApi/Autoloader.php';

// register the autoloader if you haven't used composer to install the package
MailWizzApi_Autoloader::register();

date_default_timezone_set('UTC');

$sites = [
    [
        'list_uid' => 'xxx',
        'config' => [
            'apiUrl'        => 'https://site1.com/mailwizz/api/',
            'publicKey'     => '0000000',
            'privateKey'    => '11111111',
        ]
    ],
    [
        'list_uid' => 'xxx',
        'config' => [
            'apiUrl'        => 'https://other-site2.com/mailwizz-new/api/',
            'publicKey'     => '22222222',
            'privateKey'    => '333333333',
        ]
    ]
];

foreach ($sites as $site) {

    $config = new MailWizzApi_Config($site['config']);

    MailWizzApi_Base::setConfig($config);

    $endpoint = new MailWizzApi_Endpoint_ListSubscribers();

    $response = $endpoint->createUpdate($site['list_uid'], array(
        'EMAIL'    => isset($_POST['EMAIL']) ? $_POST['EMAIL'] : '',
        'FNAME'    => isset($_POST['FNAME']) ? $_POST['FNAME'] : ''
    ));

}

Хотя в примерах используется файл setup.php, это не значит, что вы должны также использовать это. Это всего лишь пример.

...