PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / lib / Automation / Integrations / WooCommerce / WooCommerceIntegration.php
mailpoet / lib / Automation / Integrations / WooCommerce Last commit date
Fields 2 months ago Payloads 1 year ago SubjectTransformers 2 months ago Subjects 5 months ago Triggers 2 months ago ContextFactory.php 2 months ago WooCommerce.php 2 months ago WooCommerceIntegration.php 2 months ago index.php 3 years ago
WooCommerceIntegration.php
148 lines
1 <?php declare(strict_types = 1);
2
3 namespace MailPoet\Automation\Integrations\WooCommerce;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Automation\Engine\Registry;
9 use MailPoet\Automation\Integrations\WooCommerce\Subjects\AbandonedCartSubject;
10 use MailPoet\Automation\Integrations\WooCommerce\Subjects\CustomerSubject;
11 use MailPoet\Automation\Integrations\WooCommerce\Subjects\OrderStatusChangeSubject;
12 use MailPoet\Automation\Integrations\WooCommerce\Subjects\OrderSubject;
13 use MailPoet\Automation\Integrations\WooCommerce\SubjectTransformers\CustomerSubjectToWordPressUserSubjectTransformer;
14 use MailPoet\Automation\Integrations\WooCommerce\SubjectTransformers\OrderSubjectToWordPressUserSubjectTransformer;
15 use MailPoet\Automation\Integrations\WooCommerce\SubjectTransformers\WordPressUserSubjectToWooCommerceCustomerSubjectTransformer;
16 use MailPoet\Automation\Integrations\WooCommerce\Triggers\AbandonedCart\AbandonedCartTrigger;
17 use MailPoet\Automation\Integrations\WooCommerce\Triggers\BuysAProductTrigger;
18 use MailPoet\Automation\Integrations\WooCommerce\Triggers\BuysFromACategoryTrigger;
19 use MailPoet\Automation\Integrations\WooCommerce\Triggers\BuysFromATagTrigger;
20 use MailPoet\Automation\Integrations\WooCommerce\Triggers\Orders\OrderCancelledTrigger;
21 use MailPoet\Automation\Integrations\WooCommerce\Triggers\Orders\OrderCompletedTrigger;
22 use MailPoet\Automation\Integrations\WooCommerce\Triggers\Orders\OrderCreatedTrigger;
23 use MailPoet\Automation\Integrations\WooCommerce\Triggers\Orders\OrderNoteAddedTrigger;
24 use MailPoet\Automation\Integrations\WooCommerce\Triggers\Orders\OrderStatusChangedTrigger;
25
26 class WooCommerceIntegration {
27
28 /** @var OrderStatusChangedTrigger */
29 private $orderStatusChangedTrigger;
30
31 /** @var OrderCreatedTrigger */
32 private $orderCreatedTrigger;
33
34 /** @var OrderCompletedTrigger */
35 private $orderCompletedTrigger;
36
37 private $orderCancelledTrigger;
38
39 /** @var OrderNoteAddedTrigger */
40 private $orderNoteAddedTrigger;
41
42 /** @var AbandonedCartTrigger */
43 private $abandonedCartTrigger;
44
45 /** @var BuysAProductTrigger */
46 private $buysAProductTrigger;
47
48 /** @var BuysFromATagTrigger */
49 private $buysFromATagTrigger;
50
51 /** @var BuysFromACategoryTrigger */
52 private $buysFromACategoryTrigger;
53
54 /** @var AbandonedCartSubject */
55 private $abandonedCartSubject;
56
57 /** @var OrderStatusChangeSubject */
58 private $orderStatusChangeSubject;
59
60 /** @var OrderSubject */
61 private $orderSubject;
62
63 /** @var CustomerSubject */
64 private $customerSubject;
65
66 /** @var ContextFactory */
67 private $contextFactory;
68
69 /** @var WordPressUserSubjectToWooCommerceCustomerSubjectTransformer */
70 private $wordPressUserToWooCommerceCustomerTransformer;
71
72 /** @var CustomerSubjectToWordPressUserSubjectTransformer */
73 private $woocommerceCustomerToWordPressUserTransformer;
74
75 /** @var OrderSubjectToWordPressUserSubjectTransformer */
76 private $woocommerceOrderToWordPressUserTransformer;
77
78 /** @var WooCommerce */
79 private $wooCommerce;
80
81 public function __construct(
82 OrderStatusChangedTrigger $orderStatusChangedTrigger,
83 OrderCreatedTrigger $orderCreatedTrigger,
84 OrderCompletedTrigger $orderCompletedTrigger,
85 OrderCancelledTrigger $orderCancelledTrigger,
86 OrderNoteAddedTrigger $orderNoteAddedTrigger,
87 AbandonedCartTrigger $abandonedCartTrigger,
88 BuysAProductTrigger $buysAProductTrigger,
89 BuysFromACategoryTrigger $buysFromACategoryTrigger,
90 BuysFromATagTrigger $buysFromATagTrigger,
91 AbandonedCartSubject $abandonedCartSubject,
92 OrderStatusChangeSubject $orderStatusChangeSubject,
93 OrderSubject $orderSubject,
94 CustomerSubject $customerSubject,
95 ContextFactory $contextFactory,
96 WordPressUserSubjectToWooCommerceCustomerSubjectTransformer $wordPressUserToWooCommerceCustomerTransformer,
97 CustomerSubjectToWordPressUserSubjectTransformer $woocommerceCustomerToWordPressUserTransformer,
98 OrderSubjectToWordPressUserSubjectTransformer $woocommerceOrderToWordPressUserTransformer,
99 WooCommerce $wooCommerce
100 ) {
101 $this->orderStatusChangedTrigger = $orderStatusChangedTrigger;
102 $this->orderCreatedTrigger = $orderCreatedTrigger;
103 $this->orderCompletedTrigger = $orderCompletedTrigger;
104 $this->orderCancelledTrigger = $orderCancelledTrigger;
105 $this->orderNoteAddedTrigger = $orderNoteAddedTrigger;
106 $this->abandonedCartTrigger = $abandonedCartTrigger;
107 $this->buysAProductTrigger = $buysAProductTrigger;
108 $this->buysFromACategoryTrigger = $buysFromACategoryTrigger;
109 $this->buysFromATagTrigger = $buysFromATagTrigger;
110 $this->abandonedCartSubject = $abandonedCartSubject;
111 $this->orderStatusChangeSubject = $orderStatusChangeSubject;
112 $this->orderSubject = $orderSubject;
113 $this->customerSubject = $customerSubject;
114 $this->contextFactory = $contextFactory;
115 $this->wordPressUserToWooCommerceCustomerTransformer = $wordPressUserToWooCommerceCustomerTransformer;
116 $this->woocommerceCustomerToWordPressUserTransformer = $woocommerceCustomerToWordPressUserTransformer;
117 $this->woocommerceOrderToWordPressUserTransformer = $woocommerceOrderToWordPressUserTransformer;
118 $this->wooCommerce = $wooCommerce;
119 }
120
121 public function register(Registry $registry): void {
122 if (!$this->wooCommerce->isWooCommerceActive()) {
123 return;
124 }
125
126 $registry->addContextFactory('woocommerce', function () {
127 return $this->contextFactory->getContextData();
128 });
129
130 $registry->addSubject($this->abandonedCartSubject);
131 $registry->addSubject($this->orderSubject);
132 $registry->addSubject($this->orderStatusChangeSubject);
133 $registry->addSubject($this->customerSubject);
134 $registry->addTrigger($this->orderStatusChangedTrigger);
135 $registry->addTrigger($this->orderCreatedTrigger);
136 $registry->addTrigger($this->orderCompletedTrigger);
137 $registry->addTrigger($this->orderCancelledTrigger);
138 $registry->addTrigger($this->orderNoteAddedTrigger);
139 $registry->addTrigger($this->abandonedCartTrigger);
140 $registry->addTrigger($this->buysAProductTrigger);
141 $registry->addTrigger($this->buysFromACategoryTrigger);
142 $registry->addTrigger($this->buysFromATagTrigger);
143 $registry->addSubjectTransformer($this->wordPressUserToWooCommerceCustomerTransformer);
144 $registry->addSubjectTransformer($this->woocommerceCustomerToWordPressUserTransformer);
145 $registry->addSubjectTransformer($this->woocommerceOrderToWordPressUserTransformer);
146 }
147 }
148