private $settings = array(); function __construct( $params ) { $this->settings = array( 'tiny_prefix' => 'wpbm_tiny' , 'tiny_icon_url' => WPBM_PLUGIN_URL . '/assets/img/icon-16x16.png' , 'tiny_js_plugin' => WPBM_PLUGIN_URL . '/js/wpbm_tinymce_btn.js' , 'tiny_js_function' => 'wpbm_init_tinymce_buttons' // This function NAME exist inside of this JS file: ['tiny_js_plugin'] , 'tiny_btn_row' => 1 , 'pages_where_insert' => array( 'post-new.php', 'page-new.php', 'post.php', 'page.php' ) , 'buttons' => array( 'wpbm_insert' => array( 'hint' => __('Insert Shortcode' , 'booking-manager' ) , 'title' => __('Insert Shortcode' , 'booking-manager' ) , 'js_func_name_click' => 'wpbm_tiny_btn_click' , 'img' => WPBM_PLUGIN_URL . '/assets/img/icon-16x16.png' ) ) ); $this->settings = wp_parse_args( $params, $this->settings ); add_action( 'init', array( $this, 'define_init_hooks' ) ); // Define init hooks } /** Init all hooks for showing Button in Tiny Toolbar */ public function define_init_hooks() { // Don't bother doing this stuff if the current user lacks permissions if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) return; if ( ( in_array( basename($_SERVER['PHP_SELF'] ), $this->settings['pages_where_insert'] ) ) // && ( get_user_option('rich_editing') == 'true' ) ) { ///////////////////////////////////////////////////////////////////////////////////// // A D D I N G B u t t o n to toolbar ///////////////////////////////////////////////////////////////////////////////////// // Load JS file - TinyMCE plugin add_filter( 'mce_external_plugins', array( $this, 'load_tiny_js_plugin' ) ); // Add the custom TinyMCE buttons if ( 1 === $this->settings['tiny_btn_row'] ) add_filter( 'mce_buttons', array( $this, 'add_tiny_button' ) ); else add_filter( 'mce_buttons_' . $this->settings['tiny_btn_row'] , array( $this, 'add_tiny_button' ) ); // Add the old style button to the non-TinyMCE editor views //FixIn: 2.0.8.2 - compatibility with Gutenberg 4.1- 4.3 ( or newer ) at edit post page. //add_action( 'edit_form_advanced', array( $this, 'add_html_button' ) ); // Fires after 'normal' context meta boxes have been output add_action( 'edit_page_form', array( $this, 'add_html_button' ) ); add_action( 'admin_head', array( $this, 'insert_button') ); ///////////////////////////////////////////////////////////////////////////////////// // Modal Content add_action( 'admin_footer', array( $this, 'modal_content' ) ); // JS wp_enqueue_script( 'wpdevelop-bootstrap', wpbm_plugin_url( '/assets/libs/bootstrap/js/bootstrap.js' ), array( 'jquery' ), '3.3.5.1'); //////////////////////////////////////////////////////////////////////////////////////////////////////////// // M o d a l s - proxy wpbc_modal no conflict object - usage like jQuery('#wpbm_tiny_modal').wpbc_modal({ //// // Because name "wpbc-wpdevelop-bootstrap" load this script only ONCE (in the Booking Calendar or in this plugin) wp_enqueue_script( 'wpbc-wpdevelop-bootstrap', wpbm_plugin_url( '/js/wpbm_bs_no_conflict.js' ), array( 'wpdevelop-bootstrap' ), '1.0' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Can not use this, because its start support only from WP 4.5 :( // // wp_add_inline_script( 'wpdevelop-bootstrap', "var wpbc_modal = jQuery.fn.modal.noConflict(); jQuery.fn.wpbc_modal = wpbc_modal;" ); // Define proxy wpbm_model no conflict object - usage like jQuery('#wpbm_tiny_modal').wpbc_modal({ // wp_enqueue_script( 'jquery-ui-dialog' ); // CSS wp_enqueue_style( 'wpdevelop-bts', wpbm_plugin_url( '/assets/libs/bootstrap/css/bootstrap.css' ), array(), '3.3.5.1'); wp_enqueue_style( 'wpdevelop-bts-theme', wpbm_plugin_url( '/assets/libs/bootstrap/css/bootstrap-theme.css' ), array(), '3.3.5.1'); wp_enqueue_style( 'wpbm-admin-support', wpbm_plugin_url( '/core/any/css/admin-support.css' ), array(), WPBM_VERSION_NUM); wp_enqueue_style( 'wpbm-admin-modal-popups', wpbm_plugin_url( '/css/modal.css' ), array(), WPBM_VERSION_NUM); wp_enqueue_style( 'wpbm-admin-pages', wpbm_plugin_url( '/css/admin.css' ), array(), WPBM_VERSION_NUM); wp_enqueue_style( 'wpbm-admin-menu', wpbm_plugin_url( '/core/any/css/admin-menu.css' ), array(), WPBM_VERSION_NUM); //wp_enqueue_style( 'wpbm-admin-toolbar', wpbm_plugin_url( '/core/any/css/admin-toolbar.css' ), array(), WPBM_VERSION_NUM); add_action( 'admin_footer', array( $this, 'write_js' ) ); // Write JavaScript add_action( 'admin_footer', array( $this, 'write_css' ) ); // Write CSS } } // // /** Load JS file - TinyMCE plugin * * @param array $plugins * @return array */ public function load_tiny_js_plugin( $plugins ){ $plugins[ $this->settings['tiny_prefix'] . '_quicktags'] = $this->settings['tiny_js_plugin']; return $plugins; } /** Add the custom TinyMCE buttons * * @param array $buttons * @return array */ public function add_tiny_button( $buttons ) { array_push( $buttons, "separator" ); foreach ( $this->settings['buttons'] as $type => $strings ) { array_push( $buttons, $this->settings['tiny_prefix'] . '_' . $type ); } return $buttons; } /** Add the old style button to the non-TinyMCE editor views */ public function add_html_button() { $buttonshtml = ''; foreach ( $this->settings['buttons'] as $type => $props ) { $buttonshtml .= ''; } ?>settings['buttons'] ) ){ $script .= ''; echo $script; } } // // public function modal_content() { ?>
// function get_tiny_tabs() { if ( function_exists( 'wpbm_get_tiny_tabs' ) ) return wpbm_get_tiny_tabs(); else return array( 'Tabs_not_defined' => 'No Tabs :(' ); } function get_default_shortcode() { $shortcodes = $this->get_tiny_tabs(); reset( $shortcodes ); $first_key = key( $shortcodes ); return $first_key; } // // public function write_css() { ?> } $wpbm_pages_where_insert_btn = array( 'post-new.php', 'page-new.php', 'post.php', 'page.php' ); if ( in_array( basename($_SERVER['PHP_SELF'] ), $wpbm_pages_where_insert_btn ) ) { // Start Class for Tiny Toolbar new WPBM_TinyMCE_Buttons( array( 'tiny_prefix' => 'wpbm_tiny' , 'tiny_icon_url' => WPBM_PLUGIN_URL . '/assets/img/icon-16x16.png' , 'tiny_js_plugin' => WPBM_PLUGIN_URL . '/js/wpbm_tinymce_btn.js' , 'tiny_js_function' => 'wpbm_init_tinymce_buttons' // This function NAME exist inside of this file: ['tiny_js_plugin'] , 'tiny_btn_row' => 1 , 'pages_where_insert' => $wpbm_pages_where_insert_btn , 'buttons' => array( 'wpbm_insert' => array( 'hint' => __('Booking Manager Shortcodes' , 'booking-manager' ) , 'title' => __('Booking Manager' , 'booking-manager' ) , 'js_func_name_click' => 'wpbm_tiny_btn_click' , 'img' => WPBM_PLUGIN_URL . '/assets/img/icon-16x16.png' ) ) ) ); } // function wpbm_get_bk_resources_toolbar_tiny() { if ( ! class_exists( 'wpdev_bk_personal' ) ) return array(); $resources_cache = wpbc_br_cache(); // Get booking resources from cache $resource_objects = $resources_cache->get_resources(); // $resource_objects = $resources_cache->get_single_parent_resources(); //$resource_options = $params['resources']; foreach ( $resource_objects as $br) { $br_option = array(); $br_option['title'] = apply_bk_filter('wpdev_check_for_active_language', $br['title'] ); if ( (isset( $br['parent'] )) && ($br['parent'] == 0 ) && (isset( $br['count'] )) && ($br['count'] > 1 ) ) $br_option['title'] .= ' [' . __('parent resource', 'booking') . ']'; $br_option['attr'] = array(); $br_option['attr']['class'] = 'wpbc_single_resource'; if ( isset( $br['parent'] ) ) { if ( $br['parent'] == 0 ) { if ( ( isset( $br['count'] ) ) && ( $br['count'] > 1 ) ) $br_option['attr']['class'] = 'wpbc_parent_resource'; } else { $br_option['attr']['class'] = 'wpbc_child_resource'; } } $sufix = ''; $resource_options[ $br['id'] . $sufix ] = $br_option; if ( $resource_options[ $br['id'] ]['attr']['class'] === 'wpbc_child_resource' ) { $resource_options[ $br['id'] ]['title'] = '     ' . $resource_options[ $br['id'] ]['title']; } } return $resource_options; } // ////////////////////////////////////////////////////////////////////////////////////////// // Defining Shortcode Tabs [shortcodes] ////////////////////////////////////////////////////////////////////////////////////////// function wpbm_get_tiny_tabs() { $wpbm_tabs = array(); $wpbm_tabs[ 'booking-manager-listing' ] = __( 'Listing .ics feed' , 'booking-manager' ); //if ( wpbm_is_wpbc_supported() ) $wpbm_tabs[ 'booking-manager-import' ] = __( 'Import .ics feed into' , 'booking-manager' ) . ' ' . 'WPBC'; return $wpbm_tabs; } ////////////////////////////////////////////////////////////////////////////////////////// // L i s t i n g ////////////////////////////////////////////////////////////////////////////////////////// function wpbm_shortcode_booking_manager_listing( $shortcode_section_key ) { wpbm_shortcode_booking_manager_listing_js(); ?> 'text' , 'title' => __('URL', 'booking-manager' ) , 'placeholder' => str_replace( array( '"', "'" ), '', __('URL to .ics feed or file', 'booking-manager' ) ) , 'description' => ''//__('Enter', 'booking-manager' ) . ' ' . __('URL to .ics feed', 'booking-manager' ) , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'width:100%;' , 'only_field' => false , 'attr' => array() , 'value' => 'https://calendar.google.com/calendar/ical/CALENDAR_ID/public/basic.ics' ) ); //////////////////////////////////////////////////////////////////// // F r o m //////////////////////////////////////////////////////////////////// ?> 'select' , 'title' => __('Maximum number', 'booking-manager' ) , 'description' => __('You can specify the maximum number of events.' , 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => '' , 'only_field' => false , 'attr' => array() , 'value' => 0 , 'options' => array_combine( array_merge( array( '0' ), range( 500, 10 , 10 ) ) , array_merge( array( ' - ' ), range( 500, 10 , 10 ) ) ) ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_listing_is_all_dates_in' , array( 'type' => 'select' , 'title' => __( 'Event condition', 'booking-manager') , 'description' => __( 'Show event, if all dates or only some date(s) within conditional paramters from / untill', 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => false , 'attr' => array() , 'value' => '0' , 'options' => array( '0' => __( 'Some date(s) in conditional interval', 'booking-manager' ) , '1' => __( 'Strict. All dates in conditional interval', 'booking-manager' ) ) ) ); ?>
__( 'Now', 'booking-manager' ) , 'today' => __( '00:00 Today', 'booking-manager' ) , 'week' => __( 'Start of current week', 'booking-manager' ) , 'month-start' => __( 'Start of current month', 'booking-manager' ) , 'month-end' => __( 'End of current month', 'booking-manager' ) , 'year-start' => __( 'Start of current year', 'booking-manager' ) , 'any' => __( 'The start of time', 'booking-manager' ) , 'date' => __( 'Specific date / time', 'booking-manager' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_listing_from' , array( 'type' => 'select' , 'title' => __('From', 'booking-manager' ) , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => true , 'attr' => array() , 'value' => 'today' , 'options' => $wpbc_options ) ); ?> 'text' , 'title' => __('Offset', 'booking-manager' ) , 'placeholder' => '' , 'description' => '' , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => 'wpbm_text_near_select' , 'css' => 'width:7em;' , 'only_field' => true , 'attr' => array() , 'value' => '' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_listing_from_offset_type' , array( 'type' => 'select' , 'title' => '' , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'class' => 'wpbm_select_near_text wpbm_from_offset' , 'css' => 'width:6em;' , 'only_field' => true , 'attr' => array() , 'value' => date( 'Y' ) , 'options' => array( 'day' => __( 'days' ,'booking-manager' ) , 'hour' => __( 'hours' ,'booking-manager' ) , 'minute' => __( 'minutes' ,'booking-manager' ) , 'second' => __( 'seconds' ,'booking-manager' ) ) //, 'options' => array_combine( range( ( date('Y') - 1 ), ( date('Y') + 10 ) ), range( ( date('Y') - 1 ), ( date('Y') + 10 ) ) ) ) ); ?>
__( 'Now', 'booking-manager' ) , 'today' => __( '00:00 Today', 'booking-manager' ) , 'week' => __( 'End of current week', 'booking-manager' ) , 'month-start' => __( 'Start of current month', 'booking-manager' ) , 'month-end' => __( 'End of current month', 'booking-manager' ) , 'year-end' => __( 'End of current year', 'booking-manager' ) , 'any' => __( 'The end of time', 'booking-manager' ) , 'date' => __( 'Specific date / time', 'booking-manager' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_listing_until' , array( 'type' => 'select' , 'title' => __('Until', 'booking-manager' ) , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => true , 'attr' => array() , 'value' => 'year-end' , 'options' => $wpbc_options ) ); ?> 'text' , 'title' => __('Offset', 'booking-manager' ) , 'placeholder' => '' , 'description' => '' , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => 'wpbm_text_near_select' , 'css' => 'width:7em;' , 'only_field' => true , 'attr' => array() , 'value' => '' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_listing_until_offset_type' , array( 'type' => 'select' , 'title' => '' , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'class' => 'wpbm_select_near_text wpbm_until_offset' , 'css' => 'width:6em;' , 'only_field' => true , 'attr' => array() , 'value' => date( 'Y' ) , 'options' => array( 'day' => __( 'days' ,'booking-manager' ) , 'hour' => __( 'hours' ,'booking-manager' ) , 'minute' => __( 'minutes' ,'booking-manager' ) , 'second' => __( 'seconds' ,'booking-manager' ) ) //, 'options' => array_combine( range( ( date('Y') - 1 ), ( date('Y') + 10 ) ), range( ( date('Y') - 1 ), ( date('Y') + 10 ) ) ) ) ); ?>
Example of shortcode usage: [booking-manager-listing url='https://calendar.google.com/calendar/ical/CALENDAR_ID/public/basic.ics' from='2017-09-01' until='month-end'] "; */ } function wpbm_shortcode_booking_manager_listing_js() { ?> 'text' , 'title' => __('URL', 'booking-manager' ) , 'placeholder' => str_replace( array( '"', "'" ), '', __('URL to .ics feed or file', 'booking-manager' ) ) , 'description' => ''//__('Enter', 'booking-manager' ) . ' ' . __('URL to .ics feed', 'booking-manager' ) , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'width:100%;' , 'only_field' => false , 'attr' => array() , 'value' => 'https://calendar.google.com/calendar/ical/CALENDAR_ID/public/basic.ics' ) ); //////////////////////////////////////////////////////////////////// // Booking Resources //////////////////////////////////////////////////////////////////// if ( class_exists( 'wpdev_bk_personal' ) ){ WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_booking_resource' , array( 'type' => 'select' , 'title' => __('Booking resource', 'booking-manager') , 'description' => __( 'Select booking resource, where event will be imported', 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => false , 'attr' => array() , 'value' => '' , 'options' => wpbm_get_bk_resources_toolbar_tiny() ) ); } //////////////////////////////////////////////////////////////////// // import_conditions //////////////////////////////////////////////////////////////////// WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_import_conditions' , array( 'type' => 'select' , 'title' => __( 'Import condition', 'booking-manager') , 'description' => __( 'Whether import events for dates, that already booked in specific booking resource', 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => false , 'attr' => array() , 'value' => '' , 'options' => array( '' => __( 'Import in any case', 'booking-manager' ) , 'if_dates_free' => __( 'Import only, if days are available', 'booking-manager' ) ) ) ); //////////////////////////////////////////////////////////////////// // F r o m //////////////////////////////////////////////////////////////////// ?> 'select' , 'title' => __('Maximum number', 'booking-manager' ) , 'description' => __('You can specify the maximum number of events.' , 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => '' , 'only_field' => false , 'attr' => array() , 'value' => 0 , 'options' => array_combine( array_merge( array( '0' ), range( 500, 10 , 10 ) ) , array_merge( array( ' - ' ), range( 500, 10 , 10 ) ) ) ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_import_is_all_dates_in' , array( 'type' => 'select' , 'title' => __( 'Event condition', 'booking-manager') , 'description' => __( 'Imort booking, if all dates or only some date(s) within conditional paramters from / untill', 'booking-manager' ) , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => false , 'attr' => array() , 'value' => '1' , 'options' => array( '0' => __( 'Some date(s) in conditional interval', 'booking-manager' ) , '1' => __( 'Strict. All dates in conditional interval', 'booking-manager' ) ) ) ); ?>
__( 'Now', 'booking-manager' ) , 'today' => __( '00:00 Today', 'booking-manager' ) , 'week' => __( 'Start of current week', 'booking-manager' ) , 'month-start' => __( 'Start of current month', 'booking-manager' ) , 'month-end' => __( 'End of current month', 'booking-manager' ) , 'year-start' => __( 'Start of current year', 'booking-manager' ) , 'any' => __( 'The start of time', 'booking-manager' ) , 'date' => __( 'Specific date / time', 'booking-manager' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_from' , array( 'type' => 'select' , 'title' => __('From', 'booking-manager' ) , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => true , 'attr' => array() , 'value' => 'today' , 'options' => $wpbc_options ) ); ?> 'text' , 'title' => __('Offset', 'booking-manager' ) , 'placeholder' => '' , 'description' => '' , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => 'wpbm_text_near_select' , 'css' => 'width:7em;' , 'only_field' => true , 'attr' => array() , 'value' => '' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_from_offset_type' , array( 'type' => 'select' , 'title' => '' , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'class' => 'wpbm_select_near_text wpbm_from_offset' , 'css' => 'width:6em;' , 'only_field' => true , 'attr' => array() , 'value' => 'day' , 'options' => array( 'day' => __( 'days' ,'booking-manager' ) , 'hour' => __( 'hours' ,'booking-manager' ) , 'minute' => __( 'minutes' ,'booking-manager' ) , 'second' => __( 'seconds' ,'booking-manager' ) ) //, 'options' => array_combine( range( ( date('Y') - 1 ), ( date('Y') + 10 ) ), range( ( date('Y') - 1 ), ( date('Y') + 10 ) ) ) ) ); ?>
__( 'Now', 'booking-manager' ) , 'today' => __( '00:00 Today', 'booking-manager' ) , 'week' => __( 'End of current week', 'booking-manager' ) , 'month-start' => __( 'Start of current month', 'booking-manager' ) , 'month-end' => __( 'End of current month', 'booking-manager' ) , 'year-end' => __( 'End of current year', 'booking-manager' ) , 'any' => __( 'The end of time', 'booking-manager' ) , 'date' => __( 'Specific date / time', 'booking-manager' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_until' , array( 'type' => 'select' , 'title' => __('Until', 'booking-manager' ) , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => '' , 'css' => 'margin-right:10px;' , 'only_field' => true , 'attr' => array() , 'value' => 'year-end' , 'options' => $wpbc_options ) ); ?> 'text' , 'title' => __('Offset', 'booking-manager' ) , 'placeholder' => '' , 'description' => '' , 'description_tag' => 'span' , 'group' => $shortcode_section_key , 'tr_class' => $shortcode_section_key . '_standard_section' , 'class' => 'wpbm_text_near_select' , 'css' => 'width:7em;' , 'only_field' => true , 'attr' => array() , 'value' => '' ) ); WPBM_Settings_API::field_select_row_static( 'wpbm_ics_import_until_offset_type' , array( 'type' => 'select' , 'title' => '' , 'description' => '' , 'description_tag' => 'span' , 'label' => '' , 'multiple' => false , 'group' => $shortcode_section_key , 'class' => 'wpbm_select_near_text wpbm_until_offset' , 'css' => 'width:6em;' , 'only_field' => true , 'attr' => array() , 'value' => 'day' , 'options' => array( 'day' => __( 'days' ,'booking-manager' ) , 'hour' => __( 'hours' ,'booking-manager' ) , 'minute' => __( 'minutes' ,'booking-manager' ) , 'second' => __( 'seconds' ,'booking-manager' ) ) //, 'options' => array_combine( range( ( date('Y') - 1 ), ( date('Y') + 10 ) ), range( ( date('Y') - 1 ), ( date('Y') + 10 ) ) ) ) ); ?>
opl // Booking Manager => Plugin Name // In "wpbm_get_tiny_tabs" => define shortcodes // Define func content wpbm_shortcode_ [ wpbm_ics_listing ]