PluginProbe ʕ •ᴥ•ʔ
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress / 5.6.8
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress v5.6.8
5.6.8 5.6.7 5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / abilities / calendar / get-available-slots.php
latepoint / lib / abilities / calendar Last commit date
abstract-calendar-ability.php 4 months ago add-off-period.php 4 months ago check-slot-availability.php 4 months ago get-available-slots.php 4 months ago get-work-schedule.php 4 months ago list-off-periods.php 4 months ago remove-off-period.php 4 months ago
get-available-slots.php
65 lines
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5
6 class LatePointAbilityGetAvailableSlots extends LatePointAbstractCalendarAbility {
7
8 protected function configure(): void {
9 $this->id = 'latepoint/get-available-slots';
10 $this->label = __( 'Get available slots', 'latepoint' );
11 $this->description = __( 'Returns available booking time slots for a service/agent/location on a given date.', 'latepoint' );
12 $this->permission = '';
13 $this->read_only = true;
14 }
15
16 public function check_permission(): bool {
17 return true;
18 }
19
20 public function get_input_schema(): array {
21 return [
22 'type' => 'object',
23 'properties' => [
24 'service_id' => [
25 'type' => 'integer',
26 'description' => __( 'Service ID.', 'latepoint' ),
27 ],
28 'date' => [
29 'type' => 'string',
30 'format' => 'date',
31 'description' => __( 'Date to check (Y-m-d).', 'latepoint' ),
32 ],
33 'agent_id' => [ 'type' => 'integer' ],
34 'location_id' => [ 'type' => 'integer' ],
35 'duration' => [ 'type' => 'integer' ],
36 ],
37 'required' => [ 'service_id', 'date' ],
38 ];
39 }
40
41 public function get_output_schema(): array {
42 return [
43 'type' => 'object',
44 'properties' => [
45 'slots' => [
46 'type' => 'array',
47 'items' => [
48 'type' => 'object',
49 'properties' => [
50 'start_time' => [ 'type' => 'integer' ],
51 'end_time' => [ 'type' => 'integer' ],
52 'agent_id' => [ 'type' => 'integer' ],
53 ],
54 ],
55 ],
56 ],
57 ];
58 }
59
60 public function execute( array $args ) {
61 $slots = apply_filters( 'latepoint_get_available_slots', [], $args );
62 return [ 'slots' => $slots ];
63 }
64 }
65