/** * Check if the user has already booked a seat * * @param int $user_id * @param int $meetup_id * @return object|boolean */ function meetup_book_seat($user_id, $meetup_id, $num_of_seat = 1) { global $wpdb; if ($prev_booking = meetup_has_user_booked($user_id, $meetup_id)) { // update the booking $quantity = intval($prev_booking->seat); $total = $num_of_seat - $quantity; if ($total < 0) { // user is reducing amount of seat // so we don't have any problem to update } else { // user is increasing the number of seat // we should check the availibility to see // if the additional seat is available if (!meetup_is_seat_available($meetup_id, $total)) { return new WP_Error('no-seat', __('Sorry, additional seat is not available.', 'meetup')); } } $wpdb->update($wpdb->prefix . 'meetup_users', array('seat' => $num_of_seat), array('user_id' => $user_id, 'meetup_id' => $meetup_id), array('%d'), array('%d', '%d')); do_action('meetup_booking_update', $meetup_id, $user_id, $prev_booking->id); } else { // create new booking if (!meetup_is_seat_available($meetup_id, $num_of_seat)) { return new WP_Error('no-seat', __('Sorry, your required number of seat(s) are not available.', 'meetup')); } $wpdb->insert($wpdb->prefix . 'meetup_users', array('user_id' => $user_id, 'meetup_id' => $meetup_id, 'seat' => $num_of_seat, 'created' => current_time('mysql')), array('%d', '%d', '%d', '%s')); $booking_id = $wpdb->insert_id; do_action('meetup_booking_new', $meetup_id, $user_id, $booking_id); } return true; }
<?php } else { ?> <div class="meetup-message"> <h4><?php _e('We are filled up! No more seat available!', 'meetup'); ?> </h4> </div> <?php if (is_user_logged_in()) { ?> <?php $has_booked = meetup_has_user_booked(get_current_user_id(), $post_id); ?> <?php if ($has_booked) { ?> <div class="meetup-joined"> <p> <?php printf(__('Congratulations! You\'ve booked %d seat(s).', 'meetup'), $has_booked->seat); ?> </p> <p> <a href="#" class="meetup-cancel-booking" data-meetup-id="<?php