Files
piratepoet/mailpoet/lib/Newsletter/NewsletterCoupon.php
Sam Najian 9a2d4e83b2 Change NewsletterCoupon::cleanupSensitiveData signature
This change allows passing body array and retuning body array
so that NewsletterEntity instance doesn't need to get passed
around

[MAILPOET-4678]
2023-01-23 13:31:34 +01:00

41 lines
1.0 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Newsletter;
use MailPoet\Newsletter\Renderer\Blocks\Coupon;
class NewsletterCoupon {
public function cleanupBodySensitiveData(array $newsletterBody): array {
if (!is_array($newsletterBody) || empty($newsletterBody['content'])) {
return $newsletterBody;
}
$cleanBlocks = $this->cleanupCouponBlocks($newsletterBody['content']['blocks']);
return array_merge(
$newsletterBody,
[
'content' => array_merge(
$newsletterBody['content'],
['blocks' => $cleanBlocks]
),
]
);
}
private function cleanupCouponBlocks(array &$blocks): array {
foreach ($blocks as &$block) {
if (isset($block['blocks']) && !empty($block['blocks'])) {
$this->cleanupCouponBlocks($block['blocks']);
}
if (isset($block['type']) && $block['type'] === Coupon::TYPE) {
$block['code'] = Coupon::CODE_PLACEHOLDER;
if(isset($block['couponId']))
unset($block['couponId']);
}
}
return $blocks;
}
}