PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.36 1.1.35 1.1.34 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 / voxel / triggers / wall-post-approved.php
suretriggers / src / Integrations / voxel / triggers Last commit date
collection-post-created.php 2 years ago collection-post-updated.php 2 years ago comment-reply-created-timeline.php 2 years ago membership-plan-activated.php 9 months ago membership-plan-canceled.php 9 months ago membership-plan-switched.php 9 months ago membership-plan-updated.php 9 months ago membership-user-registered.php 2 years ago new-comment-timeline.php 2 years ago new-message-post-created.php 11 months ago new-order-placed.php 2 years ago new-profile-created.php 2 years ago new-wall-post-by-user.php 1 year ago order-approved-by-vendor.php 2 years ago order-canceled-by-customer.php 2 years ago order-declined-by-vendor.php 2 years ago orders-claim-listing.php 1 year ago orders-promotion-activated.php 1 year ago orders-promotion-canceled.php 1 year ago post-approved.php 2 years ago post-rejected.php 2 years ago post-review-approved.php 1 year ago post-reviewed.php 2 years ago post-submitted.php 2 years ago post-updated.php 2 years ago profile-approved.php 2 years ago profile-rejected.php 2 years ago profile-reviewed.php 1 year ago profile-updated.php 2 years ago profile-wall-new-post.php 1 year ago taxonomy-updated.php 10 months ago timeline-post-approved.php 1 year ago user-receives-message.php 2 years ago users-timeline-approved.php 1 year ago users-timeline-created.php 1 year ago voxel-comment-liked.php 1 year ago voxel-post-followed.php 1 year ago voxel-post-liked.php 1 year ago voxel-post-quoted.php 1 year ago voxel-post-reposted.php 1 year ago voxel-post-unfollowed.php 1 year ago voxel-user-mentioned-in-comment.php 1 year ago voxel-user-mentioned-in-post.php 1 year ago wall-post-approved.php 1 year ago
wall-post-approved.php
140 lines
1 <?php
2 /**
3 * VoxelWallPostApproved.
4 * php version 5.6
5 *
6 * @category VoxelWallPostApproved
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\Voxel\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Controllers\OptionController;
18 use SureTriggers\Traits\SingletonLoader;
19 use SureTriggers\Integrations\Voxel\Voxel;
20
21 if ( ! class_exists( 'VoxelWallPostApproved' ) ) :
22
23 /**
24 * VoxelWallPostApproved
25 *
26 * @category VoxelWallPostApproved
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 *
33 * @psalm-suppress UndefinedTrait
34 */
35 class VoxelWallPostApproved {
36
37
38 /**
39 * Integration type.
40 *
41 * @var string
42 */
43 public $integration = 'Voxel';
44
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'voxel_post_wall_approved';
52
53 use SingletonLoader;
54
55
56 /**
57 * Constructor
58 *
59 * @since 1.0.0
60 */
61 public function __construct() {
62 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
63 }
64
65 /**
66 * Register action.
67 *
68 * @param array $triggers trigger data.
69 * @return array
70 */
71 public function register( $triggers ) {
72 $trigger_data = OptionController::get_option( 'trigger_data' );
73 $triggers[ $this->integration ][ $this->trigger ] = [
74 'label' => __( 'Wall Post Approved', 'suretriggers' ),
75 'action' => $this->trigger,
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 10,
78 'accepted_args' => 1,
79 ];
80 if ( ! empty( $trigger_data ) && is_array( $trigger_data ) && isset( $trigger_data[ $this->integration ][ $this->trigger ]['selected_options']['post_type']['value'] ) ) {
81 $triggers[ $this->integration ][ $this->trigger ]['common_action'] = 'voxel/app-events/post-types/' . $trigger_data[ $this->integration ][ $this->trigger ]['selected_options']['post_type']['value'] . '/wall-post:approved';
82 }
83
84 return $triggers;
85 }
86
87 /**
88 * Trigger listener
89 *
90 * @param object $event Event.
91 * @return void
92 */
93 public function trigger_listener( $event ) {
94 if ( ! property_exists( $event, 'status' ) || ! property_exists( $event, 'post' ) || ! property_exists( $event, 'author' ) ) {
95 return;
96 }
97 $context['post'] = Voxel::get_post_fields( $event->status->get_post_id() );
98 $user = get_userdata( $event->author->get_id() );
99 if ( $user ) {
100 $user_data = (array) $user->data;
101 $context['user_display_name'] = $user_data['display_name'];
102 $context['user_name'] = $user_data['user_nicename'];
103 $context['user_email'] = $user_data['user_email'];
104 $context['user_id'] = $event->status->get_author();
105 }
106 if ( class_exists( 'Voxel\Timeline\Status' ) ) {
107 // Get the status details.
108 $status_details = \Voxel\Timeline\Status::get( $event->status->get_id() );
109 foreach ( (array) $status_details as $key => $value ) {
110 $clean_key = preg_replace( '/^\0.*?\0/', '', $key );
111 if ( is_object( $value ) ) {
112 $encoded_value = wp_json_encode( $value );
113 if ( is_string( $encoded_value ) ) {
114 $value = json_decode( $encoded_value, true );
115 }
116 }
117 $context['wall_post'][ $clean_key ] = $value;
118 }
119 }
120 // Get the post type.
121 $post_type = get_post_type( $event->post->get_id() );
122 $context['post_type'] = $post_type;
123 AutomationController::sure_trigger_handle_trigger(
124 [
125 'trigger' => $this->trigger,
126 'context' => $context,
127 ]
128 );
129 }
130 }
131
132 /**
133 * Ignore false positive
134 *
135 * @psalm-suppress UndefinedMethod
136 */
137 VoxelWallPostApproved::get_instance();
138
139 endif;
140