/** * When the reservation form has been filled and submitted this function * will process the form. * @global type $syn_restaurant_config * @return boolean */ function syn_restaurant_manager_process_reservation_form() { global $syn_restaurant_config; $session = new \syntaxthemes\restaurant\session(); if ('POST' !== strtoupper($session->server_var('REQUEST_METHOD'))) { return false; } if ('request_booking' !== $session->post_var('form_action')) { return false; } $nonce = $session->post_var('_wpnonce'); if (!wp_verify_nonce($nonce, 'request_booking')) { return false; } $first_name = $session->post_var('first_name'); $last_name = $session->post_var('last_name'); $telephone = $session->post_var('telephone'); $email_address = $session->post_var('email_address'); $guests_count = $session->post_var('guests_count'); $reservation_date = $session->post_var('reservation_date'); $reservation_time = $session->post_var('reservation_time'); $notes = $session->post_var('notes'); $post_title = 'Reservation: ' . $first_name . ' ' . $last_name; $post_status = 'pending'; //install the default set of pages $post = array('menu_order' => 0, 'comment_status' => 'closed', 'ping_status' => 'closed', 'pinged' => '', 'post_author' => get_current_user_id(), 'post_content' => $notes, 'post_excerpt' => '', 'post_parent' => '', 'post_password' => '', 'post_status' => $post_status, 'post_title' => $post_title, 'post_name' => sanitize_title($post_title), 'post_type' => 'syn_rest_reservation', 'to_ping' => ''); $post_id = wp_insert_post($post); //insert arrival time in MySql dateformat. $arrival_time = date('Y-m-d H:i:s', strtotime("{$reservation_date}, {$reservation_time}")); update_post_meta($post_id, 'first_name', $first_name); update_post_meta($post_id, 'last_name', $last_name); update_post_meta($post_id, 'phone_number', $telephone); update_post_meta($post_id, 'email_address', $email_address); update_post_meta($post_id, 'guests_count', $guests_count); update_post_meta($post_id, 'reservation_date', $reservation_date); update_post_meta($post_id, 'reservation_time', $reservation_time); update_post_meta($post_id, 'arrival_time', $arrival_time); update_post_meta($post_id, 'notes', $notes); $syn_email = new syntaxthemes\restaurant\email_notifications(); $site_name = get_bloginfo('name'); $site_link = site_url(); $date_format = get_option('date_format'); $time_format = get_option('time_format'); $current_time = date("{$date_format} - {$time_format}"); $reservation_date = date("{$date_format}", strtotime($reservation_date)); $reservation_time = date("{$time_format}", strtotime($reservation_time)); $replace = array($site_name, $first_name, $last_name, $telephone, $email_address, $guests_count, $reservation_date, $reservation_time, $current_time, $site_link); $customer_sent = syntaxthemes_process_notification_email($post_status, $email_address, $post_id); $details = array($first_name, $last_name, $email_address); apply_filters('syn_restaurant_reservation_form_processing_end', $details); return $customer_sent; }
public function process_status($post_id) { global $post_type; $session = new session(); if ('POST' !== strtoupper($session->server_var('REQUEST_METHOD'))) { return false; } if ($post_type !== 'syn_rest_reservation') { return false; } $event_log = new event_log(); $old_post_status = $session->post_var('original_post_status'); $post = get_post($post_id); $post_status = $post->post_status; $email_address = get_post_meta($post_id, 'email_address', true); //check if the post status has changed if ($post_status !== $old_post_status) { $result = syntaxthemes_process_notification_email($post_status, $email_address, $post_id); $event_log->status_event($post_id, $old_post_status, $post_status, $result); } }