PluginProbe
Booking Calendar / 11.2
Booking Calendar v11.2
11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 10.11 10.11.2 All 203 releases
booking / includes / page-availability-general / ajax / availability_general__preview.php

availability_general__preview.php in Booking Calendar 11.2, at includes/page-availability-general/ajax/availability_general__preview.php

47 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * AJAX preview handler for General Availability.
4 *
5 * @package Booking Calendar
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit;
10 }
11
12 /**
13 * AJAX: refresh General Availability calendar preview.
14 *
15 * @return void
16 */
17 function wpbc_availability_general_ajax_preview() {
18
19 $nonce_result = check_ajax_referer( 'wpbc_availability_general_ajax_nonce', 'nonce', false );
20 if ( false === $nonce_result ) {
21 wp_send_json_error( array( 'message' => __( 'Security check failed.', 'booking' ) ), 403 );
22 }
23
24 if ( ! wpbc_is_mu_user_can_be_here( 'only_super_admin' ) || ! current_user_can( wpbc_availability_general__get_manage_cap() ) ) {
25 wp_send_json_error( array( 'message' => __( 'You do not have permission to preview general availability.', 'booking' ) ), 403 );
26 }
27
28 $resource_id = isset( $_POST['resource_id'] ) ? absint( wp_unslash( $_POST['resource_id'] ) ) : wpbc_availability_general__get_preview_resource_id(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
29 $months_count = isset( $_POST['months_count'] ) ? absint( wp_unslash( $_POST['months_count'] ) ) : wpbc_availability_general__get_preview_months_count(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
30
31 $resource_id = wpbc_availability_general__sanitize_preview_resource_id( $resource_id );
32 $months_count = wpbc_availability_general__sanitize_preview_months_count( $months_count );
33
34 ob_start();
35 wpbc_availability_general__render_calendar_preview( $resource_id, $months_count );
36 $html = ob_get_clean();
37
38 wp_send_json_success(
39 array(
40 'html' => $html,
41 'resource_id' => $resource_id,
42 'months_count' => $months_count,
43 )
44 );
45 }
46 add_action( 'wp_ajax_WPBC_AJX_AVAILABILITY_GENERAL_PREVIEW', 'wpbc_availability_general_ajax_preview' );
47