feat(MailchimpPlugin): add none_selected_text key to all language files

Add missing `none_selected_text` translation key to all locale files
and prepend a blank \"none selected\" option to the subscription status
dropdown in the customer tab view.

Signed-off-by: Travis Garrison <travis@chiraqbookstore.com>
This commit is contained in:
Travis Garrison
2026-07-07 12:40:48 +04:00
parent 00490d2ff2
commit 376b351f17
48 changed files with 64 additions and 5 deletions

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'قائمة (قوائم) Mailchimp',
'mailchimp' => 'ميل تشيمب',
'member_rating' => 'التقييم',
'none_selected_text' => '[إختيار]',
'status' => 'الحالة',
'subscription_status_cleaned' => 'تم التنظيف',
'subscription_status_pending' => 'قيد الانتظار',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'قائمة (قوائم) Mailchimp',
'mailchimp' => 'ميل تشيمب',
'member_rating' => 'التقييم',
'none_selected_text' => '[إختيار]',
'status' => 'الحالة',
'subscription_status_cleaned' => 'تم التنظيف',
'subscription_status_pending' => 'قيد الانتظار',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp Siyahısı (siyahıları)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Reytinq',
'none_selected_text' => 'Seçin',
'status' => 'Status',
'subscription_status_cleaned' => 'Təmizləndi',
'subscription_status_pending' => 'Gözləmədə',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Списък(ове) на Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Оценка',
'none_selected_text' => 'Нищо не е избрано',
'status' => 'Статус',
'subscription_status_cleaned' => 'Почистен',
'subscription_status_pending' => 'В очакване',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp lista(e)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Ocjena',
'none_selected_text' => '[Izaberi]',
'status' => 'Status',
'subscription_status_cleaned' => 'Očišćen',
'subscription_status_pending' => 'Na čekanju',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'لیستەکانی Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'پلە',
'none_selected_text' => '[دیاریکردن]',
'status' => 'دۆخ',
'subscription_status_cleaned' => 'پاککراوە',
'subscription_status_pending' => 'چاوەڕوانکراو',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Seznam(y) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Hodnocení',
'none_selected_text' => 'bez výběru',
'status' => 'Stav',
'subscription_status_cleaned' => 'Vyčištěno',
'subscription_status_pending' => 'Čeká se',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-liste(r)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Bedømmelse',
'none_selected_text' => '[Vælg]',
'status' => 'Status',
'subscription_status_cleaned' => 'Renset',
'subscription_status_pending' => 'Afventer',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-Liste(n)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Bewertung',
'none_selected_text' => 'Nothing selected',
'status' => 'Status',
'subscription_status_cleaned' => 'Bereinigt',
'subscription_status_pending' => 'Ausstehend',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-Liste(n)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Bewertung',
'none_selected_text' => '[auswählen]',
'status' => 'Status',
'subscription_status_cleaned' => 'Bereinigt',
'subscription_status_pending' => 'Ausstehend',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Λίστα(ες) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Βαθμολογία',
'none_selected_text' => '[Επιλογή]',
'status' => 'Κατάσταση',
'subscription_status_cleaned' => 'Καθαρίστηκε',
'subscription_status_pending' => 'Σε εκκρεμότητα',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp List(s)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Rating',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Cleaned',
'subscription_status_pending' => 'Pending',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Mailchimp List(s)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Rating',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Cleaned',
'subscription_status_pending' => 'Pending',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Lista(s) de Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Calificación',
'none_selected_text' => 'Seleccionar',
'status' => 'Estado',
'subscription_status_cleaned' => 'Limpieza',
'subscription_status_pending' => 'Pendiente',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Lista(s) de Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Puntaje',
'none_selected_text' => '[Seleccionar]',
'status' => 'Estado',
'subscription_status_cleaned' => 'Limpieza',
'subscription_status_pending' => 'Pendiente',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'لیست(‌های) میل‌چیمپ',
'mailchimp' => 'Mailchimp',
'member_rating' => 'رتبه بندی',
'none_selected_text' => '[Select]',
'status' => 'وضعیت',
'subscription_status_cleaned' => 'پاکسازی شده',
'subscription_status_pending' => 'در انتظار',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Liste(s) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Évaluation',
'none_selected_text' => '[Sélectionner]',
'status' => 'État',
'subscription_status_cleaned' => 'Nettoyé',
'subscription_status_pending' => 'En attente',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'רשימה(ות) של Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'דירוג',
'none_selected_text' => '[בחר]',
'status' => 'סטטוס',
'subscription_status_cleaned' => 'נוקה',
'subscription_status_pending' => 'ממתין',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp lista(e)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Ocjena',
'none_selected_text' => 'Nothing selected',
'status' => 'Status',
'subscription_status_cleaned' => 'Očišćeno',
'subscription_status_pending' => 'Na čekanju',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp lista(k)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Értékelés',
'none_selected_text' => 'Nincs kiválaszva',
'status' => 'Állapot',
'subscription_status_cleaned' => 'Tisztítva',
'subscription_status_pending' => 'Függőben',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp ցուցակ(եր)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Վարկանիշ',
'none_selected_text' => '[Select]',
'status' => 'Կարգավիճակ',
'subscription_status_cleaned' => 'Մաքրված',
'subscription_status_pending' => 'Սպասման մեջ',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Daftar Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Peringkat',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Dibersihkan',
'subscription_status_pending' => 'Tertunda',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Lista(e) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Valutazione',
'none_selected_text' => '[Selezionare]',
'status' => 'Stato',
'subscription_status_cleaned' => 'Pulito',
'subscription_status_pending' => 'In attesa',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp სია(ები)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'რეიტინგი',
'none_selected_text' => '[არჩევა]',
'status' => 'სტატუსი',
'subscription_status_cleaned' => 'გაწმენდილი',
'subscription_status_pending' => 'ლოდინის რეჟიმში',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'បញ្ជី Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'ការវាយតម្លៃ',
'none_selected_text' => '[ជ្រើសរើស]',
'status' => 'ស្ថានភាព',
'subscription_status_cleaned' => 'បានសម្អាត',
'subscription_status_pending' => 'កំពុងរង់ចាំ',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'ລາຍຊື່ Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'ການໃຫ້ຄະແນນ',
'none_selected_text' => 'ບໍ່ໄດ້ເລືອກລາຍການ',
'status' => 'ສະຖານະ',
'subscription_status_cleaned' => 'ລ້າງແລ້ວ',
'subscription_status_pending' => 'ລໍຖ້າ',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp ലിസ്റ്റുകൾ',
'mailchimp' => 'Mailchimp',
'member_rating' => 'റേറ്റിംഗ്',
'none_selected_text' => '[Select]',
'status' => 'നില',
'subscription_status_cleaned' => 'വൃത്തിയാക്കി',
'subscription_status_pending' => 'തൽക്കാലം നിർത്തിവെച്ചിരിക്കുന്നു',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-liste(r)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Vurdering',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Renset',
'subscription_status_pending' => 'Avventer',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-lijst(en)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Waardering',
'none_selected_text' => 'Geen selectie',
'status' => 'Status',
'subscription_status_cleaned' => 'Gewist',
'subscription_status_pending' => 'In afwachting',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-lijst(en)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Beoordeling',
'none_selected_text' => '[Selecteren]',
'status' => 'Status',
'subscription_status_cleaned' => 'Gewist',
'subscription_status_pending' => 'In afwachting',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Lista(y) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Ocena',
'none_selected_text' => '[Wybierz]',
'status' => 'Status',
'subscription_status_cleaned' => 'Wyczyszczono',
'subscription_status_pending' => 'Oczekujący',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Lista(s) do Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Avaliação',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Limpo',
'subscription_status_pending' => 'Pendente',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Listă(i) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Evaluare',
'none_selected_text' => '[Select]ati',
'status' => 'Stare',
'subscription_status_cleaned' => 'Curățat',
'subscription_status_pending' => 'În așteptare',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Список(ы) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Рейтинг',
'none_selected_text' => '[Выбрать]',
'status' => 'Статус',
'subscription_status_cleaned' => 'Очищен',
'subscription_status_pending' => 'В ожидании',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Mailchimp-lista(r)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Betyg',
'none_selected_text' => '[Inget valt]',
'status' => 'Status',
'subscription_status_cleaned' => 'Rensad',
'subscription_status_pending' => 'Avvaktande',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Orodha(o) za Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Tathmini',
'none_selected_text' => '[Chagua]',
'status' => 'Hadhi',
'subscription_status_cleaned' => 'Imesafishwa',
'subscription_status_pending' => 'Inasubiri',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Orodha(o) za Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Tathmini',
'none_selected_text' => '[Chagua]',
'status' => 'Hadhi',
'subscription_status_cleaned' => 'Imesafishwa',
'subscription_status_pending' => 'Inasubiri',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'மெயில்சிம்ப் பட்டியல்(கள்)',
'mailchimp' => 'மெயில்சிம்ப்',
'member_rating' => 'மதிப்பீடு',
'none_selected_text' => '[தேர்ந்தெடு]',
'status' => 'நிலை',
'subscription_status_cleaned' => 'சுத்தம் செய்யப்பட்டது',
'subscription_status_pending' => 'நிலுவையில்',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'รายการ Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'ระดับ',
'none_selected_text' => 'กรุณาเลือก',
'status' => 'สถานะ',
'subscription_status_cleaned' => 'ล้างแล้ว',
'subscription_status_pending' => 'รอการดำเนินการ',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Mailchimp List(s)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Rating',
'none_selected_text' => '[Select]',
'status' => 'Status',
'subscription_status_cleaned' => 'Nalinis',
'subscription_status_pending' => 'Nakabinbin',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Mailchimp Liste(leri)',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Değerlendirme',
'none_selected_text' => '[Seç]',
'status' => 'Durum',
'subscription_status_cleaned' => 'Temizlendi',
'subscription_status_pending' => 'Beklemede',

