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 / profile-reviewed.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
profile-reviewed.php
153 lines
1 <?php
2 /**
3 * ProfileReviewed.
4 * php version 5.6
5 *
6 * @category ProfileReviewed
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\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'ProfileReviewed' ) ) :
20
21 /**
22 * ProfileReviewed
23 *
24 * @category ProfileReviewed
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 *
31 * @psalm-suppress UndefinedTrait
32 */
33 class ProfileReviewed {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'Voxel';
42
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'voxel_profile_reviewed';
50
51 use SingletonLoader;
52
53
54 /**
55 * Constructor
56 *
57 * @since 1.0.0
58 */
59 public function __construct() {
60 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
61 }
62
63 /**
64 * Register action.
65 *
66 * @param array $triggers trigger data.
67 * @return array
68 */
69 public function register( $triggers ) {
70
71 $triggers[ $this->integration ][ $this->trigger ] = [
72 'label' => __( 'Profile Reviewed', 'suretriggers' ),
73 'action' => $this->trigger,
74 'common_action' => 'voxel/app-events/post-types/profile/review:created',
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 10,
77 'accepted_args' => 1,
78 ];
79
80 return $triggers;
81 }
82
83 /**
84 * Trigger listener
85 *
86 * @param object $event Event.
87 * @return void
88 */
89 public function trigger_listener( $event ) {
90 if ( ! property_exists( $event, 'post' ) || ! class_exists( 'Voxel\Timeline\Status' ) || ! class_exists( 'Voxel\Post_Type' ) ) {
91 return;
92 }
93 $context = [];
94 // Get the review details.
95 $args = [
96 'post_id' => $event->post->get_id(),
97 ];
98 $statuses = \Voxel\Timeline\Status::query( $args );
99 $review_details = $statuses['items'][0];
100 foreach ( (array) $review_details as $key => $value ) {
101 $clean_key = preg_replace( '/^\0.*?\0/', '', $key );
102 if ( 'user_can_edit' == $clean_key || 'publisher' == $clean_key || 'user_can_edit' == $clean_key || 'user_can_moderate' == $clean_key ) {
103 continue;
104 }
105 if ( 'files' === $clean_key ) {
106 $value = wp_json_encode( $value );
107 } elseif ( 'details' === $clean_key ) {
108 $review_ratings = isset( $value['rating'] ) && is_array( $value['rating'] ) ? $value['rating'] : [];
109 $value['rating'] = [];
110 $type = \Voxel\Post_Type::get( 'profile' );
111
112 if ( ! empty( $review_ratings ) ) {
113 $rating_levels = $type->reviews->get_rating_levels();
114 $categories = $type->reviews->get_categories();
115
116 foreach ( $categories as $category ) {
117 $category_key = $category['key'];
118 $category_label = strtolower( $category['label'] );
119
120 if ( isset( $review_ratings[ $category_key ] ) && $category_label ) {
121 foreach ( $rating_levels as $rating_level ) {
122 if ( $review_ratings[ $category_key ] === $rating_level['score'] ) {
123 $value['rating'][ $category_label ] = $rating_level['label'];
124 break;
125 }
126 }
127 }
128 }
129 }
130 } else {
131 $clean_key = 'review_' . $clean_key;
132 }
133 $context[ $clean_key ] = $value;
134 }
135
136 AutomationController::sure_trigger_handle_trigger(
137 [
138 'trigger' => $this->trigger,
139 'context' => $context,
140 ]
141 );
142 }
143 }
144
145 /**
146 * Ignore false positive
147 *
148 * @psalm-suppress UndefinedMethod
149 */
150 ProfileReviewed::get_instance();
151
152 endif;
153