예제 #1
0
파일: functions.php 프로젝트: rask/wprsrv
 * @since 0.1.0
 * @return void
 */
add_action('wp_ajax_wprsrv_decline_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->decline();
    $reservation->getReservable()->flushCache();
    echo 0;
    exit;
});
/**
 * AJAX
 * Flush cache for a reservable.
 *
 * @since 0.1.0
 * @return void
 */
add_action('wp_ajax_wprsrv_flush_reservable_cache', function () {
    if (!isset($_POST) || !isset($_POST['post_id'])) {
        echo 1;
        exit;
예제 #2
0
파일: Reservation.php 프로젝트: rask/wprsrv
 /**
  * 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);
 }