API v3 sendinblue и Wordpress - PullRequest
       13

API v3 sendinblue и Wordpress

0 голосов
/ 15 апреля 2020

У меня проблема с интеграцией API sendinblue php в мой онлайн-код. Позвольте мне объяснить, на моем локальном компьютере все работает, но как только я размещаю свой код на онлайн-сервере, он больше не работает. Однако, если я использую API только в базовом c php файле, он работает. Но если я смешиваю его с файлами WordPress онлайн, возникает фатальная ошибка.

Я добавляю эту строку: require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); для использования функции wordpress, но есть ошибка.

Basi c код, который я использовал:

require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); 
require_once(__DIR__.'/../templates/sendinblue/vendor/autoload.php');

    global $wpdb;

    //Attributes to send  $attributes = [
        "source_display_name" => 'TEST' ];

    $config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', ''MY-KEY');

    $config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('partner-key', 'MY-KEY');

    $apiInstance = new SendinBlue\Client\Api\SMTPApi(
        // If you want use custom http client, pass your client which implements GuzzleHttp\ClientInterface.
        // This is optional, GuzzleHttp\Client will be used as default.
        new GuzzleHttp\Client(),
        $config );

    $sendEmail = new \SendinBlue\Client\Model\SendEmail(); // \SendinBlue\Client\Model\SendEmail |  $sendEmail->setEmailTo(['pewixg3@test.com']); $sendEmail->setAttributes($attributes);

    $template_name = "source convertie"; //The template to search

    $lang = "fr_FR";

    if($lang == "fr_FR"){
        $templateId = $wpdb->get_var("SELECT id_fr FROM ".$wpdb->prefix."sendinblue_templates WHERE template_name = '$template_name'");  }  elseif ($lang == "en_US") {
        $templateId = $wpdb->get_var("SELECT id_en FROM ".$wpdb->prefix."sendinblue_templates WHERE template_name = '$template_name'");  }  elseif ($lang == "de_DE") {
        $templateId = $wpdb->get_var("SELECT id_de FROM ".$wpdb->prefix."sendinblue_templates WHERE template_name = '$template_name'");  }  elseif ($lang == "it_IT") {
        $templateId = $wpdb->get_var("SELECT id_it FROM ".$wpdb->prefix."sendinblue_templates WHERE template_name = '$template_name'"); }  elseif ($lang == "es_ES") {
        $templateId = $wpdb->get_var("SELECT id_es FROM ".$wpdb->prefix."sendinblue_templates WHERE template_name = '$template_name'"); }

    echo $templateId; //97

    try {
        $apiInstance->sendTemplate($templateId, $sendEmail);  }  catch (Exception $e) {
        //echo 'Exception when calling SMTPApi->sendTemplate: ', $e->getMessage(), PHP_EOL;
        $error = $e->getMessage();  }
...