diff --git a/vendor/magento/module-newsletter/Model/Plugin/CustomerPlugin.php b/vendor/magento/module-newsletter/Model/Plugin/CustomerPlugin.php index 6bdaa40019f..d3f8bcb8765 100644 --- a/vendor/magento/module-newsletter/Model/Plugin/CustomerPlugin.php +++ b/vendor/magento/module-newsletter/Model/Plugin/CustomerPlugin.php @@ -244,11 +244,21 @@ class CustomerPlugin */ public function afterGetList(CustomerRepositoryInterface $subject, SearchResults $searchResults): SearchResults { + $customerEmails = []; + + foreach ($searchResults->getItems() as $customer) { + $customerEmails[] = $customer->getEmail(); + } + + $collection = $this->collectionFactory->create(); + $collection->addFieldToFilter('subscriber_email', ['in' => $customerEmails]); + foreach ($searchResults->getItems() as $customer) { /** @var CustomerExtensionInterface $extensionAttributes */ $extensionAttributes = $customer->getExtensionAttributes(); - - $isSubscribed = (int) $extensionAttributes->getIsSubscribed() === Subscriber::STATUS_SUBSCRIBED ?: false; + /** @var Subscriber $subscribe */ + $subscribe = $collection->getItemByColumnValue('subscriber_email', $customer->getEmail()); + $isSubscribed = $subscribe && (int) $subscribe->getStatus() === Subscriber::STATUS_SUBSCRIBED; $extensionAttributes->setIsSubscribed($isSubscribed); } diff --git a/vendor/magento/module-newsletter/etc/extension_attributes.xml b/vendor/magento/module-newsletter/etc/extension_attributes.xml index 09925024e97..5c38c02c032 100644 --- a/vendor/magento/module-newsletter/etc/extension_attributes.xml +++ b/vendor/magento/module-newsletter/etc/extension_attributes.xml @@ -8,10 +8,6 @@ - - - subscriber_status - - +