PluginProbe
OttoKit: All-in-One Automation Platform / 1.1.38
OttoKit: All-in-One Automation Platform v1.1.38
1.1.38 1.1.37 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 All 124 releases
suretriggers / src / Integrations / voxel / triggers / profile-approved.php
profile-approved.php
121 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * ProfileApproved.
4 * php version 5.6
5 *
6 * @category ProfileApproved
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 use SureTriggers\Integrations\Voxel\Voxel;
19
20 if ( ! class_exists( 'ProfileApproved' ) ) :
21
22 /**
23 * ProfileApproved
24 *
25 * @category ProfileApproved
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 ProfileApproved {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'Voxel';
43
44
45 /**
46 * Trigger name.
47 *
48 * @var string
49 */
50 public $trigger = 'voxel_profile_approved';
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' => __( 'Profile Approved', 'suretriggers' ),
74 'action' => $this->trigger,
75 'common_action' => 'voxel/app-events/post-types/profile/post:approved',
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 10,
78 'accepted_args' => 1,
79 ];
80
81 return $triggers;
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param object $event Event.
88 * @return void
89 */
90 public function trigger_listener( $event ) {
91 if ( ! property_exists( $event, 'post' ) || ! property_exists( $event, 'author' ) ) {
92 return;
93 }
94 $context = Voxel::get_post_fields( $event->post->get_id() );
95 $user = get_userdata( $event->author->get_id() );
96 if ( $user ) {
97 $user_data = (array) $user->data;
98 $context['profile_display_name'] = $user_data['display_name'];
99 $context['profile_email'] = $user_data['user_email'];
100 $context['profile_user_id'] = $user_data['ID'];
101 $context['profile_id'] = $event->post->get_id();
102 }
103
104 AutomationController::sure_trigger_handle_trigger(
105 [
106 'trigger' => $this->trigger,
107 'context' => $context,
108 ]
109 );
110 }
111 }
112
113 /**
114 * Ignore false positive
115 *
116 * @psalm-suppress UndefinedMethod
117 */
118 ProfileApproved::get_instance();
119
120 endif;
121