FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
booking
/
includes
/
_news
Edit File: wpbc_news.php
<?php /** * @version 1.0 * @package Booking Calendar * @subpackage Show news * @category Support * * @author wpdevelop * @link https://wpbookingcalendar.com/ * @email info@wpbookingcalendar.com * * @modified 2023-04-08 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly // FixIn: 9.6.1.8. /** * Show message in top header * * @param $page_tag * @param $active_page_tab * @param $active_page_subtab * * @return void */ function wpbc_show_message_top( $page_tag, $active_page_tab, $active_page_subtab ) { if ( wpbc_is_this_demo() ) { return; } $version = wpbc_get_version_type__and_mu(); // if ( 'free' != $version ) { return; } ?> <style type="text/css"> .wpbc_message_wrapper { margin-left: auto; flex: 0 1 auto; } .wpbc_header_news { position: relative; z-index: 99; } </style><?php ?> <div class="wpbc_message_wrapper <?php echo 'wpbc__version__' . esc_attr( $version ); ?>"><?php // Send Ajax request to get info about the notifications wp_nonce_field('wpbc_ajax_message_top_nonce', "wpbc_ajax_message_top_nonce" , true , true ); ?><script type="text/javascript"> jQuery(document).ready(function(){ var wpbc_ajax_sent_timer = setTimeout( function (){ console.log( '== Before Ajax Send - SHOW_MESSAGE_TOP ==' ); jQuery.ajax({ url: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>', type:'POST', success: function (data, textStatus){ // console.log( 'AJAX _ SHOW_MESSAGE_TOP', data ); if ( textStatus == 'success' ) { jQuery( '.wpbc_message_wrapper' ).html( data[ 'ajx_show_content' ] ); } console.log( '== Response - SHOW_MESSAGE_TOP ==' ); }, error: function (XMLHttpRequest, textStatus, errorThrown){ console.log( 'Ajax sending Error:', XMLHttpRequest, textStatus, errorThrown ); }, data:{ action : 'SHOW_MESSAGE_TOP', wpbc_nonce: document.getElementById( 'wpbc_ajax_message_top_nonce' ).value } }); }, 2000 ); }); </script><?php ?></div><?php } add_bk_action('wpbc_h1_header_content_end', 'wpbc_show_message_top'); /** * Send Ajax request for getting message in top header * * @return void */ function wpbc_ajax__get_message_top(){ $ajax_errors = new WPBC_AJAX_ERROR_CATCHING(); // Security ----------------------------------------------------------------------------------------------- // in Ajax Post: 'nonce': wpbc_ajx_booking_listing.get_secure_param( 'nonce' ), $action_name = 'wpbc_ajax_message_top_nonce'; $nonce_post_key = 'wpbc_nonce'; $result_check = check_ajax_referer( $action_name, $nonce_post_key ); // $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id(); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing // Check if there were some errors -------------------------------------------------------------------------------- $error_messages = $ajax_errors->get_error_messages(); $top_message = wpbc_send_request__get_top_message(); //------------------------------------------------------------------------------------------------------------------ // Send JSON. Its will make "wp_json_encode" - so pass only array, and This function call wp_die( '', '', array( 'response' => null, ) ) Pass JS OBJ: response_data in "jQuery.post( " function on success. wp_send_json( array( 'ajx_show_content' => $top_message, 'ajx_error_messages' => $error_messages ) ); } // Ajax Handlers. add_action( 'wp_ajax_' . 'SHOW_MESSAGE_TOP', 'wpbc_ajax__get_message_top' ); // Admin & Client (logged-in users). Note. "locale_for_ajax" rechecked in wpbc-ajax.php /** * Get top message * * @return array|false|mixed|string|string[] */ function wpbc_send_request__get_top_message(){ $is_apply_in_demo = true; $v=array(); if (class_exists('wpdev_bk_personal')) $v[] = 'wpdev_bk_personal'; if (class_exists('wpdev_bk_biz_s')) $v[] = 'wpdev_bk_biz_s'; if (class_exists('wpdev_bk_biz_m')) $v[] = 'wpdev_bk_biz_m'; if (class_exists('wpdev_bk_biz_l')) $v[] = 'wpdev_bk_biz_l'; if (class_exists('wpdev_bk_multiuser')) $v[] = 'wpdev_bk_multiuser'; $obc_settings = array(); $ver = get_bk_option( 'bk_version_data' ); if ( $ver !== false ) { $obc_settings = array( 'subscription_key'=>wp_json_encode($ver) ); } $params = array( 'action' => 'get_top_message' ); $request = new WP_Http(); $result = $request->request( OBC_CHECK_URL . 'info/message_top/' // 'http://real.wpbookingcalendar.com/info/message_top/' , array( 'method' => 'POST', 'timeout' => 15, 'body' => $params ) ); if ( ! is_wp_error( $result ) && ( $result['response']['code'] == '200' ) && ( true ) ) { $string = ( $result['body'] ); //$string = str_replace( "'", ''', $string ); $shortcodes_arr = wpbc_get_shortcodes_in_text__as_unique_replace( $string , array( 'wpbc_dismiss' ) ); $string = $shortcodes_arr['content']; $is_panel_visible = false; foreach ( $shortcodes_arr['shortcodes'] as $shortcode_text_to_replace => $shortcode_params_arr ) { if ( isset( $shortcode_params_arr['params']['id'] ) ) { ob_start(); ob_clean(); $is_panel_visible = wpbc_is_dismissed( $shortcode_params_arr['params']['id'], array( 'is_apply_in_demo' => $is_apply_in_demo ) ); // This function also display 'Dismiss' button $new_html = ob_get_contents(); ob_end_clean(); $string = str_replace( '[' . $shortcode_text_to_replace . ']', $new_html, $string ); } } if ( $is_panel_visible ) { //$string = str_replace( 'script', 'ajax_script', $string ); return $string; } } return ''; }
Save
Back