PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / wordpress / triggers / user-comment-approved.php
suretriggers / src / Integrations / wordpress / triggers Last commit date
add-user-role.php 1 year ago change-specific-role-to-specific.php 3 years ago create-post.php 6 months ago insert-comment.php 2 years ago post-of-type-set-to-status.php 1 year ago post-trashed.php 1 year ago post-updated-only.php 3 months ago remove-user-role.php 3 years ago update-post.php 1 year ago update-specific-post.php 1 year ago update-user-role.php 3 years ago user-comment-approved.php 2 years ago user-create.php 3 years ago user-login.php 1 year ago user-meta-key-updated.php 10 months ago user-password-reset.php 1 year ago user-profile-field-updated.php 3 years ago view-post.php 1 year ago
user-comment-approved.php
142 lines
1 <?php
2 /**
3 * UserCommentApproved.
4 * php version 5.6
5 *
6 * @category UserCommentApproved
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\Wordpress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19 use WP_Post;
20
21
22 /**
23 * Class UserCommentApproved
24 *
25 * @category UserCommentApproved
26 * @package SureTriggers\Integrations\Wordpress\Triggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class UserCommentApproved {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'WordPress';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'transition_comment_status';
50
51 use SingletonLoader;
52
53 /**
54 * Constructor
55 *
56 * @since 1.0.0
57 */
58 public function __construct() {
59 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
60 }
61
62 /**
63 * Register action.
64 *
65 * @param array $triggers trigger data.
66 * @return array
67 */
68 public function register( $triggers ) {
69
70 $triggers[ $this->integration ][ $this->trigger ] = [
71 'label' => __( 'User\'s comment on a post is approved', 'suretriggers' ),
72 'action' => 'transition_comment_status',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 3,
76 ];
77
78 return $triggers;
79
80 }
81
82 /**
83 * Trigger listener
84 *
85 * @param string $new_status New Status.
86 * @param string $old_status Old Status.
87 * @param array $comment Comment.
88 * @since 1.0.0
89 *
90 * @return void
91 */
92 public function trigger_listener( $new_status, $old_status, $comment ) {
93 if ( 'approved' !== $new_status ) {
94 return;
95 }
96
97 if ( is_object( $comment ) ) {
98 $comment = get_object_vars( $comment );
99 }
100 if ( ! isset( $comment['comment_post_ID'] ) ) {
101 return;
102 }
103
104 $post = get_post( absint( $comment['comment_post_ID'] ) );
105
106 if ( ! $post instanceof WP_Post ) {
107 return;
108 }
109
110 if ( ! isset( $comment['user_id'] ) ) {
111 return;
112 }
113
114 $user_id = (int) $comment['user_id'];
115
116 $context['comment_id'] = $comment['comment_post_ID'];
117 $context['comment'] = $comment['comment_content'];
118 $context['post'] = $post->ID;
119 $context['post_title'] = $post->post_title;
120 $context['post_link'] = get_the_permalink( $post->ID );
121 $context['comment_author'] = $comment['comment_author'];
122 $context['comment_author_email'] = $comment['comment_author_email'];
123 $context['comment_date'] = $comment['comment_date'];
124 $context['post_author'] = get_the_author_meta( 'display_name', (int) $post->post_author );
125 $context = array_merge( $context, WordPress::get_user_context( $user_id ) );
126
127 AutomationController::sure_trigger_handle_trigger(
128 [
129 'trigger' => $this->trigger,
130 'context' => $context,
131 ]
132 );
133 }
134 }
135
136 /**
137 * Ignore false positive
138 *
139 * @psalm-suppress UndefinedMethod
140 */
141 UserCommentApproved::get_instance();
142