Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hook Reference
  • Docs Home

Packages

  • BKAP
    • Addons
    • Admin-Bookings
    • Attribute-Lockout
    • Block-Pricing
    • Booking-Box
    • Booking-Confirmation
    • Booking-Process
    • Cancel-Order
    • Cart
    • Checkout-Process
    • Core
    • Date-Time
    • Emails
    • Functions
    • Global-Function
    • Global-Settings
    • Google-Calendar-Sync
    • ICS
    • Import-Booking
    • Labels
    • License
    • Menus
    • Meta-Boxes
    • Reschedule
    • Resources
    • Search-Widget
    • Special-Price
    • Uninstall
    • Validation
    • Variation-Lockout
    • Vendors
      • Dokan
      • WC-Vendors
    • View-Bookings
  • None

Classes

  • bkap_addon_compatibility_class
  • bkap_admin_bookings
  • bkap_approve_booking
  • bkap_attributes
  • bkap_block_booking
  • BKAP_Booking
  • bkap_booking_box_class
  • bkap_booking_confirmation
  • bkap_booking_process
  • BKAP_Bookings_View
  • bkap_calendar_sync
  • bkap_cancel_order
  • bkap_cart
  • bkap_checkout
  • bkap_common
  • BKAP_Customer_Meta_Box
  • BKAP_Details_Meta_Box
  • bkap_dokan_calendar_class
  • bkap_dokan_class
  • bkap_dokan_orders_class
  • bkap_dokan_products_class
  • bkap_edit_bookings_class
  • BKAP_Email_Booking_Cancelled
  • BKAP_Email_Booking_Confirmed
  • BKAP_Email_Booking_Rescheduled_Admin
  • BKAP_Email_Imported_Event
  • BKAP_Email_Manager
  • BKAP_Email_New_Booking
  • BKAP_Gcal
  • BKAP_Gcal_Event
  • bkap_gcal_sync_settings
  • bkap_global_settings
  • BKAP_Google_Events_View
  • bkap_ics
  • bkap_license
  • bkap_load_scripts_class
  • BKAP_OPC_Addon
  • BKAP_Payment_Gateway
  • BKAP_Product_Resource
  • bkap_rescheduled_order_class
  • BKAP_Resource_Details_Meta_Box
  • BKAP_Save_Meta_Box
  • bkap_special_booking_price
  • bkap_timeslot_price
  • bkap_validation
  • bkap_variations
  • BKAP_Vendors
  • bkap_wc_vendors
  • bkap_wcv_product
  • Booking_Information_In_Voucher_Template
  • Class_Bkap_Product_Resource
  • Custom_WooCommerce_Widget_Product_Search
  • EDD_BOOK_Plugin_Updater
  • global_menu
  • import_bookings
  • product_gcal_settings
  • view_bookings
  • WAPBK_Import_Bookings_Table
  • WAPBK_View_Bookings_Table
  • woocommerce_booking

Functions

  • addDayswithdate
  • bkap_400_create_meta
  • bkap_400_recurring_data
  • bkap_400_update_db_tab
  • bkap_400_update_enable_specific
  • bkap_400_update_enable_week_blocking
  • bkap_400_update_holidays
  • bkap_400_update_ranges
  • bkap_400_update_recurring_lockout
  • bkap_400_update_settings
  • bkap_400_update_special
  • bkap_400_update_specific
  • bkap_410_create_meta
  • bkap_410_update_block_pricing_option_values_in_new_way
  • bkap_410_update_fixed_blocks
  • bkap_410_update_price_ranges
  • bkap_410_update_settings
  • bkap_420_add_gcal_posts
  • bkap_420_add_gcal_tour_posts
  • bkap_420_gcal_batch_size
  • bkap_420_gcal_meta
  • bkap_420_update_settings
  • bkap_add_days_to_date
  • bkap_array_of_given_date_range
  • bkap_booked_resources
  • bkap_booking_posts_for_resource
  • bkap_calculate_bookings_for_resource
  • bkap_check_booking_available
  • bkap_check_day_booking_available
  • bkap_check_for_max_date
  • bkap_check_for_min_date
  • bkap_check_holiday
  • bkap_check_in_custom_holiday_range
  • bkap_check_resource_available
  • bkap_check_resource_booked_in_date_range
  • bkap_db_420_1
  • bkap_db_420_2
  • bkap_delete_event_from_gcal
  • bkap_delete_folder_and_files
  • bkap_delete_options
  • bkap_delete_tables
  • bkap_find_matching_product_variation
  • bkap_generate_bookable_data
  • bkap_get_book_arrays
  • bkap_get_book_t
  • bkap_get_booked
  • bkap_get_booked_checkout
  • bkap_get_custom_posts
  • bkap_get_dateToCal
  • bkap_get_day_between_Week
  • bkap_get_db_count
  • bkap_get_escapeString
  • bkap_get_lockout
  • bkap_get_month_range
  • bkap_get_post_meta
  • bkap_get_posted_availability
  • bkap_get_total_timeslot_maximum_booking
  • bkap_get_week_range
  • bkap_import_events_cron
  • bkap_insert_event_to_gcal
  • bkap_manual_db_update_v420
  • bkap_orderby_date_key
  • bkap_save_resources
  • bkap_sort_by_from_time
  • bkap_update_po_file
  • bkap_vendors_get_bookings
  • bkap_widgets_init
  • bkapSortByPriority
  • calback_bkap_max_date
  • check_in_fixed_block_booking
  • check_in_range
  • check_in_range_abp
  • check_in_range_holidays
  • check_in_range_weekdays
  • create_posts
  • get_availability_for_date
  • get_booked_multiple
  • get_bookings_for_date
  • get_bookings_for_range
  • get_date_lockout
  • get_slot_availability
  • get_slot_lockout
  • get_standard_decimal_thousand_separator_price
  • is_booking_active
  • woocommerce_bkap_add_cron_schedule
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 
<?php

