PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
1.1.33 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 / projecthuddle / triggers / new-comment-on-site.php
suretriggers / src / Integrations / projecthuddle / triggers Last commit date
comment-resolved.php 1 year ago new-comment-on-site.php 1 year ago
new-comment-on-site.php
137 lines
1 <?php
2 /**
3 * NewCommentOnSite.
4 * php version 5.6
5 *
6 * @category NewCommentOnSite
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\ProjectHuddle\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use PH\Models\Post;
19
20 if ( ! class_exists( 'NewCommentOnSite' ) ) :
21
22 /**
23 * NewCommentOnSite
24 *
25 * @category NewCommentOnSite
26 * @package SureTriggers
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 NewCommentOnSite {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'ProjectHuddle';
43
44
45 /**
46 * Trigger name.
47 *
48 * @var string
49 */
50 public $trigger = 'new_comment_on_site';
51
52 use SingletonLoader;
53
54
55 /**
56 * Constructor
57 *
58 * @since 1.0.0
59 */
60 public function __construct() {
61 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
62 }
63
64 /**
65 * Register action.
66 *
67 * @param array $triggers trigger data.
68 * @return array
69 */
70 public function register( $triggers ) {
71
72 $triggers[ $this->integration ][ $this->trigger ] = [
73 'label' => __( 'New Comment On Site', 'suretriggers' ),
74 'action' => $this->trigger,
75 'common_action' => 'rest_insert_comment',
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 10,
78 'accepted_args' => 3,
79 ];
80
81 return $triggers;
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param object|array $comment Inserted or updated comment object.
88 * @param array $request Request object.
89 * @param bool $creating True when creating a comment, false
90 * when updating.
91 * @return void
92 */
93 public function trigger_listener( $comment, $request, $creating ) {
94
95 if ( ! $creating || ! class_exists( 'PH\Models\Post' ) || ! function_exists( 'ph_get_the_title' ) ) {
96 return;
97 }
98
99 if ( is_object( $comment ) ) {
100 $comment = get_object_vars( $comment );
101 }
102
103 if ( isset( $comment['project_id'] ) ) {
104 $context['website_id'] = (int) $comment['project_id'];
105 }
106
107 $context = $comment;
108 $comment_item_id = get_comment_meta( $comment['comment_ID'], 'item_id' );
109 if ( ! empty( $comment_item_id ) && is_array( $comment_item_id ) ) {
110 $context['comment_item_id'] = $comment_item_id[0];
111 $context['comment_item_page_title'] = get_the_title( (int) $comment_item_id[0] );
112 $context['comment_item_page_url'] = get_post_meta( (int) $comment_item_id[0], 'page_url', true );
113 }
114 $context['ph_project_name'] = ph_get_the_title( Post::get( $comment['comment_post_ID'] )->parentsIds()['project'] );
115 $context['ph_commenter_name'] = $comment['comment_author'];
116 $context['ph_project_type'] = ( get_post_type( $comment['comment_post_ID'] ) == 'ph-website' ) ? __( 'Website', 'suretriggers' ) : __( 'Mockup', 'suretriggers' );
117 $context['ph_action_status'] = get_post_meta( $comment['comment_post_ID'], 'resolved', true ) ? __( 'Resolved', 'suretriggers' ) : __( 'Unresolved', 'suretriggers' );
118 $context['ph_project_link'] = get_the_guid( $comment['comment_post_ID'] );
119
120 AutomationController::sure_trigger_handle_trigger(
121 [
122 'trigger' => $this->trigger,
123 'context' => $context,
124 ]
125 );
126 }
127 }
128
129 /**
130 * Ignore false positive
131 *
132 * @psalm-suppress UndefinedMethod
133 */
134 NewCommentOnSite::get_instance();
135
136 endif;
137