diff --git a/mailchimp.module b/mailchimp.module index df2c26c..5c75c7d 100644 --- a/mailchimp.module +++ b/mailchimp.module @@ -5,6 +5,7 @@ * Mailchimp module. */ +use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Site\Settings; use Drupal\Component\Utility\Crypt; use Mailchimp\MailchimpLists; @@ -352,9 +353,13 @@ function mailchimp_is_subscribed($list_id, $email, $reset = FALSE) { * * @see Mailchimp_Lists::subscribe() */ -function mailchimp_subscribe($list_id, $email, $merge_vars = NULL, $interests = array(), $double_optin = FALSE, $format = 'html') { +function mailchimp_subscribe($list_id, $email, $merge_vars = NULL, $interests = array(), $double_optin = FALSE, $format = 'html', $language = NULL) { $config = \Drupal::config('mailchimp.settings'); + if (empty($language)) { + $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + } + if ($config->get('cron')) { $args = array( 'list_id' => $list_id, @@ -363,12 +368,13 @@ function mailchimp_subscribe($list_id, $email, $merge_vars = NULL, $interests = 'interests' => $interests, 'double_optin' => $double_optin, 'format' => $format, + 'language' => $language ); return mailchimp_addto_queue('mailchimp_subscribe_process', $args); } - return mailchimp_subscribe_process($list_id, $email, $merge_vars, $interests, $double_optin, $format); + return mailchimp_subscribe_process($list_id, $email, $merge_vars, $interests, $double_optin, $format, $language); } /** @@ -376,7 +382,7 @@ function mailchimp_subscribe($list_id, $email, $merge_vars = NULL, $interests = * * @see Mailchimp_Lists::subscribe() */ -function mailchimp_subscribe_process($list_id, $email, $merge_vars = NULL, $interests = array(), $double_optin = FALSE, $format = 'html') { +function mailchimp_subscribe_process($list_id, $email, $merge_vars = NULL, $interests = array(), $double_optin = FALSE, $format = 'html', $language = NULL) { $config = \Drupal::config('mailchimp.settings'); $result = FALSE; @@ -393,6 +399,10 @@ function mailchimp_subscribe_process($list_id, $email, $merge_vars = NULL, $inte 'email_type' => $format, ); + if (!empty($language)) { + $parameters['language'] = $language; + } + // Set interests. if (!empty($interests)) { $selected_interests = array(); @@ -441,7 +451,7 @@ function mailchimp_subscribe_process($list_id, $email, $merge_vars = NULL, $inte '@email' => $email, '@list' => $list_id, ), WATCHDOG_INFO); - return mailchimp_subscribe_process($list_id, $email, $merge_vars, $interests, TRUE, $format); + return mailchimp_subscribe_process($list_id, $email, $merge_vars, $interests, TRUE, $format, $language); } \Drupal::logger('mailchimp')->error('An error occurred subscribing {email} to list {list}. "{message}"', array(