/**
 * Bookings and Appointment Plugin for WooCommerce
 *
 * Class for WooCommerce One Page Checkout
 *
 * @author      Tyche Softwares
 * @package     BKAP/Addons
 * @category    Classes
 */

if ( !class_exists( 'BKAP_OPC_Addon' ) ) {
    
    /**
     * Class for WooCommerce One Page Checkout
     * 
     * @since 4.6.0
     */
    class BKAP_OPC_Addon {

        /**
         * Default constructor.
         *
         * @since 4.6.0
         */

        function __construct() {

            add_action( 'wcopc_after_add_to_cart_button', array( &$this, 'bkap_opc_add_booking_button' ), 10, 1 );
            add_action( 'woocommerce_before_single_product_summary', array( &$this, 'bkap_opc_include_scripts_styles' ), 50, 1 );
        }

        /**
         * Include JS and CSS files for Single Product Template of OPC
         * 
         * @param string|int $page_id Page ID
         * @globals WC_Product WooCommerce Product Object
         * @since 4.6.0
         * 
         * @hook woocommerce_before_single_product_summary
         */

        public function bkap_opc_include_scripts_styles( $page_id ) {
            
            global $product;

            $product_id = $product->get_id();
            
            woocommerce_booking::include_frontend_scripts_js( $product_id );
            woocommerce_booking::inlcude_frontend_scripts_css( $product_id );

            self::bkap_opc_load_scripts( $product, $product_id );
        }

        /**
         * Add Book Now button after quantity input.
         * 
         * @param WC_Product $product Product Object
         * @since 4.6.0
         * 
         * @hook wcopc_after_add_to_cart_button
         */

        public function bkap_opc_add_booking_button( $product ) {

            if ( 'simple' === $product->get_type() ) {
                $product_id = $product->get_id();
                $variation_id = '';
                $modal_id = $product_id;
            }else if ( 'variation' === $product->get_type() ) {
                $product_id = $product->get_parent_id();
                $variation_id = $product->get_id();
                $modal_id = $variation_id;
            }

            $is_bookable = bkap_common::bkap_get_bookable_status( $product_id );

            if ( $is_bookable ) {

                printf( '<input type="button" onclick=bkap_edit_booking_class.bkap_edit_bookings(%d,"%s") value="%s" class="bkap-opc-button">', $product_id, $modal_id, __( 'Book Now', 'woocommerce-booking' ) );

                $page_type = '';
                if ( is_cart() ) {
                    $page_type = 'cart';
                }else if ( is_checkout() ) {
                    $page_type = 'checkout';
                }

                $localized_array = array( 
                    'bkap_booking_params' => array(),
                    'bkap_cart_item' => '',
                    'bkap_cart_item_key' => $modal_id,
                    'bkap_page_type' => $page_type
                );

                // Additional data for addons
                $additional_addon_data = '';//bkap_common::bkap_get_cart_item_addon_data( $cart_item );

                $booking_details = array(
                    'date' => '',
                    'hidden_date' => '',
                    'date_checkout' => '',
                    'hidden_date_checkout' => '',
                    'price' => '',
                );

                bkap_edit_bookings_class::bkap_load_template( 
                    $booking_details, 
                    $product, 
                    $product_id, 
                    $localized_array,
                    $modal_id,
                    $variation_id,
                    $additional_addon_data );

                self::bkap_opc_load_scripts( $product, $product_id );
            }
        }

        /**
         * Load JS files
         * 
         * @param WC_Product $product Product Object
         * @param int|string $product_id Product ID
         * @since 4.6.0
         */

        public static function bkap_opc_load_scripts( $product, $product_id ) {
            
            $localized_params = array( 'product_id' => $product_id );

            wp_register_script( 
                "bkap-opc-add-booking", 
                plugins_url( '/js/bkap-opc-add-booking.js', __FILE__ ), 
                '', 
                '', 
                false );

            wp_localize_script( "bkap-opc-add-booking", "bkap_opc_add_booking_$product_id", $localized_params );

            wp_enqueue_script( "bkap-opc-add-booking" );
        }
    }
}

$bkap_opc_addon = new BKAP_OPC_Addon();
API documentation generated by ApiGen