From b6bdce3535ba4cc7cd29045e166fed16ae8f9feb Mon Sep 17 00:00:00 2001 From: Rodrigo Primo Date: Wed, 14 Sep 2022 13:50:34 -0300 Subject: [PATCH] Change insertSubscriberFromOrder() to use WooCommerce methods This commit changes \MailPoet\Segments\WooCommerce::insertSubscriberFromOrder() to use WooCommerce method instead of querying the database directly. This is needed as WooCommerce is moving away from WP tables and creating its own tables. [MAILPOET-4570] --- mailpoet/lib/Segments/WooCommerce.php | 13 +++---------- mailpoet/tasks/phpstan/phpstan-7-baseline.neon | 5 ----- mailpoet/tasks/phpstan/phpstan-8-baseline.neon | 5 ----- mailpoet/tasks/phpstan/phpstan-8.1-baseline.neon | 5 ----- 4 files changed, 3 insertions(+), 25 deletions(-) diff --git a/mailpoet/lib/Segments/WooCommerce.php b/mailpoet/lib/Segments/WooCommerce.php index 803011f6fb..b0e6194c56 100644 --- a/mailpoet/lib/Segments/WooCommerce.php +++ b/mailpoet/lib/Segments/WooCommerce.php @@ -148,7 +148,7 @@ class WooCommerce { $status = SubscriberEntity::STATUS_SUBSCRIBED; } - $email = $this->insertSubscriberFromOrder($orderId, $status); + $email = $this->insertSubscriberFromOrder($wcOrder, $status); if (empty($email)) { return; @@ -240,17 +240,10 @@ class WooCommerce { ", ['capabilities' => $wpdb->prefix . 'capabilities', 'source' => Source::WOOCOMMERCE_USER]); } - private function insertSubscriberFromOrder(int $orderId, string $status): ?string { - global $wpdb; + private function insertSubscriberFromOrder(\WC_Order $wcOrder, string $status): ?string { $validator = new ModelValidator(); - $email = $this->connection->executeQuery(" - SELECT wppm.meta_value AS email - FROM `{$wpdb->posts}` wpp - JOIN `{$wpdb->postmeta}` wppm ON wpp.ID = wppm.post_id AND wppm.meta_key = '_billing_email' AND wppm.meta_value != '' - WHERE wpp.post_type = 'shop_order' - AND wpp.ID = :orderId - ", ['orderId' => $orderId])->fetchOne(); + $email = $wcOrder->get_billing_email(); if (!$email || !$validator->validateEmail($email)) { return null; diff --git a/mailpoet/tasks/phpstan/phpstan-7-baseline.neon b/mailpoet/tasks/phpstan/phpstan-7-baseline.neon index 89e6e5e0c1..ee433ce409 100644 --- a/mailpoet/tasks/phpstan/phpstan-7-baseline.neon +++ b/mailpoet/tasks/phpstan/phpstan-7-baseline.neon @@ -775,11 +775,6 @@ parameters: count: 1 path: ../../lib/Segments/WooCommerce.php - - - message: "#^Method MailPoet\\\\Segments\\\\WooCommerce\\:\\:insertSubscriberFromOrder\\(\\) should return string\\|null but returns mixed\\.$#" - count: 1 - path: ../../lib/Segments/WooCommerce.php - - message: "#^Parameter \\#1 \\$ch of function curl_errno expects resource, mixed given\\.$#" count: 1 diff --git a/mailpoet/tasks/phpstan/phpstan-8-baseline.neon b/mailpoet/tasks/phpstan/phpstan-8-baseline.neon index 9ffc985cf4..b76b200f80 100644 --- a/mailpoet/tasks/phpstan/phpstan-8-baseline.neon +++ b/mailpoet/tasks/phpstan/phpstan-8-baseline.neon @@ -775,11 +775,6 @@ parameters: count: 1 path: ../../lib/Segments/WooCommerce.php - - - message: "#^Method MailPoet\\\\Segments\\\\WooCommerce\\:\\:insertSubscriberFromOrder\\(\\) should return string\\|null but returns mixed\\.$#" - count: 1 - path: ../../lib/Segments/WooCommerce.php - - message: "#^Parameter \\#1 \\$handle of function curl_errno expects CurlHandle, mixed given\\.$#" count: 1 diff --git a/mailpoet/tasks/phpstan/phpstan-8.1-baseline.neon b/mailpoet/tasks/phpstan/phpstan-8.1-baseline.neon index a4f8a32ce5..42a1191693 100644 --- a/mailpoet/tasks/phpstan/phpstan-8.1-baseline.neon +++ b/mailpoet/tasks/phpstan/phpstan-8.1-baseline.neon @@ -774,11 +774,6 @@ parameters: count: 1 path: ../../lib/Segments/WooCommerce.php - - - message: "#^Method MailPoet\\\\Segments\\\\WooCommerce\\:\\:insertSubscriberFromOrder\\(\\) should return string\\|null but returns mixed\\.$#" - count: 1 - path: ../../lib/Segments/WooCommerce.php - - message: "#^Parameter \\#1 \\$handle of function curl_errno expects CurlHandle, mixed given\\.$#" count: 1