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 / remove-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
remove-off-period.php
58 lines
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5
6 class LatePointAbilityRemoveOffPeriod extends LatePointAbstractCalendarAbility {
7
8 protected function configure(): void {
9 $this->id = 'latepoint/remove-off-period';
10 $this->label = __( 'Remove off period', 'latepoint' );
11 $this->description = __( 'Permanently deletes an off/blocked period, making those times available for bookings again.', 'latepoint' );
12 $this->permission = 'agent__edit';
13 $this->read_only = false;
14 $this->destructive = true;
15 $this->idempotent = false;
16 }
17
18 public function get_input_schema(): array {
19 return [
20 'type' => 'object',
21 'properties' => [
22 'id' => [
23 'type' => 'integer',
24 'description' => __( 'Off period ID to remove.', 'latepoint' ),
25 ],
26 ],
27 'required' => [ 'id' ],
28 ];
29 }
30
31 public function get_output_schema(): array {
32 return [
33 'type' => 'object',
34 'properties' => [
35 'deleted' => [ 'type' => 'boolean' ],
36 'id' => [ 'type' => 'integer' ],
37 ],
38 ];
39 }
40
41 public function execute( array $args ) {
42 $period = new OsOffPeriodModel( (int) $args['id'] );
43 if ( $period->is_new_record() ) {
44 return new WP_Error( 'not_found', __( 'Off period not found.', 'latepoint' ), [ 'status' => 404 ] );
45 }
46
47 $id = (int) $period->id;
48 if ( ! $period->delete() ) {
49 return new WP_Error( 'delete_failed', __( 'Failed to delete off period.', 'latepoint' ), [ 'status' => 500 ] );
50 }
51
52 return [
53 'deleted' => true,
54 'id' => $id,
55 ];
56 }
57 }
58