nBlock['productIds'] ?? []));
$coupon->set_excluded_product_ids($this->getItemIds($couponBlock['excludedProductIds'] ?? []));
$coupon->set_product_categories($this->getItemIds($couponBlock['productCategoryIds'] ?? []));
$coupon->set_excluded_product_categories($this->getItemIds($couponBlock['excludedProductCategoryIds'] ?? []));
$coupon->set_email_restrictions(explode(',', $couponBlock['emailRestrictions'] ?? ''));
// usage limit
$coupon->set_usage_limit($couponBlock['usageLimit'] ?? 0);
$coupon->set_usage_limit_per_user($couponBlock['usageLimitPerUser'] ?? 0);
return $coupon->save();
}
private function getItemIds(array $items): array {
if (empty($items)) {
return [];
}
return array_map(function ($item) {
return $item['id'];
}, $items);
}
/**
* Generates Coupon code for XXXX-XXXXXX-XXXX pattern
*/
private function generateRandomCode(): string {
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$length = strlen($chars);
return sprintf(
"%s-%s-%s",
substr($chars, rand(0, $length - 5), 4),
substr($chars, rand(0, $length - 8), 7),
substr($chars, rand(0, $length - 5), 4)
);
}
private function shouldGenerateCoupon(array $block): bool {
return empty($block['couponId']);
}
/**
* Only emails that can have their body-HTML re-generated should persist the generated couponId
*/
private function shouldPersist(NewsletterEntity $newsletter): bool {
return in_array($newsletter->getType(), NewsletterEntity::TYPES_WITH_RESETTABLE_BODY);
}
}
Fatal error: Uncaught Error: Class "MailPoet\WooCommerce\CouponPreProcessor" not found in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php:5632
Stack trace:
#0 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(4021): MailPoetGenerated\FreeCachedContainer->getCouponPreProcessorService()
#1 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(4031): MailPoetGenerated\FreeCachedContainer->getPreprocessorService()
#2 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5088): MailPoetGenerated\FreeCachedContainer->getRenderer6Service()
#3 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5098): MailPoetGenerated\FreeCachedContainer->getConfirmationEmailCustomizerService()
#4 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5198): MailPoetGenerated\FreeCachedContainer->getConfirmationEmailMailerService()
#5 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5368): MailPoetGenerated\FreeCachedContainer->getSubscriberActionsService()
#6 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(2612): MailPoetGenerated\FreeCachedContainer->getCommentService()
#7 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(2640): MailPoetGenerated\FreeCachedContainer->getHooks2Service()
#8 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(122): MailPoetGenerated\FreeCachedContainer->getInitializerService()
#9 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(110): MailPoetVendor\Symfony\Component\DependencyInjection\Container->make('MailPoet\\Config...', 1)
#10 /htdocs/wp-content/plugins/mailpoet/lib/DI/ContainerWrapper.php(39): MailPoetVendor\Symfony\Component\DependencyInjection\Container->get('MailPoet\\Config...')
#11 /htdocs/wp-content/plugins/mailpoet/mailpoet_initializer.php(89): MailPoet\DI\ContainerWrapper->get('MailPoet\\Config...')
#12 /htdocs/wp-content/plugins/mailpoet/mailpoet.php(194): require_once('/htdocs/wp-cont...')
#13 /htdocs/wp-settings.php(526): include_once('/htdocs/wp-cont...')
#14 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...')
#15 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...')
#16 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...')
#17 /htdocs/index.php(17): require('/htdocs/wp-blog...')
#18 {main}
thrown in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php on line 5632