From 6ef6f49693bced4ba91556bdbb0534338b4a36d8 Mon Sep 17 00:00:00 2001 From: objec Date: Tue, 21 Apr 2026 16:20:44 +0400 Subject: [PATCH] StatusOptions - Generate StatusOptions View Data from enum rather than hardcode. - Add language strings Signed-off-by: objec --- .../Libraries/MailchimpLibrary.php | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/Plugins/MailchimpPlugin/Libraries/MailchimpLibrary.php b/app/Plugins/MailchimpPlugin/Libraries/MailchimpLibrary.php index 5fa1b137a..8b202d398 100644 --- a/app/Plugins/MailchimpPlugin/Libraries/MailchimpLibrary.php +++ b/app/Plugins/MailchimpPlugin/Libraries/MailchimpLibrary.php @@ -2,6 +2,7 @@ namespace app\Plugins\MailchimpPlugin\Libraries; +use App\Plugins\MailchimpPlugin\Enums\SubscriptionStatus; use App\Plugins\MailchimpPlugin\Models\SubscriptionModel; use app\Plugins\MailichimpPlugin\Libraries\MailchimpConnector; use Exception; @@ -98,13 +99,16 @@ class MailchimpLibrary public function getMailchimpData(array $customerData): array { - if (!empty($customerInfo->email)) { + if (!empty($customerData->email)) { $listId = $this->settings['list_id']; - $mailchimpInfo = $this->getMemberInfo($listId, $customerInfo->email); + $mailchimpInfo = $this->getMemberInfo($listId, $customerData->email); + if ($mailchimpInfo !== false) { $mailchimpData['mailchimp_info'] = $mailchimpInfo; - $customerActivities = $this->getMemberActivity($listId, $customerInfo->email); + $mailchimpData['subscriptionStatusOptions'] = $this->getSubscriptionStatusOptionViewData(); + + $customerActivities = $this->getMemberActivity($listId, $customerData->email); if ($customerActivities !== false) { if (array_key_exists('activity', $customerActivities)) { $open = 0; @@ -146,6 +150,17 @@ class MailchimpLibrary return []; } + private function getSubscriptionStatusOptionViewData(): array + { + $statusOptions = []; + foreach (SubscriptionStatus::cases() as $case) { + $lowercaseName = strtolower($case->name); + $statusOptions[(int)$case] = lang("MailchimpPlugin.subscription_status_{$lowercaseName}"); + } + + return $statusOptions; + } + /** * Gets information about all lists owned by the authenticated account. *