From ff6a98fae18c91e2e697ec39e146f9991e30b8ca Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Fri, 12 Jul 2024 12:33:31 +0200 Subject: [PATCH] Replace deprecated array types with Doctrine's ArrayParameterType [MAILPOET-6142] --- .../Migrations/App/Migration_20231128_120355_App.php | 5 +++-- .../Migrations/App/Migration_20240207_105912_App.php | 6 +++--- .../Migrations/App/Migration_20240322_110443_App.php | 4 ++-- .../lib/Migrations/Db/Migration_20230111_120000.php | 4 ++-- mailpoet/lib/Newsletter/NewslettersRepository.php | 9 ++++----- .../Sending/ScheduledTaskSubscribersRepository.php | 6 +++--- .../Newsletter/Sending/ScheduledTasksRepository.php | 4 ++-- .../DynamicSegments/Filters/AutomationsEvents.php | 4 ++-- .../Segments/DynamicSegments/Filters/EmailAction.php | 12 ++++++------ .../DynamicSegments/Filters/SubscriberSegment.php | 4 ++-- .../Filters/SubscriberSubscribedViaForm.php | 4 ++-- .../DynamicSegments/Filters/WooCommerceCategory.php | 6 +++--- .../Filters/WooCommerceMembership.php | 8 ++++---- .../Filters/WooCommerceNumberOfOrders.php | 4 ++-- .../DynamicSegments/Filters/WooCommerceProduct.php | 4 ++-- .../Filters/WooCommercePurchasedWithAttribute.php | 6 +++--- .../Filters/WooCommerceSubscription.php | 8 ++++---- .../DynamicSegments/Filters/WooCommerceTag.php | 4 ++-- .../Filters/WooCommerceUsedCouponCode.php | 4 ++-- .../Filters/WooCommerceUsedPaymentMethod.php | 6 +++--- .../Filters/WooCommerceUsedShippingMethod.php | 6 +++--- .../DynamicSegments/Filters/WooFilterHelper.php | 4 ++-- .../lib/Segments/SegmentSubscribersRepository.php | 4 ++-- mailpoet/lib/Segments/SegmentsRepository.php | 10 +++++----- .../lib/Segments/SegmentsSimpleListRepository.php | 4 ++-- mailpoet/lib/Segments/SubscribersFinder.php | 8 ++++---- mailpoet/lib/Segments/WooCommerce.php | 7 ++++--- .../StatisticsWooCommercePurchasesRepository.php | 4 ++-- .../lib/Subscribers/EngagementDataBackfiller.php | 10 +++++----- .../ImportExport/ImportExportRepository.php | 6 +++--- .../Subscribers/InactiveSubscribersController.php | 6 +++--- mailpoet/lib/Subscribers/SubscribersRepository.php | 12 ++++++------ 32 files changed, 97 insertions(+), 96 deletions(-) diff --git a/mailpoet/lib/Migrations/App/Migration_20231128_120355_App.php b/mailpoet/lib/Migrations/App/Migration_20231128_120355_App.php index 466dc13bb5..2ebc7c6ec4 100644 --- a/mailpoet/lib/Migrations/App/Migration_20231128_120355_App.php +++ b/mailpoet/lib/Migrations/App/Migration_20231128_120355_App.php @@ -7,6 +7,7 @@ use MailPoet\Entities\ScheduledTaskEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Migrator\AppMigration; use MailPoet\WooCommerce\Helper; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Connection; /** @@ -44,7 +45,7 @@ class Migration_20231128_120355_App extends AppMigration { 'newsletterTypes' => $newsletterTypes, 'taskStatus' => $statusCompleted, ], [ - 'newsletterTypes' => Connection::PARAM_STR_ARRAY, + 'newsletterTypes' => ArrayParameterType::STRING, ]); // Fix data for scheduled tasks @@ -62,7 +63,7 @@ class Migration_20231128_120355_App extends AppMigration { 'newsletterTypes' => $newsletterTypes, 'taskStatus' => $statusScheduled, ], [ - 'newsletterTypes' => Connection::PARAM_STR_ARRAY, + 'newsletterTypes' => ArrayParameterType::STRING, ]); } diff --git a/mailpoet/lib/Migrations/App/Migration_20240207_105912_App.php b/mailpoet/lib/Migrations/App/Migration_20240207_105912_App.php index ecbcf1ba25..e600c9db14 100644 --- a/mailpoet/lib/Migrations/App/Migration_20240207_105912_App.php +++ b/mailpoet/lib/Migrations/App/Migration_20240207_105912_App.php @@ -8,7 +8,7 @@ use MailPoet\Entities\ScheduledTaskSubscriberEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\StatisticsNewsletterEntity; use MailPoet\Migrator\AppMigration; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; /** * We've had a set of bugs where campaign type newsletters (see NewsletterEntity::CAMPAIGN_TYPES), @@ -119,7 +119,7 @@ class Migration_20240207_105912_App extends AppMigration { WHERE t.id IN (:ids) ", ['sent' => NewsletterEntity::STATUS_SENT, 'ids' => $ids], - ['ids' => Connection::PARAM_INT_ARRAY] + ['ids' => ArrayParameterType::INTEGER] ); } @@ -183,7 +183,7 @@ class Migration_20240207_105912_App extends AppMigration { WHERE q.newsletter_id IN (:ids) ", ['ids' => $ids], - ['ids' => Connection::PARAM_INT_ARRAY] + ['ids' => ArrayParameterType::INTEGER] ); } } diff --git a/mailpoet/lib/Migrations/App/Migration_20240322_110443_App.php b/mailpoet/lib/Migrations/App/Migration_20240322_110443_App.php index a0433f457e..3324db9dbc 100644 --- a/mailpoet/lib/Migrations/App/Migration_20240322_110443_App.php +++ b/mailpoet/lib/Migrations/App/Migration_20240322_110443_App.php @@ -5,7 +5,7 @@ namespace MailPoet\Migrations\App; use MailPoet\Entities\StatisticsWooCommercePurchaseEntity; use MailPoet\Migrator\AppMigration; use MailPoet\WooCommerce\Helper; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; class Migration_20240322_110443_App extends AppMigration { public function run(): void { @@ -46,7 +46,7 @@ class Migration_20240322_110443_App extends AppMigration { $orders = $this->entityManager->getConnection()->executeQuery( $query, ['orderIds' => $orderIds], - ['orderIds' => Connection::PARAM_INT_ARRAY], + ['orderIds' => ArrayParameterType::INTEGER], )->fetchAllAssociative(); foreach ($orders as $order) { diff --git a/mailpoet/lib/Migrations/Db/Migration_20230111_120000.php b/mailpoet/lib/Migrations/Db/Migration_20230111_120000.php index d602ff3027..53bf35606d 100644 --- a/mailpoet/lib/Migrations/Db/Migration_20230111_120000.php +++ b/mailpoet/lib/Migrations/Db/Migration_20230111_120000.php @@ -5,7 +5,7 @@ namespace MailPoet\Migrations\Db; use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SettingEntity; use MailPoet\Migrator\DbMigration; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; class Migration_20230111_120000 extends DbMigration { public function run(): void { @@ -35,7 +35,7 @@ class Migration_20230111_120000 extends DbMigration { UPDATE {$segmentsTable} SET {$columnName} = 1 WHERE id IN (?) - ", [$segmentIds], [Connection::PARAM_INT_ARRAY]); + ", [$segmentIds], [ArrayParameterType::INTEGER]); $subscriptionSetting['segments'] = []; $this->connection->executeStatement( diff --git a/mailpoet/lib/Newsletter/NewslettersRepository.php b/mailpoet/lib/Newsletter/NewslettersRepository.php index 6b5a872ec0..c1209e1620 100644 --- a/mailpoet/lib/Newsletter/NewslettersRepository.php +++ b/mailpoet/lib/Newsletter/NewslettersRepository.php @@ -17,7 +17,6 @@ use MailPoet\Logging\LoggerFactory; use MailPoet\Util\Helpers; use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; -use MailPoetVendor\Doctrine\DBAL\Connection; use MailPoetVendor\Doctrine\ORM\EntityManager; use MailPoetVendor\Doctrine\ORM\Query\Expr\Join; @@ -304,14 +303,14 @@ class NewslettersRepository extends Repository { JOIN $sendingQueueTable q ON t.`id` = q.`task_id` SET t.`deleted_at` = NOW() WHERE q.`newsletter_id` IN (:ids) - ", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids], ['ids' => ArrayParameterType::INTEGER]); // Trash sending queues $this->entityManager->getConnection()->executeStatement(" UPDATE $sendingQueueTable q SET q.`deleted_at` = NOW() WHERE q.`newsletter_id` IN (:ids) - ", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids], ['ids' => ArrayParameterType::INTEGER]); // Trash CPT. $wpPostIds = $this->getWpPostIds($ids); @@ -350,7 +349,7 @@ class NewslettersRepository extends Repository { 'ids' => $ids, 'pausedStatus' => ScheduledTaskEntity::STATUS_PAUSED, ], [ - 'ids' => Connection::PARAM_INT_ARRAY, + 'ids' => ArrayParameterType::INTEGER, ]); // Restore sending queues @@ -358,7 +357,7 @@ class NewslettersRepository extends Repository { UPDATE $sendingQueueTable q SET q.`deleted_at` = null WHERE q.`newsletter_id` IN (:ids) - ", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids], ['ids' => ArrayParameterType::INTEGER]); // Untrash CPT. $wpPostIds = $this->getWpPostIds($ids); diff --git a/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php b/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php index 74b4ec1eb3..d58220a769 100644 --- a/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php +++ b/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php @@ -9,7 +9,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\InvalidStateException; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\ORM\QueryBuilder; /** @@ -90,7 +90,7 @@ class ScheduledTaskSubscribersRepository extends Repository { ->set('sts.processed', ScheduledTaskSubscriberEntity::STATUS_PROCESSED) ->where('sts.subscriber IN (:subscriberIds)') ->andWhere('sts.task = :task') - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY) + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER) ->setParameter('task', $task) ->getQuery() ->execute(); @@ -159,7 +159,7 @@ class ScheduledTaskSubscribersRepository extends Repository { ->where('sts.task = :task') ->andWhere('sts.subscriber IN (:subscriberIds)') ->setParameter('task', $scheduledTask) - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY) + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER) ->getQuery() ->execute(); diff --git a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php index 9bdaae39ad..266a9ca9ff 100644 --- a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php +++ b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php @@ -12,7 +12,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\CarbonImmutable; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; use MailPoetVendor\Doctrine\ORM\Query\Expr\Join; @@ -317,7 +317,7 @@ class ScheduledTasksRepository extends Repository { ->set('st.updatedAt', ':updatedAt') ->setParameter('updatedAt', $now) ->where('st.id IN (:ids)') - ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) + ->setParameter('ids', $ids, ArrayParameterType::INTEGER) ->getQuery() ->execute(); diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/AutomationsEvents.php b/mailpoet/lib/Segments/DynamicSegments/Filters/AutomationsEvents.php index 3c424a5978..72f2649ea1 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/AutomationsEvents.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/AutomationsEvents.php @@ -7,7 +7,7 @@ use MailPoet\Automation\Engine\Data\AutomationRun; use MailPoet\Automation\Engine\Storage\AutomationStorage; use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterEntity; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class AutomationsEvents implements Filter { @@ -85,7 +85,7 @@ class AutomationsEvents implements Filter { 'automations.id = runs.automation_id' ) ->andWhere("automations.id IN (:$automationIdsParam)") - ->setParameter($automationIdsParam, $automationIds, Connection::PARAM_STR_ARRAY); + ->setParameter($automationIdsParam, $automationIds, ArrayParameterType::STRING); if ($action === self::EXITED_ACTION) { $statusParam = $this->filterHelper->getUniqueParameterName('status'); diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/EmailAction.php b/mailpoet/lib/Segments/DynamicSegments/Filters/EmailAction.php index d132ae2d7f..96798c7d18 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/EmailAction.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/EmailAction.php @@ -14,7 +14,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\UserAgentEntity; use MailPoet\Newsletter\NewslettersRepository; use MailPoet\Util\Security; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -137,7 +137,7 @@ class EmailAction implements Filter { $queryBuilder = $queryBuilder->andWhere($where); if ($linkIds) { $queryBuilder = $queryBuilder - ->setParameter('links' . $parameterSuffix, $linkIds, Connection::PARAM_STR_ARRAY); + ->setParameter('links' . $parameterSuffix, $linkIds, ArrayParameterType::STRING); } return $queryBuilder; } @@ -164,7 +164,7 @@ class EmailAction implements Filter { $statsTable, 'stats', "statssent.subscriber_id = stats.subscriber_id AND stats.newsletter_id IN (:newsletters" . $parameterSuffix . ')' - )->setParameter('newsletters' . $parameterSuffix, $newsletters, Connection::PARAM_INT_ARRAY); + )->setParameter('newsletters' . $parameterSuffix, $newsletters, ArrayParameterType::INTEGER); $where .= ' AND stats.id IS NULL'; } else { $queryBuilder = $queryBuilder->innerJoin( @@ -172,7 +172,7 @@ class EmailAction implements Filter { $statsTable, 'stats', "stats.subscriber_id = $subscribersTable.id AND stats.newsletter_id IN (:newsletters" . $parameterSuffix . ')' - )->setParameter('newsletters' . $parameterSuffix, $newsletters, Connection::PARAM_INT_ARRAY); + )->setParameter('newsletters' . $parameterSuffix, $newsletters, ArrayParameterType::INTEGER); if ($operator === DynamicSegmentFilterData::OPERATOR_ALL) { $queryBuilder->groupBy('subscriber_id'); @@ -212,7 +212,7 @@ class EmailAction implements Filter { 'statisticsNewsletter', "$subscribersTable.id = statisticsNewsletter.subscriber_id AND statisticsNewsletter.newsletter_id IN (:newsletters" . $parameterSuffix . ')' ) - ->setParameter('newsletters' . $parameterSuffix, $newsletters, Connection::PARAM_INT_ARRAY) + ->setParameter('newsletters' . $parameterSuffix, $newsletters, ArrayParameterType::INTEGER) ->andWhere('statisticsNewsletter.subscriber_id IS NULL'); } else { $queryBuilder->innerJoin( @@ -220,7 +220,7 @@ class EmailAction implements Filter { $statisticsNewslettersTable, 'statisticsNewsletter', "statisticsNewsletter.subscriber_id = $subscribersTable.id AND statisticsNewsletter.newsletter_id IN (:newsletters" . $parameterSuffix . ')' - )->setParameter('newsletters' . $parameterSuffix, $newsletters, Connection::PARAM_INT_ARRAY); + )->setParameter('newsletters' . $parameterSuffix, $newsletters, ArrayParameterType::INTEGER); if ($operator === DynamicSegmentFilterData::OPERATOR_ALL) { $queryBuilder->groupBy('subscriber_id'); diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSegment.php b/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSegment.php index 14a3608aa4..40540bb39b 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSegment.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSegment.php @@ -8,7 +8,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberSegmentEntity; use MailPoet\Segments\SegmentsRepository; use MailPoet\Util\Security; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -50,7 +50,7 @@ class SubscriberSegment implements Filter { ); $queryBuilder->setParameter($statusSubscribedParam, SubscriberEntity::STATUS_SUBSCRIBED); - $queryBuilder->setParameter($segmentsParam, $segments, Connection::PARAM_INT_ARRAY); + $queryBuilder->setParameter($segmentsParam, $segments, ArrayParameterType::INTEGER); if ($operator === DynamicSegmentFilterData::OPERATOR_NONE) { $queryBuilder->andWhere('subscriber_segments.id IS NULL'); diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSubscribedViaForm.php b/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSubscribedViaForm.php index fb931eb4c9..89f0b93b50 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSubscribedViaForm.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/SubscriberSubscribedViaForm.php @@ -6,7 +6,7 @@ use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\StatisticsFormEntity; use MailPoet\Form\FormsRepository; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class SubscriberSubscribedViaForm implements Filter { @@ -54,7 +54,7 @@ class SubscriberSubscribedViaForm implements Filter { $queryBuilder->andWhere("statisticsForms.subscriber_id IS NULL"); } - $queryBuilder->setParameter($formIdsParam, $formIds, Connection::PARAM_INT_ARRAY); + $queryBuilder->setParameter($formIdsParam, $formIds, ArrayParameterType::INTEGER); return $queryBuilder; } diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceCategory.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceCategory.php index a4aa2903de..022a575ed1 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceCategory.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceCategory.php @@ -7,7 +7,7 @@ use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Util\Security; use MailPoet\WP\Functions as WPFunctions; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; use WP_Term; @@ -67,7 +67,7 @@ class WooCommerceCategory implements Filter { $this->applyProductJoin($subQuery, $orderStatsAlias); $this->applyTermRelationshipsJoin($subQuery); $this->applyTermTaxonomyJoin($subQuery, $uniqueParamaterSuffix); - $subQuery->setParameter("category_$uniqueParamaterSuffix", $categoryIdWithChildrenIds, Connection::PARAM_STR_ARRAY); + $subQuery->setParameter("category_$uniqueParamaterSuffix", $categoryIdWithChildrenIds, ArrayParameterType::STRING); $alias = sprintf("subQuery%s", $subQueryCount); $queryBuilder->innerJoin( $subscribersTable, @@ -90,7 +90,7 @@ class WooCommerceCategory implements Filter { } return $queryBuilder - ->setParameter("category_$parameterSuffix", $categoryIdswithChildrenIds, Connection::PARAM_STR_ARRAY); + ->setParameter("category_$parameterSuffix", $categoryIdswithChildrenIds, ArrayParameterType::STRING); } private function applyProductJoin(QueryBuilder $queryBuilder, string $orderStatsAlias): QueryBuilder { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceMembership.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceMembership.php index 52d3d34e83..2e01f8455a 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceMembership.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceMembership.php @@ -6,7 +6,7 @@ use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Util\Security; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -38,7 +38,7 @@ class WooCommerceMembership implements Filter { ->andWhere("posts.post_parent IN (:plans" . $parameterSuffix . ")") ->groupBy("$subscribersTable.id") ->having("COUNT($subscribersTable.id) = :count$parameterSuffix") - ->setParameter('plans' . $parameterSuffix, $planIds, Connection::PARAM_STR_ARRAY) + ->setParameter('plans' . $parameterSuffix, $planIds, ArrayParameterType::STRING) ->setParameter('count' . $parameterSuffix, count($planIds)); } @@ -53,7 +53,7 @@ class WooCommerceMembership implements Filter { $subQueryBuilder ->andWhere("posts.post_parent IN (:plans" . $parameterSuffix . ")"); return $queryBuilder->where("{$subscribersTable}.id NOT IN ({$subQueryBuilder->getSQL()})") - ->setParameter('plans' . $parameterSuffix, $planIds, Connection::PARAM_STR_ARRAY); + ->setParameter('plans' . $parameterSuffix, $planIds, ArrayParameterType::STRING); } // ANY @@ -61,7 +61,7 @@ class WooCommerceMembership implements Filter { $this->applyParentPostJoin($queryBuilder); return $queryBuilder ->andWhere("posts.post_parent IN (:plans" . $parameterSuffix . ")") - ->setParameter('plans' . $parameterSuffix, $planIds, Connection::PARAM_STR_ARRAY); + ->setParameter('plans' . $parameterSuffix, $planIds, ArrayParameterType::STRING); } private function applyPostJoin(QueryBuilder $queryBuilder): QueryBuilder { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceNumberOfOrders.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceNumberOfOrders.php index de75b35d1b..926b8bc566 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceNumberOfOrders.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceNumberOfOrders.php @@ -8,7 +8,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\Util\DBCollationChecker; use MailPoet\Util\Security; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -98,7 +98,7 @@ class WooCommerceNumberOfOrders implements Filter { ], ], \true) ->setParameter('date' . $parameterSuffix, $date->toDateTimeString()) - ->setParameter('allowedStatuses' . $parameterSuffix, $this->wooFilterHelper->defaultIncludedStatuses(), Connection::PARAM_STR_ARRAY) + ->setParameter('allowedStatuses' . $parameterSuffix, $this->wooFilterHelper->defaultIncludedStatuses(), ArrayParameterType::STRING) ->groupBy('inner_subscriber_id'); if ($type === '=') { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceProduct.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceProduct.php index b1d24a3beb..940eaa93c3 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceProduct.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceProduct.php @@ -7,7 +7,7 @@ use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Util\Security; use MailPoet\WooCommerce\Helper; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; use WC_Product; @@ -69,7 +69,7 @@ class WooCommerceProduct implements Filter { $queryBuilder->where("{$subscribersTable}.id NOT IN ({$this->filterHelper->getInterpolatedSQL($subQuery)})"); } return $queryBuilder - ->setParameter("products_{$parameterSuffix}", $productIds, Connection::PARAM_STR_ARRAY); + ->setParameter("products_{$parameterSuffix}", $productIds, ArrayParameterType::STRING); } private function applyProductJoin(QueryBuilder $queryBuilder, string $orderStatsAlias): QueryBuilder { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommercePurchasedWithAttribute.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommercePurchasedWithAttribute.php index 3b773479bd..dc6f8fc02d 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommercePurchasedWithAttribute.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommercePurchasedWithAttribute.php @@ -6,7 +6,7 @@ use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\WP\Functions; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class WooCommercePurchasedWithAttribute implements Filter { @@ -54,7 +54,7 @@ class WooCommercePurchasedWithAttribute implements Filter { $productAlias = $this->applyProductJoin($queryBuilder, $orderStatsAlias); $attributeAlias = $this->applyTaxonomyAttributeJoin($queryBuilder, $productAlias, $attributeTaxonomySlug); $queryBuilder->andWhere("$attributeAlias.term_id IN (:$termIdsParam)"); - $queryBuilder->setParameter($termIdsParam, $attributeTermIds, Connection::PARAM_STR_ARRAY); + $queryBuilder->setParameter($termIdsParam, $attributeTermIds, ArrayParameterType::STRING); } private function applyProductJoin(QueryBuilder $queryBuilder, string $orderStatsAlias, string $alias = 'product'): string { @@ -203,6 +203,6 @@ class WooCommercePurchasedWithAttribute implements Filter { ); $queryBuilder->setParameter($keyParam, sprintf("attribute_%s", $attributeName)); - $queryBuilder->setParameter($valuesParam, $attributeValues, Connection::PARAM_STR_ARRAY); + $queryBuilder->setParameter($valuesParam, $attributeValues, ArrayParameterType::STRING); } } diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceSubscription.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceSubscription.php index 0d50df74b4..cfb483eb46 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceSubscription.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceSubscription.php @@ -8,7 +8,7 @@ use MailPoet\Entities\SubscriberEntity; use MailPoet\Util\DBCollationChecker; use MailPoet\Util\Security; use MailPoet\WooCommerce\Helper as WooCommerceHelper; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -50,7 +50,7 @@ class WooCommerceSubscription implements Filter { ->andWhere("itemmeta.meta_value IN (:products" . $parameterSuffix . ")") ->groupBy("$subscribersTable.id") ->having("COUNT($subscribersTable.id) = :count$parameterSuffix") - ->setParameter('products' . $parameterSuffix, $productIds, Connection::PARAM_STR_ARRAY) + ->setParameter('products' . $parameterSuffix, $productIds, ArrayParameterType::STRING) ->setParameter('count' . $parameterSuffix, count($productIds)); } @@ -66,7 +66,7 @@ class WooCommerceSubscription implements Filter { $subQueryBuilder ->andWhere("itemmeta.meta_value IN (:products" . $parameterSuffix . ")"); return $queryBuilder->where("{$subscribersTable}.id NOT IN ({$subQueryBuilder->getSQL()})") - ->setParameter('products' . $parameterSuffix, $productIds, Connection::PARAM_STR_ARRAY); + ->setParameter('products' . $parameterSuffix, $productIds, ArrayParameterType::STRING); } // ANY @@ -75,7 +75,7 @@ class WooCommerceSubscription implements Filter { $this->applyOrderItemmetaJoin($queryBuilder); return $queryBuilder ->andWhere("itemmeta.meta_value IN (:products" . $parameterSuffix . ")") - ->setParameter('products' . $parameterSuffix, $productIds, Connection::PARAM_STR_ARRAY); + ->setParameter('products' . $parameterSuffix, $productIds, ArrayParameterType::STRING); } private function applyPostmetaAndPostJoin(QueryBuilder $queryBuilder): QueryBuilder { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceTag.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceTag.php index 7442bfe45d..c78a61db66 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceTag.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceTag.php @@ -6,7 +6,7 @@ use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\WP\Functions as WPFunctions; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use WP_Term; @@ -69,7 +69,7 @@ class WooCommerceTag implements Filter { AND term_taxonomy.term_id IN (:$tagIdsParam)" ); - $queryBuilder->setParameter($tagIdsParam, $filterData->getArrayParam('tag_ids'), Connection::PARAM_STR_ARRAY); + $queryBuilder->setParameter($tagIdsParam, $filterData->getArrayParam('tag_ids'), ArrayParameterType::STRING); } private function applyProductJoin(QueryBuilder $queryBuilder, string $orderStatsAlias, string $productAlias = 'product'): string { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedCouponCode.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedCouponCode.php index c1ef4c1eef..5a32adf15b 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedCouponCode.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedCouponCode.php @@ -7,7 +7,7 @@ use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\WooCommerce\Helper; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class WooCommerceUsedCouponCode implements Filter { @@ -83,7 +83,7 @@ class WooCommerceUsedCouponCode implements Filter { $couponCodeIdsParam = $this->filterHelper->getUniqueParameterName('couponCodeIds'); $queryBuilder ->andWhere("couponLookup.coupon_id IN (:$couponCodeIdsParam)") - ->setParameter($couponCodeIdsParam, $couponIds, Connection::PARAM_INT_ARRAY); + ->setParameter($couponCodeIdsParam, $couponIds, ArrayParameterType::INTEGER); } private function applyForAllOperator(QueryBuilder $queryBuilder, DynamicSegmentFilterEntity $filter): void { diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedPaymentMethod.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedPaymentMethod.php index 1aa33d92f6..f0a168b4f8 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedPaymentMethod.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedPaymentMethod.php @@ -7,7 +7,7 @@ use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\WooCommerce\Helper; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use WC_Payment_Gateway; @@ -112,7 +112,7 @@ class WooCommerceUsedPaymentMethod implements Filter { ->andWhere("postmeta.meta_key = :$paymentMethodMetaKeyParam") ->andWhere("postmeta.meta_value IN (:$paymentMethodParam)") ->setParameter($paymentMethodMetaKeyParam, '_payment_method') - ->setParameter($paymentMethodParam, $paymentMethods, Connection::PARAM_STR_ARRAY); + ->setParameter($paymentMethodParam, $paymentMethods, ArrayParameterType::STRING); if (!$isAllTime) { $dateParam = $this->filterHelper->getUniqueParameterName('date'); $queryBuilder @@ -129,7 +129,7 @@ class WooCommerceUsedPaymentMethod implements Filter { $queryBuilder ->innerJoin($orderStatsAlias, $ordersTable, 'orders', "$orderStatsAlias.order_id = orders.id") ->andWhere("$ordersAlias.payment_method IN (:$paymentMethodParam)") - ->setParameter($paymentMethodParam, $paymentMethods, Connection::PARAM_STR_ARRAY); + ->setParameter($paymentMethodParam, $paymentMethods, ArrayParameterType::STRING); if (!$isAllTime) { $dateParam = $this->filterHelper->getUniqueParameterName('date'); $queryBuilder diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedShippingMethod.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedShippingMethod.php index 49b8092a84..134e5f843e 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedShippingMethod.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooCommerceUsedShippingMethod.php @@ -7,7 +7,7 @@ use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\WooCommerce\Helper; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class WooCommerceUsedShippingMethod implements Filter { @@ -111,7 +111,7 @@ class WooCommerceUsedShippingMethod implements Filter { ->andWhere("$orderItemsTableAlias.order_item_type = 'shipping'") ->andWhere("$orderItemMetaTableAlias.meta_key = 'instance_id'") ->andWhere("$orderItemMetaTableAlias.meta_value IN (:$instanceIdsParam)") - ->setParameter($instanceIdsParam, $shippingMethodInstanceIds, Connection::PARAM_STR_ARRAY); + ->setParameter($instanceIdsParam, $shippingMethodInstanceIds, ArrayParameterType::STRING); if (!$isAllTime) { $dateParam = $this->filterHelper->getUniqueParameterName('date'); $queryBuilder @@ -137,7 +137,7 @@ class WooCommerceUsedShippingMethod implements Filter { ->andWhere("$orderItemMetaTableAlias.meta_key = 'instance_id'") ->andWhere("$orderItemMetaTableAlias.meta_value IN (:$instanceIdsParam)") ->setParameter($orderItemTypeParam, 'shipping') - ->setParameter($instanceIdsParam, $shippingMethodInstanceIds, Connection::PARAM_STR_ARRAY) + ->setParameter($instanceIdsParam, $shippingMethodInstanceIds, ArrayParameterType::STRING) ->groupBy('inner_subscriber_id') ->having("COUNT(DISTINCT($orderItemMetaTableAlias.meta_value)) = " . count($shippingMethodInstanceIds)); diff --git a/mailpoet/lib/Segments/DynamicSegments/Filters/WooFilterHelper.php b/mailpoet/lib/Segments/DynamicSegments/Filters/WooFilterHelper.php index cebd3454e3..41e033c261 100644 --- a/mailpoet/lib/Segments/DynamicSegments/Filters/WooFilterHelper.php +++ b/mailpoet/lib/Segments/DynamicSegments/Filters/WooFilterHelper.php @@ -3,7 +3,7 @@ namespace MailPoet\Segments\DynamicSegments\Filters; use MailPoet\Util\DBCollationChecker; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; class WooFilterHelper { @@ -81,7 +81,7 @@ class WooFilterHelper { $statusParam = $this->filterHelper->getUniqueParameterName('status'); $orderStatsAlias = $this->applyCustomerOrderJoin($queryBuilder); $queryBuilder->andWhere("$orderStatsAlias.status IN (:$statusParam)"); - $queryBuilder->setParameter($statusParam, $allowedStatuses, Connection::PARAM_STR_ARRAY); + $queryBuilder->setParameter($statusParam, $allowedStatuses, ArrayParameterType::STRING); return $orderStatsAlias; } diff --git a/mailpoet/lib/Segments/SegmentSubscribersRepository.php b/mailpoet/lib/Segments/SegmentSubscribersRepository.php index 4f9517f9c9..f1fec70436 100644 --- a/mailpoet/lib/Segments/SegmentSubscribersRepository.php +++ b/mailpoet/lib/Segments/SegmentSubscribersRepository.php @@ -11,7 +11,7 @@ use MailPoet\InvalidStateException; use MailPoet\NotFoundException; use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException; use MailPoet\Segments\DynamicSegments\FilterHandler; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\DBAL\Result; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -386,7 +386,7 @@ class SegmentSubscribersRepository { if ($candidateIds) { $queryBuilder->andWhere("$subscribersTable.id IN (:candidateIds)") - ->setParameter('candidateIds', $candidateIds, Connection::PARAM_STR_ARRAY); + ->setParameter('candidateIds', $candidateIds, ArrayParameterType::STRING); } $statement = $this->executeQuery($queryBuilder); diff --git a/mailpoet/lib/Segments/SegmentsRepository.php b/mailpoet/lib/Segments/SegmentsRepository.php index d14974fa88..c9ec636c80 100644 --- a/mailpoet/lib/Segments/SegmentsRepository.php +++ b/mailpoet/lib/Segments/SegmentsRepository.php @@ -17,7 +17,7 @@ use MailPoet\Newsletter\Segment\NewsletterSegmentRepository; use MailPoet\NotFoundException; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; use MailPoetVendor\Doctrine\ORM\ORMException; @@ -254,27 +254,27 @@ class SegmentsRepository extends Repository { ", [ 'ids' => $ids, 'type' => $type, - ], ['ids' => Connection::PARAM_INT_ARRAY]); + ], ['ids' => ArrayParameterType::INTEGER]); $entityManager->getConnection()->executeStatement(" DELETE df FROM $segmentFiltersTable df WHERE df.`segment_id` IN (:ids) ", [ 'ids' => $ids, - ], ['ids' => Connection::PARAM_INT_ARRAY]); + ], ['ids' => ArrayParameterType::INTEGER]); $queryBuilder = $entityManager->createQueryBuilder(); $count = $queryBuilder->delete(SegmentEntity::class, 's') ->where('s.id IN (:ids)') ->andWhere('s.type = :type') - ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) + ->setParameter('ids', $ids, ArrayParameterType::INTEGER) ->setParameter('type', $type, ParameterType::STRING) ->getQuery()->execute(); $queryBuilder = $entityManager->createQueryBuilder(); $queryBuilder->delete(NewsletterSegmentEntity::class, 'ns') ->where('ns.segment IN (:ids)') - ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) + ->setParameter('ids', $ids, ArrayParameterType::INTEGER) ->getQuery()->execute(); }); return $count; diff --git a/mailpoet/lib/Segments/SegmentsSimpleListRepository.php b/mailpoet/lib/Segments/SegmentsSimpleListRepository.php index fc33d05201..f5511158e9 100644 --- a/mailpoet/lib/Segments/SegmentsSimpleListRepository.php +++ b/mailpoet/lib/Segments/SegmentsSimpleListRepository.php @@ -5,7 +5,7 @@ namespace MailPoet\Segments; use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Subscribers\SubscribersCountsController; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Result; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -82,7 +82,7 @@ class SegmentsSimpleListRepository { if (!empty($segmentTypes)) { $segmentsDataQuery ->andWhere('segments.type IN (:typesParam)') - ->setParameter('typesParam', $segmentTypes, Connection::PARAM_STR_ARRAY); + ->setParameter('typesParam', $segmentTypes, ArrayParameterType::STRING); } $result = $segmentsDataQuery->executeQuery(); diff --git a/mailpoet/lib/Segments/SubscribersFinder.php b/mailpoet/lib/Segments/SubscribersFinder.php index 7f1a78c672..5622c36faa 100644 --- a/mailpoet/lib/Segments/SubscribersFinder.php +++ b/mailpoet/lib/Segments/SubscribersFinder.php @@ -8,7 +8,7 @@ use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberSegmentEntity; use MailPoet\InvalidStateException; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -129,13 +129,13 @@ class SubscribersFinder { ->setParameter('processed', ScheduledTaskSubscriberEntity::STATUS_UNPROCESSED, ParameterType::INTEGER) ->setParameter('subscribers_status', SubscriberEntity::STATUS_SUBSCRIBED, ParameterType::STRING) ->setParameter('relation_status', SubscriberEntity::STATUS_SUBSCRIBED, ParameterType::STRING) - ->setParameter('segment_ids', $segmentIds, Connection::PARAM_INT_ARRAY); + ->setParameter('segment_ids', $segmentIds, ArrayParameterType::INTEGER); if ($filterSegmentId) { $filterSegmentSubscriberIds = $this->segmentSubscriberRepository->findSubscribersIdsInSegment($filterSegmentId); $selectQueryBuilder ->andWhere($selectQueryBuilder->expr()->in('subscribers.id', ':filterSegmentSubscriberIds')) - ->setParameter('filterSegmentSubscriberIds', $filterSegmentSubscriberIds, Connection::PARAM_INT_ARRAY); + ->setParameter('filterSegmentSubscriberIds', $filterSegmentSubscriberIds, ArrayParameterType::INTEGER); } // queryBuilder doesn't support INSERT IGNORE directly @@ -198,7 +198,7 @@ class SubscribersFinder { ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING, - Connection::PARAM_INT_ARRAY, + ArrayParameterType::INTEGER, ] ); diff --git a/mailpoet/lib/Segments/WooCommerce.php b/mailpoet/lib/Segments/WooCommerce.php index 28c784ed4c..df199e8e86 100644 --- a/mailpoet/lib/Segments/WooCommerce.php +++ b/mailpoet/lib/Segments/WooCommerce.php @@ -16,6 +16,7 @@ use MailPoet\WooCommerce\Helper as WCHelper; use MailPoet\WooCommerce\Subscription; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Connection; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -344,7 +345,7 @@ class WooCommerce { UPDATE ' . $subscribersTable . ' mps SET mps.is_woocommerce_user = 1 WHERE mps.email IN (:emails) - ', ['emails' => $emails], ['emails' => Connection::PARAM_STR_ARRAY]); + ', ['emails' => $emails], ['emails' => ArrayParameterType::STRING]); // Save timestamp about new subscribers before insert $this->subscriberChangesNotifier->subscribersBatchCreate(); @@ -376,7 +377,7 @@ class WooCommerce { FROM {$addressesTableName} WHERE order_id IN (:orderIds) and address_type = 'billing'", ['orderIds' => array_values($orders)], - ['orderIds' => Connection::PARAM_INT_ARRAY] + ['orderIds' => ArrayParameterType::INTEGER] )->fetchAllAssociative(); // format data in the same format that is used when querying wp_postmeta (see below). @@ -403,7 +404,7 @@ class WooCommerce { WHERE meta_key IN ('_billing_first_name', '_billing_last_name') AND post_id IN (:postIds) ", ['metaKeys' => $metaKeys, 'postIds' => array_values($orders)], - ['metaKeys' => Connection::PARAM_STR_ARRAY, 'postIds' => Connection::PARAM_INT_ARRAY] + ['metaKeys' => ArrayParameterType::STRING, 'postIds' => ArrayParameterType::INTEGER] )->fetchAllAssociative(); } diff --git a/mailpoet/lib/Statistics/StatisticsWooCommercePurchasesRepository.php b/mailpoet/lib/Statistics/StatisticsWooCommercePurchasesRepository.php index 5c87cf15b7..c10f3287f6 100644 --- a/mailpoet/lib/Statistics/StatisticsWooCommercePurchasesRepository.php +++ b/mailpoet/lib/Statistics/StatisticsWooCommercePurchasesRepository.php @@ -8,7 +8,7 @@ use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\StatisticsClickEntity; use MailPoet\Entities\StatisticsWooCommercePurchaseEntity; use MailPoet\WooCommerce\Helper; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -102,7 +102,7 @@ class StatisticsWooCommercePurchasesRepository extends Repository { 'notification_history_type' => ParameterType::STRING, 'notification_type' => ParameterType::STRING, 'currency' => ParameterType::STRING, - 'revenue_status' => Connection::PARAM_STR_ARRAY, + 'revenue_status' => ArrayParameterType::STRING, ])->fetchAllAssociative(); $data = array_map(function($row) { diff --git a/mailpoet/lib/Subscribers/EngagementDataBackfiller.php b/mailpoet/lib/Subscribers/EngagementDataBackfiller.php index 7afaa71aee..3a216918d5 100644 --- a/mailpoet/lib/Subscribers/EngagementDataBackfiller.php +++ b/mailpoet/lib/Subscribers/EngagementDataBackfiller.php @@ -10,7 +10,7 @@ use MailPoet\Segments\DynamicSegments\Filters\FilterHelper; use MailPoet\Segments\DynamicSegments\Filters\WooFilterHelper; use MailPoet\WooCommerce\Helper; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Result; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -113,7 +113,7 @@ class EngagementDataBackfiller { ->from($subscribersTable) ->innerJoin($subscribersTable, $clicksTable, 'clicks', "$subscribersTable.id = clicks.subscriber_id") ->andWhere("$subscribersTable.id IN (:subscriberIds)") - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY) + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER) ->groupBy("$subscribersTable.id"); $result = $query->execute(); @@ -138,7 +138,7 @@ class EngagementDataBackfiller { ->select("$subscribersTable.id, MAX(orderStats.date_created) as last_purchase_at") ->from($subscribersTable) ->andWhere("$subscribersTable.id IN (:subscriberIds)") - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY); + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER); $this->wooFilterHelper->applyOrderStatusFilter($query); $query->groupBy("$subscribersTable.id"); @@ -161,7 +161,7 @@ class EngagementDataBackfiller { ->from($subscribersTable) ->innerJoin($subscribersTable, $opensTable, 'opens', "$subscribersTable.id = opens.subscriber_id") ->andWhere("$subscribersTable.id IN (:subscriberIds)") - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY) + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER) ->groupBy("$subscribersTable.id"); $result = $query->execute(); @@ -183,7 +183,7 @@ class EngagementDataBackfiller { ->from($subscribersTable) ->innerJoin($subscribersTable, $sendsTable, 'sends', "$subscribersTable.id = sends.subscriber_id") ->andWhere("$subscribersTable.id IN (:subscriberIds)") - ->setParameter('subscriberIds', $subscriberIds, Connection::PARAM_INT_ARRAY) + ->setParameter('subscriberIds', $subscriberIds, ArrayParameterType::INTEGER) ->groupBy("$subscribersTable.id"); $result = $query->execute(); diff --git a/mailpoet/lib/Subscribers/ImportExport/ImportExportRepository.php b/mailpoet/lib/Subscribers/ImportExport/ImportExportRepository.php index b63ee93cc1..bd4d5d3a96 100644 --- a/mailpoet/lib/Subscribers/ImportExport/ImportExportRepository.php +++ b/mailpoet/lib/Subscribers/ImportExport/ImportExportRepository.php @@ -12,7 +12,7 @@ use MailPoet\Entities\SubscriberSegmentEntity; use MailPoet\Segments\DynamicSegments\FilterHandler; use MailPoet\Subscribers\SubscriberCustomFieldRepository; use MailPoet\Subscribers\SubscribersRepository; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\Query\QueryBuilder; use MailPoetVendor\Doctrine\DBAL\Result; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -161,7 +161,7 @@ class ImportExportRepository { $parameters[$keyColumn] = array_map(function(array $row) use ($columnIndex) { return $row[$columnIndex]; }, $data); - $parameterTypes[$keyColumn] = Connection::PARAM_STR_ARRAY; + $parameterTypes[$keyColumn] = ArrayParameterType::STRING; $keyColumnsConditions[] = "{$keyColumn} IN (:{$keyColumn})"; } @@ -327,6 +327,6 @@ class ImportExportRepository { SELECT id FROM {$tableName} WHERE email IN (:emails) - ", ['emails' => $emails], ['emails' => Connection::PARAM_STR_ARRAY])->fetchFirstColumn(); + ", ['emails' => $emails], ['emails' => ArrayParameterType::STRING])->fetchFirstColumn(); } } diff --git a/mailpoet/lib/Subscribers/InactiveSubscribersController.php b/mailpoet/lib/Subscribers/InactiveSubscribersController.php index 940df80d7e..2021564353 100644 --- a/mailpoet/lib/Subscribers/InactiveSubscribersController.php +++ b/mailpoet/lib/Subscribers/InactiveSubscribersController.php @@ -7,7 +7,7 @@ use MailPoet\Entities\ScheduledTaskSubscriberEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\SubscriberEntity; use MailPoetVendor\Carbon\Carbon; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; @@ -141,7 +141,7 @@ class InactiveSubscribersController { $connection->executeQuery("UPDATE {$subscribersTable} SET status = :statusInactive WHERE id IN (:idsToDeactivate)", [ 'statusInactive' => SubscriberEntity::STATUS_INACTIVE, 'idsToDeactivate' => $idsToDeactivate, - ], ['idsToDeactivate' => Connection::PARAM_INT_ARRAY]); + ], ['idsToDeactivate' => ArrayParameterType::INTEGER]); return count($idsToDeactivate); } @@ -180,7 +180,7 @@ class InactiveSubscribersController { $connection->executeQuery("UPDATE {$subscribersTable} SET status = :statusSubscribed WHERE id IN (:idsToActivate)", [ 'statusSubscribed' => SubscriberEntity::STATUS_SUBSCRIBED, 'idsToActivate' => $idsToActivate, - ], ['idsToActivate' => Connection::PARAM_INT_ARRAY]); + ], ['idsToActivate' => ArrayParameterType::INTEGER]); return count($idsToActivate); } } diff --git a/mailpoet/lib/Subscribers/SubscribersRepository.php b/mailpoet/lib/Subscribers/SubscribersRepository.php index 2a49a73c18..f8b7901f3b 100644 --- a/mailpoet/lib/Subscribers/SubscribersRepository.php +++ b/mailpoet/lib/Subscribers/SubscribersRepository.php @@ -17,7 +17,7 @@ use MailPoet\Util\License\Features\Subscribers; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\CarbonImmutable; -use MailPoetVendor\Doctrine\DBAL\Connection; +use MailPoetVendor\Doctrine\DBAL\ArrayParameterType; use MailPoetVendor\Doctrine\DBAL\ParameterType; use MailPoetVendor\Doctrine\ORM\EntityManager; use MailPoetVendor\Doctrine\ORM\Query\Expr\Join; @@ -187,7 +187,7 @@ class SubscribersRepository extends Repository { WHERE scs.`subscriber_id` IN (:ids) AND s.`is_woocommerce_user` = false AND s.`wp_user_id` IS NULL - ", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids], ['ids' => ArrayParameterType::INTEGER]); // Delete subscriber tags $subscriberTagTable = $entityManager->getClassMetadata(SubscriberTagEntity::class)->getTableName(); @@ -197,7 +197,7 @@ class SubscribersRepository extends Repository { WHERE st.`subscriber_id` IN (:ids) AND s.`is_woocommerce_user` = false AND s.`wp_user_id` IS NULL - ", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids], ['ids' => ArrayParameterType::INTEGER]); $queryBuilder = $entityManager->createQueryBuilder(); $count = $queryBuilder->delete(SubscriberEntity::class, 's') @@ -226,7 +226,7 @@ class SubscribersRepository extends Repository { DELETE ss FROM $subscriberSegmentsTable ss WHERE ss.`subscriber_id` IN (:ids) AND ss.`segment_id` = :segment_id - ", ['ids' => $ids, 'segment_id' => $segment->getId()], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids, 'segment_id' => $segment->getId()], ['ids' => ArrayParameterType::INTEGER]); $this->changesNotifier->subscribersUpdated($ids); return $count; @@ -554,7 +554,7 @@ class SubscribersRepository extends Repository { DELETE st FROM $subscriberTagsTable st WHERE st.`subscriber_id` IN (:ids) AND st.`tag_id` = :tag_id - ", ['ids' => $ids, 'tag_id' => $tag->getId()], ['ids' => Connection::PARAM_INT_ARRAY]); + ", ['ids' => $ids, 'tag_id' => $tag->getId()], ['ids' => ArrayParameterType::INTEGER]); $this->changesNotifier->subscribersUpdated($ids); return $count; @@ -607,7 +607,7 @@ class SubscribersRepository extends Repository { ", [ 'ids' => $ids, 'typeDefault' => SegmentEntity::TYPE_DEFAULT, - ], ['ids' => Connection::PARAM_INT_ARRAY]); + ], ['ids' => ArrayParameterType::INTEGER]); return $count; }