Нет описания

SubscriberEngagement.php 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php declare(strict_types = 1);
  2. namespace MailPoet\WooCommerce;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Entities\SubscriberEntity;
  5. use MailPoet\Subscribers\SubscribersRepository;
  6. use WC_Order;
  7. class SubscriberEngagement {
  8. /** @var Helper */
  9. private $woocommerceHelper;
  10. /** @var SubscribersRepository */
  11. private $subscribersRepository;
  12. public function __construct(
  13. Helper $woocommerceHelper,
  14. SubscribersRepository $subscribersRepository
  15. ) {
  16. $this->woocommerceHelper = $woocommerceHelper;
  17. $this->subscribersRepository = $subscribersRepository;
  18. }
  19. public function updateSubscriberEngagement($orderId): void {
  20. $order = $this->woocommerceHelper->wcGetOrder($orderId);
  21. if (!$order instanceof WC_Order) {
  22. return;
  23. }
  24. $subscriber = $this->subscribersRepository->findOneBy(['email' => $order->get_billing_email()]);
  25. if (!$subscriber instanceof SubscriberEntity) {
  26. return;
  27. }
  28. $this->subscribersRepository->maybeUpdateLastEngagement($subscriber);
  29. }
  30. }