Mailchimp API игнорирует заголовок языка принятия HTTP. Обходной путь? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть список Mailchimp, для которого в настройках языка Mailchimp установлено значение «Автоматический перевод».

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

В настоящее время я отправляю заголовок языка подтверждения, но mailchimp просто игнорирует его. Он по-прежнему рассылает каждую подписку на языке по умолчанию. Любая другая почта работает в переводе - только подписка не работает.

Есть ли обходные пути для этой важной проблемы?

Уже пробовал: https://github.com/drewm/mailchimp-api/issues/148

function mc_subscribe($email, $lang, $fname, $lname, $empf, $debug, $apikey, $listid, $server) {
    $auth = base64_encode( 'user:'.$apikey );
    $data = array(
        'apikey'        => $apikey,
        'email_address' => $email,
        'status'        => 'pending',
        'language'      => $lang,
        'merge_fields'  => array(
            'FNAME' => $fname,
            'LNAME' => $lname,
            'EMPF' => $empf,
            )
        );
    $json_data = json_encode($data);
    $ch = curl_init();
    $headers = array(
        'Content-Type: application/json',
        'Authorization: Basic '.$auth,
        'Accept-Language: '.$lang);

    writeLog($headers);
    curl_setopt($ch, CURLOPT_URL, 'https://'.$server.'api.mailchimp.com/3.0/lists/'.$listid.'/members/');
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
    $result = curl_exec($ch);

    if ($debug) {
        writeLog($result);
    }
}
...