* @since 0.1.0 * @return void */ add_action('wp_ajax_wprsrv_accept_reservation', function () { if (!isset($_POST) || !isset($_POST['post_id'])) { echo 1; exit; } $post = $_POST; $postId = $post['post_id']; if (!$postId) { echo 1; exit; } $reservation = new Reservation($postId); $reservation->accept(); $reservation->getReservable()->flushCache(); echo 0; exit; }); /** * AJAX * Accept a reservation in the wp-admin. * * @since 0.1.0 * @return void */ add_action('wp_ajax_wprsrv_decline_reservation', function () { if (!isset($_POST) || !isset($_POST['post_id'])) { echo 1; exit;
/** * Save reservation status updates in wp-admin. * * @since 0.2.0 * @see:wphook save_post_$post_type * * @param Integer $reservationId Post ID for reservation. * @param \WP_Post $reservationPost Reservation WP_Post object. * @param Boolean $update Is this a new reservation or an update? * * @return void */ public function saveReservationStatuses($reservationId, $reservationPost, $update) { if (!$update) { return; } $reservation = new \Wprsrv\PostTypes\Objects\Reservation($reservationPost); $shouldAccept = isset($_POST['accept-reservation']); $shouldDecline = isset($_POST['decline-reservation']); // Prevent infinite loop. remove_action('save_post_reservation', [$this, 'saveReservationStatuses'], 25); if ($shouldAccept) { $reservation->accept(); } elseif ($shouldDecline) { $reservation->decline(); } // Infinite loop danger over, re-enable. add_action('save_post_reservation', [$this, 'saveReservationStatuses'], 25, 3); }