View File

@@ -19,6 +19,7 @@ return [
'lists' => 'Список(и) Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Рейтинг',
'none_selected_text' => 'Виберіть',
'status' => 'Статус',
'subscription_status_cleaned' => 'Очищено',
'subscription_status_pending' => 'В очікуванні',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'میل چیمپ فہرست (فہرستیں)',
'mailchimp' => 'میل چیمپ',
'member_rating' => 'ریٹنگ',
'none_selected_text' => '[Select]',
'status' => 'صورتحال',
'subscription_status_cleaned' => 'صاف کیا گیا',
'subscription_status_pending' => 'زیر التوا',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Danh sách Mailchimp',
'mailchimp' => 'Mailchimp',
'member_rating' => 'Đánh giá',
'none_selected_text' => '[Chọn]',
'status' => 'Tình trạng',
'subscription_status_cleaned' => 'Đã làm sạch',
'subscription_status_pending' => 'Đang chờ',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Mailchimp 列表',
'mailchimp' => 'Mailchimp',
'member_rating' => '评分',
'none_selected_text' => '【请选择】',
'status' => '状态',
'subscription_status_cleaned' => '已清理',
'subscription_status_pending' => '待处理',

View File

@@ -18,6 +18,7 @@ return [
'lists' => 'Mailchimp 列表',
'mailchimp' => 'Mailchimp',
'member_rating' => '評分',
'none_selected_text' => '[選擇]',
'status' => '狀況',
'subscription_status_cleaned' => '已清理',
'subscription_status_pending' => '待處理',

View File

@@ -203,9 +203,17 @@ class MailchimpPlugin extends BasePlugin
$customer = $customerModel->getInfo($customerId);
$subscriptionStatus = !empty($customer->consent)
? strtolower(SubscriptionStatus::SUBSCRIBED->name)
: strtolower(SubscriptionStatus::UNSUBSCRIBED->name);
if (empty($customer->consent)) {
log_message('debug', "Mailchimp sync skipped for customer ID {$customerId}: no consent");
continue;
}
$subscriptionStatus = SubscriptionStatus::tryFrom((int) service('request')->getPost('status'));
if ($subscriptionStatus === null) {
log_message('debug', "Mailchimp sync skipped for customer ID {$customerId}: no status selected");
continue;
}
$personData = [
'email' => $customer->email ?? '',
@@ -213,7 +221,12 @@ class MailchimpPlugin extends BasePlugin
'last_name' => $customer->last_name ?? '',
];
$this->mailchimpLibrary->synchronizeSubscription($personData, ['person_id' => $customerId], $subscriptionStatus);
$this->mailchimpLibrary->synchronizeSubscription(
$personData,
['person_id' => $customerId],
strtolower($subscriptionStatus->name),
(bool) service('request')->getPost('vip')
);
}
}

View File

@@ -15,7 +15,7 @@
<div class="col-xs-4">
<?= form_dropdown(
'status',
$subscriptionStatusOptions,
[0 => lang('MailchimpPlugin.none_selected_text')] + $subscriptionStatusOptions,
$mailchimpData['status'],
['id' => 'status', 'class' => 'form-control input-sm']
) ?>