FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
booking
/
includes
/
page-bookings
Edit File: bookings__page.php
<?php /* * @package: AJX_Bookings Page * @category: o Email Reminders * @description: Define AJX_Bookings in admin settings page. - Sending friendly email reminders based on custom ajx_booking. * Plugin URI: https://oplugins.com/plugins/email-reminders/#premium * Author URI: https://oplugins.com * Author: wpdevelop, oplugins * Version: 0.0.1 * @modified 2020-05-11 */ //FixIn: 9.2.1 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly /** Show Content * Update Content * Define Slug * Define where to show */ class WPBC_Page_AJX_Bookings extends WPBC_Page_Structure { // public function __construct() { // // parent::__construct(); // // } public function in_page() { return 'wpbc'; } public function tabs() { $is_full_screen = WPBC_User_Custom_Data_Saver::get_user_data_value( wpbc_get_current_user_id(), 'is_full_screen' ); $is_full_screen = ( 'On' === $is_full_screen ); $tabs = array(); $tabs['vm_booking_listing'] = array( 'is_show_top_path' => false, // true | false. By default value is: false. 'is_show_top_navigation' => true, // true | false. By default value is: false. 'left_navigation__default_view_mode' => ( $is_full_screen ) ? 'compact' : 'min', // '' | 'min' | 'compact' | 'max' | 'none'. By default value is: ''. 'page_title' => false, // Header - Title. If false, than hidden. 'page_description' => false, // Header - Title Description. If false, than hidden. 'title' => __( 'Booking Listing', 'booking' ), // Menu - Title. 'hint' => __( 'Booking Listing', 'booking' ), // Menu - Mouse Over Hint. 'font_icon' => 'wpbc-bi-collection', // Menu - Icon. 'link' => '', // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link. 'position' => '', // 'left' | 'right' | '' -- Default is ''. 'css_classes' => '', // CSS classes. 'icon' => '', // Icon - link to the real PNG img. 'default' => false, // Is this tab activated by default or not: true || false. 'disabled' => false, // Is this tab disabled: true || false. 'hided' => true, // Is this tab hided: true || false. 'subtabs' => array(), ); // $subtabs = array(); // $tabs[ 'items' ][ 'subtabs' ] = $subtabs; return $tabs; } public function content() { do_action( 'wpbc_hook_settings_page_header', 'page_booking_listing' ); // Define Notices Section and show some static messages, if needed. if ( ! wpbc_is_mu_user_can_be_here( 'activated_user' ) ) { return false; // Check if MU user activated, otherwise show Warning message. } // ------------------------------------------------------------------------------------------------------------- // Get and escape request parameters // ------------------------------------------------------------------------------------------------------------- $user_request = new WPBC_AJX__REQUEST( array( 'db_option_name' => 'booking_listing_request_params', 'user_id' => wpbc_get_current_user_id(), 'request_rules_structure' => wpbc_ajx_get__request_params__names_default(), ) ); $escaped_search_request_params = false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing if ( empty( $_REQUEST['overwrite'] ) ) { $escaped_search_request_params = $user_request->get_sanitized__saved__user_request_params(); // Get Saved. } // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing if ( ( false === $escaped_search_request_params ) || ( ! empty( $_REQUEST['overwrite'] ) ) ) { // This request was not saved before, then get sanitized direct parameters, like: $_REQUEST['resource_id']. $request_prefix = false; $escaped_search_request_params = $user_request->get_sanitized__in_request__value_or_default( $request_prefix ); // Direct request: $_REQUEST['resource_id'] //. } // ------------------------------------------------------------------------------------------------------------- // Submit. $submit_form_name = 'wpbc_ajx_booking_form'; // Define form name. ?><span class="wpdevelop"><?php // BS UI CSS Class. wpbc_js_for_bookings_page(); // JavaScript functions. wpbc_ajx_bookings_toolbar( $escaped_search_request_params ); ?></span><?php // BS UI CSS Class. // TODO: continue here with this new toolbar // wpbc_ui__toolbar__bo_listing( $escaped_search_request_params ); ?><div id="wpbc_log_screen" class="wpbc_log_screen"></div><?php // Content ----------------------------------------------------------------------------------------------------. ?> <div class="clear" style="margin-bottom:10px;"></div> <span class="metabox-holder"> <form style="min-height:459px;" name="<?php echo esc_attr( $submit_form_name ); ?>" id="<?php echo esc_attr( $submit_form_name ); ?>" action="" method="post"> <div class="wpbc_ajx_trigger_hooks"></div> <?php // N o n c e field, and key for checking S u b m i t. wp_nonce_field( 'wpbc_settings_page_' . $submit_form_name ); ?><input type="hidden" name="is_form_sbmitted_<?php echo esc_attr( $submit_form_name ); ?>" id="is_form_sbmitted_<?php echo esc_attr( $submit_form_name ); ?>" value="1"/><?php // wpbc_ajx_booking_modify_container_show(); // Container for showing Edit ajx_booking and define Edit and Delete ajx_booking JavaScript vars. $is_test_sql_directly = false; if ( ! $is_test_sql_directly ) { $this->show_ajx_booking_listing_container_ajax( $escaped_search_request_params ); $this->show_pagination_container(); } else { $this->show_ajx_booking_listing_container_directly(); // Useful for direct showing of listing without the ajax request, its requirement JavaScript to show data in template!. } ?><div class="clear"></div><?php ?> </form> </span> <?php do_action( 'wpbc_hook_settings_page_footer', 'wpbc-ajx_booking' ); wpbc_welcome_panel(); // Welcome Panel (links). // == Hidden Templates for - Booking Actions == do_action( 'wpbc_hook_booking_template__hidden_templates' ); wpbc_show_booking_footer(); // Show rating line. } private function show_pagination_container(){ ?> <div class="wpbc_ajx_booking_pagination"></div> <?php wpbc_clear_div(); $wpbc_pagination = new WPBC_Pagination(); $wpbc_pagination->init( array( 'load_on_page' => 'wpbc-ajx_booking', 'container_header' => '.wpbc_ajx_booking_pagination_header', 'container_footer' => '.wpbc_ajx_booking_pagination_footer', 'container' => '.wpbc_ajx_booking_pagination', 'on_click' => 'wpbc_ajx_booking_pagination_click' // onclick = "javascript: wpbc_ajx_booking_pagination_click( page_num );" - need to define this function in JS file )); /** $wpbc_pagination->show( array( // Its showing with JavaScript on document ready 'page_active' => 3, 'pages_count' => 20 )); /**/ } private function show_ajx_booking_listing_container_ajax( $escaped_search_request_params ) { ?> <div class="wpbc__wrap__booking_listing"> <div class="wpbc__list__table wpbc_selectable_table"> <?php $this->spins_loading_container(); ?> </div> </div> <script type="text/javascript"> jQuery(document).ready(function () { // Set Security - Nonce for Ajax - Listing wpbc_ajx_booking_listing.set_secure_param( 'nonce', '<?php echo esc_attr( wp_create_nonce( 'wpbc_ajx_booking_listing_ajx' . '_wpbcnonce' ) ); ?>' ); wpbc_ajx_booking_listing.set_secure_param( 'user_id', '<?php echo esc_attr( wpbc_get_current_user_id() ); ?>' ); wpbc_ajx_booking_listing.set_secure_param( 'locale', '<?php echo esc_attr( get_user_locale() ); ?>' ); // Set other parameters wpbc_ajx_booking_listing.set_other_param( 'listing_container', '.wpbc__list__table' ); wpbc_ajx_booking_listing.set_other_param( 'pagination_container', '.wpbc_ajx_booking_pagination' ); wpbc_ajx_booking_listing.set_other_param( 'pagination_container_header', '.wpbc_ajx_booking_pagination_header' ); wpbc_ajx_booking_listing.set_other_param( 'pagination_container_footer', '.wpbc_ajx_booking_pagination_footer' ); // Send Ajax request and show listing after this. wpbc_ajx_booking_send_search_request_with_params( <?php echo wp_json_encode( $escaped_search_request_params ); ?> ); }); </script> <?php } /** * Show Spin Loading container. * * @return void */ private function spins_loading_container() { ?> <div class="wpbc_spins_loading_container"> <div class="wpbc_booking_form_spin_loader"> <div class="wpbc_spins_loader_wrapper"> <div class="wpbc_spins_loader_mini"></div> </div> </div> <span> <?php esc_html_e( 'Loading', 'booking' ); echo ' ...'; ?> </span> </div> <?php } private function show_ajx_booking_listing_container_directly(){ //TODO: We need to send Ajax request and then show the listing (its will make one same way of showing listing and pagination)! $my_ajx_booking = new WPBC_AJX_Bookings; //////////////////////////////////// // 0. Check Nonce if Ajax ( ! used now ) //////////////////////////////////// if ( 0 ){ $action_name = 'wpbc_search_field' . '_wpbcnonce'; // $_POST['element_id'] . '_wpbcnonce'; $nonce_post_key = 'nonce'; $result_check = check_ajax_referer( $action_name, $nonce_post_key ); } //////////////////////////////////// // 1. Direct Clean Params //////////////////////////////////// $request_params_ajx_booking = array( 'page_num' => array( 'validate' => 'd', 'default' => 1 ) , 'page_items_count' => array( 'validate' => 'd', 'default' => 10 ) , 'sort' => array( 'validate' => array( 'booking_id' ), 'default' => 'booking_id' ) , 'sort_type' => array( 'validate' => array( 'ASC', 'DESC'),'default' => 'DESC' ) , 'status' => array( 'validate' => 's', 'default' => '' ) , 'keyword' => array( 'validate' => 's', 'default' => '' ) , 'ru_create_date' => array( 'validate' => 'date', 'default' => '' ) ); $request_params_values = array( // Usually $request_params_values is $_REQUEST 'page_num' => 1, 'page_items_count' => 3, 'sort' => 'booking_id', 'sort_type' => 'DESC', 'status' => '', 'keyword' => '', 'ru_create_date' => '' ); $request_params = wpbc_sanitize_params_in_arr( $request_params_values, $request_params_ajx_booking ); //////////////////////////////////// // 2. Get items array from DB //////////////////////////////////// $items_arr = wpbc_ajx_get_booking_data_arr( $request_params ); debuge($items_arr); // Show Pagination - $total_num_of_items_in_all_pages = $sql_res[ [ 'count' ] ]; // $wpbc_pagination->show_pagination( // $request_params_values['page_num'], // ceil( $sql_res[ [ 'count' ] ] / $request_params_values['page_items_count'] ) // ); } } add_action( 'wpbc_menu_created', array( new WPBC_Page_AJX_Bookings(), '__construct' ) ); // Executed after creation of Menu.
Save
Back