public function add_sub_menu($param) { /* $this->sub_menu[] = array( selected => true , 'title' => __('Google Calendar', 'wpdev-booking') , 'description' => __('Customization of synchronization with Google Calendar', 'wpdev-booking') , 'header' => __('Synchronization Bookings Settings', 'wpdev-booking') , 'visibility_container' => 'visibility_container_sync_google_calendar' , 'active_status' => 'booking_is_sync_google_calendar' , 'style' => '' ); */ // Predefined parameters $new_sub_menu_element = array('style' => '', 'selected' => false, 'active_status' => false); // Define other parameters foreach ($param as $key => $value) { $new_sub_menu_element[$key] = $value; } // Add Sub Menu item $this->sub_menu[] = $new_sub_menu_element; // HOOK: on submit of settings form if (isset($new_sub_menu_element['settings_submit']) && !empty($this->submit_form)) { add_bk_action('wpbc_submit_of_settings_form_' . $this->submit_form, $new_sub_menu_element['settings_submit']); } // Content of Settings page if (isset($new_sub_menu_element['settings_content']) && isset($new_sub_menu_element['visibility_container'])) { add_bk_action('wpbc_content_of_settings_form_' . $new_sub_menu_element['visibility_container'], $new_sub_menu_element['settings_content']); } }
function wpdev_booking() { // Add settings top line before all other menu items. add_bk_action('wpdev_booking_settings_top_menu', array($this, 'settings_menu_top_line')); add_bk_action('wpdev_booking_settings_show_content', array(&$this, 'settings_menu_content')); $this->captcha_instance = new wpdevReallySimpleCaptcha(); $this->prefix = 'wpdev_bk'; $this->settings = array('custom_buttons' => array(), 'custom_buttons_func_name_from_js_file' => 'set_bk_buttons', 'custom_editor_button_row' => 1); $this->icon_button_url = WPDEV_BK_PLUGIN_URL . '/img/calendar-16x16.png'; if (class_exists('wpdev_bk_personal')) { $this->wpdev_bk_personal = new wpdev_bk_personal(); } else { $this->wpdev_bk_personal = false; } // Create admin menu add_action('admin_menu', array(&$this, 'add_new_admin_menu')); // Client side print JSS add_action('wp_head', array(&$this, 'client_side_print_booking_head')); // Add custom buttons add_action('init', 'wpdev_bk_add_custom_buttons'); add_action('admin_head', 'wpdev_bk_insert_wpdev_button'); // Remove the scripts, which generated conflicts add_action('admin_init', array(&$this, 'wpdevbk_remove_conflict_scripts'), 999); // Set loading translation add_action('init', 'load_bk_Translation', 1000); // Load footer data add_action('wp_footer', array(&$this, 'wp_footer')); // User defined - hooks add_action('wpdev_bk_add_calendar', array(&$this, 'add_calendar_action'), 10, 2); add_action('wpdev_bk_add_form', array(&$this, 'add_booking_form_action'), 10, 2); add_bk_action('wpdevbk_add_form', array(&$this, 'add_booking_form_action')); add_filter('wpdev_bk_get_form', array(&$this, 'get_booking_form_action'), 10, 2); add_bk_filter('wpdevbk_get_booking_form', array(&$this, 'get_booking_form_action')); add_filter('wpdev_bk_get_showing_date_format', array(&$this, 'get_showing_date_format'), 10, 1); add_filter('wpdev_bk_is_next_day', array(&$this, 'is_next_day'), 10, 2); add_bk_filter('wpdev_booking_table', array(&$this, 'booking_table')); // Show dashboard widget for the settings add_bk_action('dashboard_bk_widget_show', array(&$this, 'dashboard_bk_widget_show')); // Get script for calendar activation add_bk_filter('get_script_for_calendar', array(&$this, 'get_script_for_calendar')); add_bk_filter('pre_get_calendar_html', array(&$this, 'pre_get_calendar_html')); add_bk_filter('wpdev_check_for_active_language', 'wpdev_check_for_active_language'); // Check content according language shortcodes // S H O R T C O D E s - Booking add_shortcode('booking', array(&$this, 'booking_shortcode')); add_shortcode('bookingcalendar', array(&$this, 'booking_calendar_only_shortcode')); add_shortcode('bookingform', array(&$this, 'bookingform_shortcode')); add_shortcode('bookingedit', array(&$this, 'bookingedit_shortcode')); add_shortcode('bookingsearch', array(&$this, 'bookingsearch_shortcode')); add_shortcode('bookingsearchresults', array(&$this, 'bookingsearchresults_shortcode')); add_shortcode('bookingselect', array(&$this, 'bookingselect_shortcode')); // Add settings link at the plugin page add_filter('plugin_action_links', array(&$this, 'plugin_links'), 10, 2); add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta_bk'), 10, 4); add_action('wp_dashboard_setup', array($this, 'dashboard_bk_widget_setup')); add_bk_action('wpdev_booking_technical_booking_section', array(&$this, 'wpdev_booking_technical_booking_section')); // register widget - New, since WordPress - 2.8 add_action('widgets_init', create_function('', 'return register_widget("BookingWidget");')); // Install / Uninstall register_activation_hook(WPDEV_BK_FILE, array(&$this, 'wpdev_booking_activate_initial')); register_deactivation_hook(WPDEV_BK_FILE, array(&$this, 'wpdev_booking_deactivate')); add_filter('upgrader_post_install', array(&$this, 'install_in_bulk_upgrade'), 10, 2); //Todo: fix Upgrade during bulk upgrade of plugins add_bk_action('wpdev_booking_activate_user', array(&$this, 'wpdev_booking_activate')); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// add_action('admin_head', array(&$this, 'wpdevbk_scripts_enqueue')); add_action('wp_enqueue_scripts', array(&$this, 'wpdevbk_scripts_enqueue')); /* // Force for checking plugins updates ////////// $current = get_site_transient( 'update_plugins' ); $current->last_checked = 0; $plugin_key_name = WPDEV_BK_PLUGIN_DIRNAME . '/' . WPDEV_BK_PLUGIN_FILENAME ; if (isset($current->checked[$plugin_key_name])) { // $current->checked[$plugin_key_name] = '0.' . $current->checked[$plugin_key_name]; } set_site_transient( 'update_plugins', $current ); /**/ add_filter('site_transient_update_plugins', array(&$this, 'plugin_non_update'), 10, 1); // donot show update for Personal active plugin // pre_set_site_transient_update_plugins // add_action( 'after_plugin_row', array(&$this,'after_plugin_row'),10,3 ); // add_filter( 'plugin_row_meta', array(&$this, 'plugin_row_meta'), 10, 4 ); // donot show update for Personal active plugin // Load the jQuery in the client side if (!is_admin()) { add_action('wp_enqueue_scripts', array(&$this, 'bc_enqueue_scripts'), 100000); } if (defined('WP_ADMIN')) { $booking_version_num = get_option('booking_version_num'); if ($booking_version_num === false) { $booking_version_num = '0'; } if (version_compare(WP_BK_VERSION_NUM, $booking_version_num) > 0) { add_action('plugins_loaded', array(&$this, 'wpdev_booking_activate_initial')); } } }
} } } // Re-Update booking resource TYPE if its needed here if (isset($params["skip_page_checking_for_updating"])) { $skip_page_checking_for_updating = (bool) $params["skip_page_checking_for_updating"]; } else { $skip_page_checking_for_updating = true; } make_bk_action('wpdev_booking_reupdate_bk_type_to_childs', $booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time), $formdata, $skip_page_checking_for_updating); make_bk_action('finish_check_multiuser_params_for_client_side', $bktype); // Deactivate working with specific user in WP MU return $booking_id; } add_bk_filter('wpbc_add_new_booking_filter', 'wpbc_add_new_booking'); add_bk_action('wpbc_add_new_booking', 'wpbc_add_new_booking'); /* make_bk_action('wpbc_add_new_booking' , array( 'bktype' => 1 , 'dates' => '27.08.2014, 28.08.2014, 29.08.2014' , 'form' => 'select-one^rangetime1^10:00 - 12:00~text^name1^Jo~text^secondname1^Smith~email^email1^smith@gmail.com~text^phone1^678676678~text^address1^Linkoln Street~text^city1^London~text^postcode1^78788~select-one^country1^GB~select-one^visitors1^1~select-one^children1^1~textarea^details1^Rooms with sea view~checkbox^term_and_condition1[]^I Accept term and conditions' , 'is_send_emeils' => 0 // , 'booking_form_type' => '' // , 'wpdev_active_locale' => 'en_US' ) ); /**/ /** Check if dates intersect with other dates array * * @param array $dates_for_check - Dates Array of specific booking, which we checking - date in SQL format: '2014-11-21 10:00:01' * @param array $dates_exist - Other dates from booking resource(s), that already exist - date in SQL format: '2014-11-21 15:00:02' * @return bool true - intersect, false - not intersect */
function __construct() { // Add settings top line before all other menu items. add_bk_action('wpdev_booking_settings_top_menu', array($this, 'settings_menu_top_line')); add_bk_action('wpdev_booking_settings_show_content', array(&$this, 'settings_menu_content')); $this->captcha_instance = new wpdevReallySimpleCaptcha(); $this->prefix = 'wpdev_bk'; $this->settings = array('custom_buttons' => array(), 'custom_buttons_func_name_from_js_file' => 'set_bk_buttons', 'custom_editor_button_row' => 1); $this->icon_button_url = WPDEV_BK_PLUGIN_URL . '/img/bc-16x16.png'; if (class_exists('wpdev_bk_personal')) { $this->wpdev_bk_personal = new wpdev_bk_personal(); } else { $this->wpdev_bk_personal = false; } // Create admin menu add_action('admin_menu', array(&$this, 'add_new_admin_menu')); // Set loading translation add_action('plugins_loaded', 'load_bk_Translation', 1000); // Check content according language shortcodes add_bk_filter('wpdev_check_for_active_language', 'wpdev_check_for_active_language'); // Show dashboard widget for the settings add_bk_action('dashboard_bk_widget_show', array(&$this, 'dashboard_bk_widget_show')); // User defined - hooks add_action('wpdev_bk_add_calendar', array(&$this, 'add_calendar_action'), 10, 2); add_action('wpdev_bk_add_form', array(&$this, 'add_booking_form_action'), 10, 2); add_bk_action('wpdevbk_add_form', array(&$this, 'add_booking_form_action')); add_filter('wpdev_bk_get_form', array(&$this, 'get_booking_form_action'), 10, 2); add_bk_filter('wpdevbk_get_booking_form', array(&$this, 'get_booking_form_action')); add_filter('wpdev_bk_get_showing_date_format', array(&$this, 'get_showing_date_format'), 10, 1); add_filter('wpdev_bk_is_next_day', array(&$this, 'is_next_day'), 10, 2); // Get script for calendar activation add_bk_filter('get_script_for_calendar', array(&$this, 'get_script_for_calendar')); add_bk_filter('pre_get_calendar_html', array(&$this, 'pre_get_calendar_html')); // S H O R T C O D E s - Booking add_shortcode('booking', array(&$this, 'booking_shortcode')); add_shortcode('bookingcalendar', array(&$this, 'booking_calendar_only_shortcode')); add_shortcode('bookingform', array(&$this, 'bookingform_shortcode')); add_shortcode('bookingedit', array(&$this, 'bookingedit_shortcode')); add_shortcode('bookingsearch', array(&$this, 'bookingsearch_shortcode')); add_shortcode('bookingsearchresults', array(&$this, 'bookingsearchresults_shortcode')); add_shortcode('bookingselect', array(&$this, 'bookingselect_shortcode')); add_shortcode('bookingresource', array(&$this, 'bookingresource_shortcode')); add_shortcode('bookingtimeline', array(&$this, 'bookingtimeline_shortcode')); // Add settings link at the plugin page add_filter('plugin_action_links', array(&$this, 'plugin_links'), 10, 2); add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta_bk'), 10, 4); add_action('wp_dashboard_setup', array($this, 'dashboard_bk_widget_setup')); add_bk_action('wpdev_booking_technical_booking_section', array(&$this, 'wpdev_booking_technical_booking_section')); // Install / Uninstall register_activation_hook(WPDEV_BK_FILE, array(&$this, 'wpdev_booking_activate_initial')); register_deactivation_hook(WPDEV_BK_FILE, array(&$this, 'wpdev_booking_deactivate')); add_filter('upgrader_post_install', array(&$this, 'install_in_bulk_upgrade'), 10, 2); //Todo: fix Upgrade during bulk upgrade of plugins add_bk_action('wpdev_booking_activate_user', array(&$this, 'wpdev_booking_activate')); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (defined('WP_ADMIN')) { $booking_version_num = get_option('booking_version_num'); if ($booking_version_num === false) { $booking_version_num = '0'; } if (version_compare(WP_BK_VERSION_NUM, $booking_version_num) > 0) { add_action('plugins_loaded', array(&$this, 'wpdev_booking_activate_initial')); } else { // Check if we was update from free to paid or from lower to higher versions, and do not make normal activation. In this case we need to make it. $is_make_activation = false; if (class_exists('wpdev_bk_personal') && !wpbc_is_table_exists('bookingtypes')) { $is_make_activation = true; } if (!$is_make_activation && class_exists('wpdev_bk_biz_s') && wpbc_is_field_in_table_exists('booking', 'pay_request') == 0) { $is_make_activation = true; } if (!$is_make_activation && class_exists('wpdev_bk_biz_m') && !wpbc_is_table_exists('booking_types_meta')) { $is_make_activation = true; } if (!$is_make_activation && class_exists('wpdev_bk_biz_l') && !wpbc_is_table_exists('booking_coupons')) { $is_make_activation = true; } if (!$is_make_activation && class_exists('wpdev_bk_multiuser') && wpbc_is_field_in_table_exists('booking_coupons', 'users') == 0) { $is_make_activation = true; } if ($is_make_activation) { // add_action('admin_init', array(&$this,'silent_deactivate_WPBC')); add_action('plugins_loaded', array(&$this, 'wpdev_booking_activate_initial')); } } } }
style="float:right;" onclick="document.forms['post_settings_email_templates'].submit();"> <div class="clear" style="height:0px;"></div> <script type="text/javascript"> function recheck_active_itmes_in_top_menu( internal_checkbox, top_checkbox ){ if (document.getElementById( internal_checkbox ).checked != document.getElementById( top_checkbox ).checked ) { document.getElementById( top_checkbox ).checked = document.getElementById( internal_checkbox ).checked; if ( document.getElementById( top_checkbox ).checked ) jQuery('#' + top_checkbox ).parent().removeClass('booking-submenu-tab-disabled'); else jQuery('#' + top_checkbox ).parent().addClass('booking-submenu-tab-disabled'); } } jQuery(document).ready( function(){ recheck_active_itmes_in_top_menu('is_email_reservation_adress', 'booking_is_email_reservation_adress_dublicated'); recheck_active_itmes_in_top_menu('is_email_newbookingbyperson_adress', 'booking_is_email_newbookingbyperson_adress_dublicated'); recheck_active_itmes_in_top_menu('is_email_approval_adress', 'booking_is_email_approval_adress_dublicated'); recheck_active_itmes_in_top_menu('is_email_deny_adress', 'booking_is_email_declined_adress_dublicated'); }); </script> </div> </div> <?php } //$this->wpdev_booking_settings_top_menu_submenu_line_for_form_fields(); } if (!class_exists('wpdev_bk_personal')) { add_bk_action('wpdev_booking_settings_top_menu_submenu_line', 'wpbc_booking_settings_top_menu_submenu_line'); }
add_bk_option('booking_gcal_events_max', '25'); add_bk_option('booking_gcal_api_key', ''); add_bk_option('booking_gcal_timezone', ''); add_bk_option('booking_gcal_is_send_email', 'Off'); add_bk_option('booking_gcal_auto_import_is_active', 'Off'); add_bk_option('booking_gcal_auto_import_time', '24'); add_bk_option('booking_gcal_events_form_fields', 'a:3:{s:5:"title";s:9:"text^name";s:11:"description";s:12:"text^details";s:5:"where";s:5:"text^";}'); } add_bk_action('wpdev_booking_activation', 'wpbc_sync_gcal_activate'); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Deactivation //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function wpbc_sync_gcal_deactivate() { delete_bk_option('booking_gcal_feed'); delete_bk_option('booking_gcal_events_from'); delete_bk_option('booking_gcal_events_from_offset'); delete_bk_option('booking_gcal_events_from_offset_type'); delete_bk_option('booking_gcal_events_until'); delete_bk_option('booking_gcal_events_until_offset'); delete_bk_option('booking_gcal_events_until_offset_type'); delete_bk_option('booking_gcal_events_max'); delete_bk_option('booking_gcal_api_key'); delete_bk_option('booking_gcal_timezone'); delete_bk_option('booking_gcal_is_send_email'); delete_bk_option('booking_gcal_auto_import_is_active'); delete_bk_option('booking_gcal_auto_import_time'); delete_bk_option('booking_gcal_events_form_fields'); } add_bk_action('wpdev_booking_deactivation', 'wpbc_sync_gcal_deactivate');
function __construct() { $this->actions = array(); add_action('init', array($this, 'load'), 9); add_bk_action('wpdev_booking_deactivation', array(&$this, 'deactivate')); }