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 / add-off-period.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
add-off-period.php
65 lines
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5
6 class LatePointAbilityAddOffPeriod extends LatePointAbstractCalendarAbility {
7
8 protected function configure(): void {
9 $this->id = 'latepoint/add-off-period';
10 $this->label = __( 'Add off period', 'latepoint' );
11 $this->description = __( 'Creates a new off/blocked period during which an agent or the entire business will not accept bookings.', 'latepoint' );
12 $this->permission = 'agent__edit';
13 $this->read_only = false;
14 $this->destructive = false;
15 $this->idempotent = false;
16 }
17
18 public function get_input_schema(): array {
19 return [
20 'type' => 'object',
21 'properties' => [
22 'name' => [
23 'type' => 'string',
24 'description' => __( 'Label for the off period.', 'latepoint' ),
25 ],
26 'start_date' => [
27 'type' => 'string',
28 'format' => 'date',
29 ],
30 'end_date' => [
31 'type' => 'string',
32 'format' => 'date',
33 ],
34 'agent_id' => [ 'type' => 'integer' ],
35 ],
36 'required' => [ 'name', 'start_date', 'end_date' ],
37 ];
38 }
39
40 public function get_output_schema(): array {
41 return $this->off_period_output_schema();
42 }
43
44 public function execute( array $args ) {
45 $period = new OsOffPeriodModel();
46 $period->summary = sanitize_text_field( $args['name'] );
47 $period->start_date = sanitize_text_field( $args['start_date'] );
48 $period->end_date = sanitize_text_field( $args['end_date'] );
49
50 if ( ! empty( $args['agent_id'] ) ) {
51 $period->agent_id = (int) $args['agent_id'];
52 }
53
54 if ( ! $period->save() ) {
55 return new WP_Error(
56 'save_failed',
57 __( 'Failed to create off period.', 'latepoint' ),
58 WP_DEBUG ? [ 'errors' => $period->get_error_messages() ] : [ 'status' => 422 ]
59 );
60 }
61
62 return $this->serialize_off_period( new OsOffPeriodModel( $period->id ) );
63 }
64 }
65