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 / WordPress / Fields / CommentFieldsFactory.php
mailpoet / lib / Automation / Integrations / WordPress / Fields Last commit date
CommentFieldsFactory.php 2 years ago PostFieldsFactory.php 1 year ago index.php 2 years ago
CommentFieldsFactory.php
189 lines
1 <?php declare(strict_types = 1);
2
3 namespace MailPoet\Automation\Integrations\WordPress\Fields;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Automation\Engine\Data\Field;
9 use MailPoet\Automation\Engine\WordPress;
10 use MailPoet\Automation\Integrations\WordPress\Payloads\CommentPayload;
11
12 class CommentFieldsFactory {
13
14 /** @var WordPress */
15 private $wp;
16
17 public function __construct(
18 WordPress $wp
19 ) {
20 $this->wp = $wp;
21 }
22
23 /**
24 * @return Field[]
25 */
26 public function getFields(): array {
27 return [
28 new Field(
29 'wordpress:comment:id',
30 Field::TYPE_INTEGER,
31 __('Comment ID', 'mailpoet'),
32 function (CommentPayload $payload) {
33 return $payload->getCommentId();
34 }
35 ),
36 new Field(
37 'wordpress:comment:author-name',
38 Field::TYPE_STRING,
39 __('Comment author name', 'mailpoet'),
40 function (CommentPayload $payload) {
41 $comment = $payload->getComment();
42 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
43 return $comment ? $comment->comment_author : null;
44 }
45 ),
46 new Field(
47 'wordpress:comment:author-email',
48 Field::TYPE_STRING,
49 __('Comment author email', 'mailpoet'),
50 function (CommentPayload $payload) {
51 $comment = $payload->getComment();
52 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
53 return $comment ? $comment->comment_author_email : null;
54 }
55 ),
56 new Field(
57 'wordpress:comment:author-url',
58 Field::TYPE_STRING,
59 __('Comment author URL', 'mailpoet'),
60 function (CommentPayload $payload) {
61 $comment = $payload->getComment();
62 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
63 return $comment ? $comment->comment_author_url : null;
64 }
65 ),
66 new Field(
67 'wordpress:comment:author-ip',
68 Field::TYPE_STRING,
69 __('Comment author IP', 'mailpoet'),
70 function (CommentPayload $payload) {
71 $comment = $payload->getComment();
72 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
73 return $comment ? $comment->comment_author_IP : null;
74 }
75 ),
76 new Field(
77 'wordpress:comment:date',
78 Field::TYPE_DATETIME,
79 __('Comment date', 'mailpoet'),
80 function (CommentPayload $payload) {
81 $comment = $payload->getComment();
82 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
83 return $comment ? $comment->comment_date_gmt : null;
84 }
85 ),
86 new Field(
87 'wordpress:comment:content',
88 Field::TYPE_STRING,
89 __('Comment content', 'mailpoet'),
90 function (CommentPayload $payload) {
91 $comment = $payload->getComment();
92 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
93 return $comment ? $comment->comment_content : null;
94 }
95 ),
96 new Field(
97 'wordpress:comment:karma',
98 Field::TYPE_INTEGER,
99 __('Comment karma', 'mailpoet'),
100 function (CommentPayload $payload) {
101 $comment = $payload->getComment();
102 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
103 return $comment ? (int)$comment->comment_karma : null;
104 }
105 ),
106 new Field(
107 'wordpress:comment:status',
108 Field::TYPE_ENUM,
109 __('Comment status', 'mailpoet'),
110 function (CommentPayload $payload) {
111 $status = $this->wp->wpGetCommentStatus($payload->getCommentId());
112 if (!is_string($status)) {
113 return null;
114 }
115
116 /**
117 * wp_get_comment_status returns 'unapproved' and 'approved' where get_comment_statuses returns 'hold' and 'approve'
118 * We need to normalize the status for matches.
119 */
120 if ($status === 'approved') {
121 $status = 'approve';
122 }
123 if ($status === 'unapproved') {
124 $status = 'hold';
125 }
126 return $status;
127 },
128 [
129 'options' => $this->getCommentStatuses(),
130 ]
131 ),
132 new Field(
133 'wordpress:comment:comment-agent',
134 Field::TYPE_STRING,
135 __('Comment user agent', 'mailpoet'),
136 function (CommentPayload $payload) {
137 $comment = $payload->getComment();
138 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
139 return $comment ? $comment->comment_agent : null;
140 }
141 ),
142 new Field(
143 'wordpress:comment:comment-type',
144 Field::TYPE_STRING,
145 __('Comment type', 'mailpoet'),
146 function (CommentPayload $payload) {
147 $comment = $payload->getComment();
148 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
149 return $comment ? $comment->comment_type : null;
150 }
151 ),
152 new Field(
153 'wordpress:comment:comment-parent',
154 Field::TYPE_INTEGER,
155 __('Comment parent ID', 'mailpoet'),
156 function (CommentPayload $payload) {
157 $comment = $payload->getComment();
158 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
159 return $comment ? (int)$comment->comment_parent : null;
160 }
161 ),
162 new Field(
163 'wordpress:comment:has-children',
164 Field::TYPE_BOOLEAN,
165 __('Comment has replies', 'mailpoet'),
166 function (CommentPayload $payload) {
167 $comment = $payload->getComment();
168 //phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
169 return $comment ? count($comment->get_children()) > 0 : false;
170 }
171 ),
172 ];
173 }
174
175 private function getCommentStatuses(): array {
176 $statuses = $this->wp->getCommentStatuses();
177 return array_values(array_map(
178 function($name, $id): array {
179 return [
180 'id' => $id,
181 'name' => $name,
182 ];
183 },
184 $statuses,
185 array_keys($statuses)
186 ));
187 }
188 }
189