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 
<?php

/**
 * Bookings and Appointment Plugin for WooCommerce
 *
 * Class for integrating Dokan with Bookings & Appointment Plugin
 *
 * @author   Tyche Softwares
 * @package  BKAP/Vendors/Dokan
 * @version  4.6.0
 * @category Classes
 */

if( ! class_exists( 'bkap_dokan_class' ) ) {

    /**
     * Class for Integrating Booking & Appointment plugin for WooCommerce with Dokan
     * @since    4.6.0
     */
    class bkap_dokan_class {
        
        /**
         * Default Constructor. Include dependency files and hook functions to actions & filters
         * 
         * @since 4.6.0
         */
        function __construct() {

            self::bkap_dokan_include_dependencies();

            add_filter( 'dokan_get_dashboard_nav',    array( &$this, 'bkap_dokan_add_booking_nav' ) );
            
            add_filter( 'dokan_query_var_filter',     array( &$this, 'bkap_dokan_query_var_filter' ) );

            add_action( 'dokan_rewrite_rules_loaded', array( $this, 'bkap_add_rewrite_rules' ) );

            add_action( 'dokan_load_custom_template', array( &$this, 'bkap_dokan_include_template' ), 10, 1 );

            add_action( 'admin_init', array( &$this, 'bkap_remove_menu' ) );
        }

        /**
         * Remove Booking Menu for Vendors Admin Dashboard
         * 
         * @since 4.6.0
         */
        public function bkap_remove_menu() {

            if ( current_user_can( 'seller' ) ) {
                remove_menu_page( 'edit.php?post_type=bkap_booking' );
            }
        }

        /**
         * Include dependent files
         * 
         * @since 4.6.0
         */
        public static function bkap_dokan_include_dependencies() {

            include_once( BKAP_VENDORS_INCLUDES_PATH . 'dokan/class-bkap-dokan-products.php' );
            include_once( BKAP_VENDORS_INCLUDES_PATH . 'dokan/class-bkap-dokan-orders.php' );
            include_once( BKAP_VENDORS_INCLUDES_PATH . 'dokan/class-bkap-dokan-calendar.php' );
        }

        /**
         * Add Booking Menu to vendors Dashboard on Frontend
         * 
         * @param array $urls Array containing existing Menu URLs
         * @return array URL Array
         * @since 4.6.0
         */
        function bkap_dokan_add_booking_nav( $urls ) {

            $urls['bkap_dokan_booking'] = array(
                'title' => __( 'Booking', 'woocommerce-booking'),
                'icon'  => '<i class="wp-menu-image dashicons-before dashicons-calendar-alt"></i>',
                'url'   => dokan_get_navigation_url( 'bkap_dokan_booking' ),
                'pos'   => '51'
            );

            return $urls;
        }

        /**
         * Add Booking Query var to the existing query vars
         * 
         * @param array $url_array Array of URL
         * @return array Array of URL after modification
         * @since 4.6.0
         */
        public function bkap_dokan_query_var_filter( $url_array ) {
            $url_array[] = 'bkap_dokan_booking';

            return $url_array;
        }

        /**
         * Add rewrite rules for Booking Links
         * 
         * @since 4.6.0
         */
        public function bkap_add_rewrite_rules() {
            flush_rewrite_rules( true );
        }

        /**
         * Display the base template for Booking Menu
         * 
         * @param array $query_vars Query Vars
         * @since 4.6.0
         */
        public function bkap_dokan_include_template( $query_vars ) {

            if ( isset( $query_vars['bkap_dokan_booking'] ) ) {
                wc_get_template( 
                    'dokan/bkap-dokan-booking.php', 
                    array( ), 
                    'woocommerce-booking/', 
                    BKAP_VENDORS_TEMPLATE_PATH );
            }
        }
    }
}

return new bkap_dokan_class();
API documentation generated by ApiGen