fix: clear Mailwizz checkboxlist tag when deleting subscriber

Encode empty checkboxlist arrays as an empty scalar so multipart requests
include the field. On delete, PUT only coupon and tag fields to Mailwizz
after merging the tag CSV from getSubscriber.

Made-with: Cursor
This commit is contained in:
2026-04-05 13:33:56 +02:00
parent 627edbbb83
commit 1e7ee14540
3 changed files with 70 additions and 3 deletions

View File

@@ -104,8 +104,8 @@ final class CleanupSubscriberIntegrationsService
}
$subscriberUid = $search['subscriber_uid'];
$phoneEnabled = $page->isPhoneFieldEnabledForSubscribers();
$data = MailwizzSubscriberFormPayload::baseFields($subscriber, $config, $phoneEnabled);
/** @var array<string, mixed> $data */
$data = [];
$couponField = $config->field_coupon_code;
if (is_string($couponField) && $couponField !== '') {
@@ -123,6 +123,10 @@ final class CleanupSubscriberIntegrationsService
$data[$tagField] = MailwizzCheckboxlistTags::removeValueFromCsv($existingCsv, $tagValue);
}
if ($data === []) {
return;
}
$service->updateSubscriber($listUid, $subscriberUid, $data);
}