PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.3 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 / API / MP / v1 / API.php
mailpoet / lib / API / MP / v1 Last commit date
API.php 3 months ago APIException.php 3 months ago CustomFields.php 2 months ago Segments.php 2 months ago Subscribers.php 2 months ago Tags.php 3 months ago index.php 3 years ago
API.php
166 lines
1 <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
2
3 namespace MailPoet\API\MP\v1;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Config\Changelog;
9
10 /**
11 * API used by other plugins
12 * Do not add bodies of methods into this class. Use other classes. See CustomFields or Subscribers.
13 * This class is under refactor, and we are going to move most of the remaining implementations from here.
14 */
15 class API {
16 /** @var CustomFields */
17 private $customFields;
18
19 /** @var Segments */
20 private $segments;
21
22 /** @var Subscribers */
23 private $subscribers;
24
25 /** @var Tags */
26 private $tags;
27
28 /** @var Changelog */
29 private $changelog;
30
31 public function __construct(
32 CustomFields $customFields,
33 Segments $segments,
34 Subscribers $subscribers,
35 Tags $tags,
36 Changelog $changelog
37 ) {
38 $this->customFields = $customFields;
39 $this->segments = $segments;
40 $this->subscribers = $subscribers;
41 $this->tags = $tags;
42 $this->changelog = $changelog;
43 }
44
45 public function getSubscriberFields() {
46 return $this->customFields->getSubscriberFields();
47 }
48
49 public function addSubscriberField(array $data = []) {
50 try {
51 return $this->customFields->addSubscriberField($data);
52 } catch (\InvalidArgumentException $e) {
53 throw new APIException($e->getMessage(), $e->getCode(), $e);
54 }
55 }
56
57 /**
58 * @throws APIException
59 */
60 public function subscribeToList($subscriberId, $listId, $options = []): array {
61 return $this->subscribeToLists($subscriberId, [$listId], $options);
62 }
63
64 /**
65 * @throws APIException
66 */
67 public function subscribeToLists($subscriberId, array $listIds, $options = []) {
68 return $this->subscribers->subscribeToLists($subscriberId, $listIds, $options);
69 }
70
71 public function unsubscribeFromList($subscriberId, $listId) {
72 return $this->unsubscribeFromLists($subscriberId, [$listId]);
73 }
74
75 public function unsubscribeFromLists($subscriberId, array $listIds) {
76 return $this->subscribers->unsubscribeFromLists($subscriberId, $listIds);
77 }
78
79 public function unsubscribe($subscriberIdOrEmail) {
80 return $this->subscribers->unsubscribe($subscriberIdOrEmail);
81 }
82
83 public function getLists(): array {
84 return $this->segments->getAll();
85 }
86
87 public function addSubscriber(array $subscriber, $listIds = [], $options = []): array {
88 return $this->subscribers->addSubscriber($subscriber, $listIds, $options);
89 }
90
91 public function updateSubscriber($subscriberIdOrEmail, array $subscriber): array {
92 return $this->subscribers->updateSubscriber($subscriberIdOrEmail, $subscriber);
93 }
94
95 public function addList(array $list) {
96 return $this->segments->addList($list);
97 }
98
99 public function deleteList(string $listId): bool {
100 return $this->segments->deleteList($listId);
101 }
102
103 public function updateList(array $list): array {
104 return $this->segments->updateList($list);
105 }
106
107 public function getSubscriber($subscriberEmail) {
108 return $this->subscribers->getSubscriber($subscriberEmail);
109 }
110
111 public function getSubscribers(array $filter = [], int $limit = 50, int $offset = 0): array {
112 return $this->subscribers->getSubscribers($filter, $limit, $offset);
113 }
114
115 public function getSubscribersCount(array $filter = []): int {
116 return $this->subscribers->getSubscribersCount($filter);
117 }
118
119 public function isSetupComplete() {
120 return !(
121 $this->changelog->shouldShowWelcomeWizard()
122 || $this->changelog->shouldShowWooCommerceListImportPage()
123 || $this->changelog->shouldShowRevenueTrackingPermissionPage()
124 );
125 }
126
127 public function getTags(): array {
128 return $this->tags->getAll();
129 }
130
131 /**
132 * @param int|string $tagIdOrName
133 */
134 public function getTag($tagIdOrName): array {
135 return $this->tags->getTag($tagIdOrName);
136 }
137
138 public function addTag(array $tag): array {
139 return $this->tags->addTag($tag);
140 }
141
142 public function updateTag(array $tag): array {
143 return $this->tags->updateTag($tag);
144 }
145
146 public function deleteTag(string $tagId): bool {
147 return $this->tags->deleteTag($tagId);
148 }
149
150 /**
151 * @param int|string $subscriberIdOrEmail
152 * @param int|string $tagIdOrName
153 */
154 public function tagSubscriber($subscriberIdOrEmail, $tagIdOrName): array {
155 return $this->subscribers->tagSubscriber($subscriberIdOrEmail, $tagIdOrName);
156 }
157
158 /**
159 * @param int|string $subscriberIdOrEmail
160 * @param int|string $tagIdOrName
161 */
162 public function untagSubscriber($subscriberIdOrEmail, $tagIdOrName): array {
163 return $this->subscribers->untagSubscriber($subscriberIdOrEmail, $tagIdOrName);
164 }
165 }
166