PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / jet-booking / jet-booking.php
suretriggers / src / Integrations / jet-booking Last commit date
actions 2 weeks ago triggers 2 weeks ago jet-booking.php 2 weeks ago
jet-booking.php
122 lines
1 <?php
2 /**
3 * JetBooking core integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\JetBooking;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class JetBooking
17 *
18 * @package SureTriggers\Integrations\JetBooking
19 */
20 class JetBooking extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID
26 *
27 * @var string
28 */
29 protected $id = 'JetBooking';
30
31 /**
32 * SureTrigger constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'JetBooking', 'suretriggers' );
36 $this->description = __( 'A WordPress plugin for creating booking functionality for apartments and services with an availability check.', 'suretriggers' );
37 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/jet-booking.svg';
38 parent::__construct();
39 }
40
41 /**
42 * Is Plugin depended plugin is installed or not.
43 *
44 * @return bool
45 */
46 public function is_plugin_installed() {
47 return class_exists( '\JET_ABAF\Plugin' );
48 }
49
50 /**
51 * Get booking data by booking ID.
52 *
53 * @param int $booking_id The booking ID.
54 * @return array The booking data, or an empty array if not found.
55 */
56 public static function get_booking( $booking_id ) {
57 if ( ! class_exists( '\JET_ABAF\Plugin' ) ) {
58 return [];
59 }
60
61 $booking = \JET_ABAF\Plugin::instance()->db->get_booking_by( 'booking_id', $booking_id );
62
63 return ! empty( $booking ) && is_array( $booking ) ? $booking : [];
64 }
65
66 /**
67 * Get booking context data.
68 *
69 * @param array $booking The booking data.
70 * @param string $new_status New booking status (optional).
71 * @param string $old_status Old booking status (optional).
72 * @return array The booking context data.
73 */
74 public static function get_booking_context( $booking, $new_status = null, $old_status = null ) {
75 if ( empty( $booking ) || ! is_array( $booking ) ) {
76 return [];
77 }
78
79 $context = $booking;
80
81 if ( null !== $old_status ) {
82 $context['old_status'] = $old_status;
83 }
84 if ( null !== $new_status ) {
85 $context['new_status'] = $new_status;
86 }
87
88 if ( ! empty( $context['apartment_id'] ) ) {
89 $apartment_post = get_post( $context['apartment_id'] );
90 if ( $apartment_post ) {
91 $context['apartment_title'] = $apartment_post->post_title;
92 }
93 }
94
95 if ( ! empty( $context['user_id'] ) ) {
96 $user = get_user_by( 'ID', $context['user_id'] );
97 if ( $user ) {
98 $context['user_login'] = $user->user_login;
99 $context['user_display_name'] = $user->display_name;
100 if ( empty( $context['user_email'] ) ) {
101 $context['user_email'] = $user->user_email;
102 }
103 }
104 }
105
106 $date_format = get_option( 'date_format' );
107
108 if ( ! empty( $context['check_in_date'] ) && is_string( $date_format ) ) {
109 $context['check_in_date_formatted'] = date_i18n( $date_format, $context['check_in_date'] );
110 }
111
112 if ( ! empty( $context['check_out_date'] ) && is_string( $date_format ) ) {
113 $context['check_out_date_formatted'] = date_i18n( $date_format, $context['check_out_date'] );
114 }
115
116 return $context;
117 }
118
119 }
120
121 IntegrationsController::register( JetBooking::class );
122