PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 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 / eventprime / triggers / booking-completed.php
suretriggers / src / Integrations / eventprime / triggers Last commit date
booking-cancelled.php 4 months ago booking-completed.php 4 months ago booking-created.php 4 months ago booking-refunded.php 4 months ago event-published.php 4 months ago
booking-completed.php
128 lines
1 <?php
2 /**
3 * BookingCompleted.
4 * php version 5.6
5 *
6 * @category BookingCompleted
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\EventPrime\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\EventPrime\EventPrime;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 if ( ! class_exists( 'BookingCompleted' ) ) :
22
23 /**
24 * BookingCompleted
25 *
26 * @category BookingCompleted
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 BookingCompleted {
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'EventPrime';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'ep_booking_completed';
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' => __( 'Booking Completed', 'suretriggers' ),
72 'action' => $this->trigger,
73 'common_action' => 'ep_after_booking_complete',
74 'function' => [ $this, 'trigger_listener' ],
75 'priority' => 10,
76 'accepted_args' => 2,
77 ];
78
79 return $triggers;
80 }
81
82 /**
83 * Trigger listener
84 *
85 * @param int $booking_id Booking Post ID.
86 * @param array $data Payment data.
87 *
88 * @return void
89 */
90 public function trigger_listener( $booking_id, $data ) {
91 if ( empty( $booking_id ) ) {
92 return;
93 }
94
95 $booking_context = EventPrime::get_booking_context( $booking_id );
96 if ( empty( $booking_context ) ) {
97 return;
98 }
99
100 $event_id = is_numeric( $booking_context['event_id'] ) ? (int) $booking_context['event_id'] : 0;
101 $user_id = is_numeric( $booking_context['user_id'] ) ? (int) $booking_context['user_id'] : 0;
102
103 $context = $booking_context;
104 if ( ! empty( $event_id ) ) {
105 $context = array_merge( $context, EventPrime::get_event_context( $event_id ) );
106 }
107 if ( ! empty( $user_id ) ) {
108 $context = array_merge( WordPress::get_user_context( $user_id ), $context );
109 }
110 $context['event_id'] = $event_id;
111 AutomationController::sure_trigger_handle_trigger(
112 [
113 'trigger' => $this->trigger,
114 'context' => $context,
115 ]
116 );
117 }
118 }
119
120 /**
121 * Ignore false positive
122 *
123 * @psalm-suppress UndefinedMethod
124 */
125 BookingCompleted::get_instance();
126
127 endif;
128