uilder, ?string $operator, string $valueParam): QueryBuilder { if ($operator === 'before') { $queryBuilder->andWhere("year(subscribers_custom_field.value) < year(:$valueParam)"); } elseif ($operator === 'after') { $queryBuilder->andWhere("year(subscribers_custom_field.value) > year(:$valueParam)"); } else { $queryBuilder->andWhere("year(subscribers_custom_field.value) = year(:$valueParam)"); } return $queryBuilder; } private function applyForDateEqual(QueryBuilder $queryBuilder, ?string $operator, string $valueParam): QueryBuilder { if ($operator === 'before') { $queryBuilder->andWhere("subscribers_custom_field.value < :$valueParam"); } elseif ($operator === 'after') { $queryBuilder->andWhere("subscribers_custom_field.value > :$valueParam"); } else { // we always save full date in the database: 2018-03-01 00:00:00 // so this works even for year_month where we save the first day of the month $queryBuilder->andWhere("subscribers_custom_field.value = :$valueParam"); } return $queryBuilder; } private function applyForCheckbox(QueryBuilder $queryBuilder, DynamicSegmentFilterEntity $filter): QueryBuilder { $filterData = $filter->getFilterData(); $value = $filterData->getParam('value'); $operator = $filterData->getParam('operator'); if ($operator === DynamicSegmentFilterData::IS_BLANK) { $queryBuilder->andWhere('subscribers_custom_field.value IS NULL'); } elseif ($operator === DynamicSegmentFilterData::IS_NOT_BLANK) { $queryBuilder->andWhere('subscribers_custom_field.value IS NOT NULL'); } elseif ($value === '1') { $queryBuilder->andWhere('subscribers_custom_field.value = 1'); } elseif ($value === '0') { $queryBuilder->andWhere('subscribers_custom_field.value <> 1'); } return $queryBuilder; } private function applyEquality(QueryBuilder $queryBuilder, DynamicSegmentFilterEntity $filter, string $valueParam): QueryBuilder { $filterData = $filter->getFilterData(); $operator = $filterData->getParam('operator'); $value = $filterData->getParam('value'); $requiresValue = !in_array($operator, [DynamicSegmentFilterData::IS_BLANK, DynamicSegmentFilterData::IS_NOT_BLANK]); if ($requiresValue && !is_string($value)) { throw new InvalidFilterException('Missing required value', InvalidFilterException::MISSING_VALUE); } /** @var string $value - for PhpStan */ if ($operator === 'equals') { $queryBuilder->andWhere("subscribers_custom_field.value = :$valueParam"); $queryBuilder->setParameter($valueParam, $value); } elseif ($operator === 'not_equals') { $queryBuilder->andWhere("subscribers_custom_field.value != :$valueParam"); $queryBuilder->orWhere('subscribers_custom_field.value IS NULL'); $queryBuilder->setParameter($valueParam, $value); } elseif ($operator === 'more_than') { $queryBuilder->andWhere("subscribers_custom_field.value > :$valueParam"); $queryBuilder->setParameter($valueParam, $value); } elseif ($operator === 'less_than') { $queryBuilder->andWhere("subscribers_custom_field.value < :$valueParam"); $queryBuilder->setParameter($valueParam, $value); } elseif ($operator === DynamicSegmentFilterData::IS_BLANK) { $queryBuilder->andWhere('subscribers_custom_field.value IS NULL OR subscribers_custom_field.value = ""'); } elseif ($operator === DynamicSegmentFilterData::IS_NOT_BLANK) { $queryBuilder->andWhere('subscribers_custom_field.value IS NOT NULL AND subscribers_custom_field.value != ""'); } elseif ($operator === 'not_contains') { $queryBuilder->andWhere("subscribers_custom_field.value NOT LIKE :$valueParam"); $queryBuilder->setParameter($valueParam, '%' . Helpers::escapeSearch($value) . '%'); } else { $queryBuilder->andWhere("subscribers_custom_field.value LIKE :$valueParam"); $queryBuilder->setParameter($valueParam, '%' . Helpers::escapeSearch($value) . '%'); } return $queryBuilder; } public function getLookupData(DynamicSegmentFilterData $filterData): array { $lookupData = [ 'customFields' => [], ]; $customFieldId = $filterData->getIntParam('custom_field_id'); $customField = $this->customFieldsRepository->findOneById($customFieldId); if ($customField instanceof CustomFieldEntity) { $lookupData['customFields'][$customFieldId] = $customField->getName(); } return $lookupData; } }
Fatal error: Uncaught Error: Class "MailPoet\Segments\DynamicSegments\Filters\MailPoetCustomFields" not found in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php:4438 Stack trace: #0 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(4348): MailPoetGenerated\FreeCachedContainer->getMailPoetCustomFieldsService() #1 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(4141): MailPoetGenerated\FreeCachedContainer->getFilterFactoryService() #2 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(4031): MailPoetGenerated\FreeCachedContainer->getSendingQueuesRepositoryService() #3 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5088): MailPoetGenerated\FreeCachedContainer->getRenderer6Service() #4 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5098): MailPoetGenerated\FreeCachedContainer->getConfirmationEmailCustomizerService() #5 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5198): MailPoetGenerated\FreeCachedContainer->getConfirmationEmailMailerService() #6 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(5368): MailPoetGenerated\FreeCachedContainer->getSubscriberActionsService() #7 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(2612): MailPoetGenerated\FreeCachedContainer->getCommentService() #8 /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php(2640): MailPoetGenerated\FreeCachedContainer->getHooks2Service() #9 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(122): MailPoetGenerated\FreeCachedContainer->getInitializerService() #10 /htdocs/wp-content/plugins/mailpoet/vendor-prefixed/symfony/dependency-injection/Container.php(110): MailPoetVendor\Symfony\Component\DependencyInjection\Container->make('MailPoet\\Config...', 1) #11 /htdocs/wp-content/plugins/mailpoet/lib/DI/ContainerWrapper.php(39): MailPoetVendor\Symfony\Component\DependencyInjection\Container->get('MailPoet\\Config...') #12 /htdocs/wp-content/plugins/mailpoet/mailpoet_initializer.php(89): MailPoet\DI\ContainerWrapper->get('MailPoet\\Config...') #13 /htdocs/wp-content/plugins/mailpoet/mailpoet.php(194): require_once('/htdocs/wp-cont...') #14 /htdocs/wp-settings.php(526): include_once('/htdocs/wp-cont...') #15 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...') #16 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #17 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #18 /htdocs/index.php(17): require('/htdocs/wp-blog...') #19 {main} thrown in /htdocs/wp-content/plugins/mailpoet/generated/FreeCachedContainer.php on line 4438