8889841cwp-content/plugins/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSubscribedViaForm.php000064400000003717150513104270035111 0ustar00home/clixcotz/tcchp.clix.co.tzfilterHelper = $filterHelper; } public function apply(QueryBuilder $queryBuilder, DynamicSegmentFilterEntity $filter): QueryBuilder { $filterData = $filter->getFilterData(); $formIds = $filterData->getParam('form_ids'); $operator = $filterData->getParam('operator'); $subscribersTable = $this->filterHelper->getSubscribersTable(); $formStatsTable = $this->filterHelper->getTableForEntity(StatisticsFormEntity::class); $formIdsParam = $this->filterHelper->getUniqueParameterName('formIds'); if ($operator === DynamicSegmentFilterData::OPERATOR_ANY) { $queryBuilder->innerJoin( $subscribersTable, $formStatsTable, 'statisticsForms', "$subscribersTable.id = statisticsForms.subscriber_id" ); $queryBuilder->andWhere("statisticsForms.form_id IN (:$formIdsParam)"); } elseif ($operator === DynamicSegmentFilterData::OPERATOR_NONE) { $queryBuilder->leftJoin( $subscribersTable, $formStatsTable, 'statisticsForms', "$subscribersTable.id = statisticsForms.subscriber_id AND statisticsForms.form_id IN (:$formIdsParam)" ); $queryBuilder->andWhere("statisticsForms.subscriber_id IS NULL"); } $queryBuilder->setParameter($formIdsParam, $formIds, Connection::PARAM_INT_ARRAY); return $queryBuilder; } }