FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
booking
/
core
/
lib
Edit File: wpbc-ajax.php
<?php /** * @version 1.0 * @package Booking Calendar * @subpackage Ajax Responder * @category Bookings * * @author wpdevelop * @link https://wpbookingcalendar.com/ * @email info@wpbookingcalendar.com * * @modified 2014.05.26 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly // --------------------------------------------------------------------------------------------------------------------- // A j a x H o o k s f o r s p e c i f i c A c t i o n s ///// // --------------------------------------------------------------------------------------------------------------------- //FixIn: Flex TimeLine 1.0 function wpbc_ajax_WPBC_FLEXTIMELINE_NAV() { // if ( ! wpbc_check_nonce_in_admin_panel( $_POST['action'] ) ) return false; //FixIn: 7.2.1.10 // This line for admin panel if ( wpbc_is_use_nonce_at_front_end() ) { // FixIn: 10.1.1.2. // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $nonce = ( isset( $_REQUEST['wpbc_nonce'] ) ) ? $_REQUEST['wpbc_nonce'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized if ( ! wp_verify_nonce( $nonce, $_POST['action'] ) ) { // This nonce is not valid. /* translators: 1: ... */ wp_die( wp_kses_post( sprintf( __( '%1$sError!%2$s Request do not pass security check! Please refresh the page and try one more time.', 'booking' ), '<strong>', '</strong>' ) . '<br/>' . sprintf( __( 'Please check more %1$shere%2$s', 'booking' ), '<a href="https://wpbookingcalendar.com/faq/request-do-not-pass-security-check/?after_update=10.1.1" target="_blank">', '</a>.' ) // FixIn: 8.8.3.6. ) ); // Its prevent of showing '0' et the end of request. } } make_bk_action( 'wpbc_ajax_flex_timeline' ); wp_die( '' ); // Its prevent of showing '0' et the end of request. } function wpbc_ajax_CALCULATE_THE_COST() { if ( wpbc_is_use_nonce_at_front_end() ) { // FixIn: 10.1.1.2. // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized if ( ! wpbc_check_nonce_in_admin_panel( $_POST['action'] ) ) { return false;// FixIn: 7.2.1.10. } } make_bk_action( 'wpdev_ajax_show_cost' ); } // FixIn: 9.6.3.5. function wpbc_ajax_UPDATE_APPROVE() { global $wpdb; if ( ! wpbc_check_nonce_in_admin_panel() ) { return false; // FixIn: 7.2.1.10. } // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotValidated make_bk_action( 'check_multiuser_params_for_client_side_by_user_id', sanitize_text_field( wp_unslash( $_POST['user_id'] ) ) ); // Approve or Reject? // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated $is_approve_or_pending = ( 1 == $_POST["is_approve_or_pending"] ) ? '1' : '0'; $booking_id = isset( $_POST['booking_id'] ) ? sanitize_text_field( wp_unslash( $_POST['booking_id'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ // Booking ID. $approved_id = explode( '|', $booking_id ); $approved_id = wpbc_clean_digit_or_csd( $approved_id ); // FixIn: 8.4.5.15. $denyreason = isset( $_POST['denyreason'] ) ? sanitize_textarea_field( wp_unslash( $_POST['denyreason'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ $is_send_emeils = isset( $_POST['is_send_emeils'] ) ? sanitize_text_field( wp_unslash( $_POST['is_send_emeils'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ if ( ( count( $approved_id ) > 0 ) && ( false !== $approved_id ) ) { $approved_id_str = join( ',', $approved_id ); $approved_id_str = wpbc_clean_digit_or_csd( $approved_id_str ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( false === $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}bookingdates SET approved = %s WHERE booking_id IN ( {$approved_id_str} )", $is_approve_or_pending ) ) ) { ?> <script type="text/javascript"> var my_message = '<?php echo esc_js( get_debuge_error( 'Error during updating to DB', __FILE__, __LINE__ ) ); ?>'; wpbc_admin_show_message(my_message, 'error', 30000); </script> <?php die(); } $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $curr_user = get_user_by( 'id', $my_user_id ); $user_info = $curr_user->first_name . ' ' . $curr_user->last_name . ' (' . $curr_user->user_email . ')'; // get_user_meta( $curr_user->ID, 'nickname' ). wpbc_db__add_log_info( explode(',',$approved_id_str), ( ( $is_approve_or_pending == '1' ) ? __( 'Approved by:', 'booking' ) : __( 'Declined by:', 'booking' ) ) . ' ' . $user_info ); wpbc_db_update_number_new_bookings( explode(',', $approved_id_str) ); do_action( 'wpbc_booking_approved', $approved_id_str, $is_approve_or_pending ); // FixIn: 8.7.6.1. if ( $is_approve_or_pending == '1' ) { if ( ! empty( $is_send_emeils ) ) // FixIn: 7.0.1.5. { wpbc_send_email_approved( $approved_id_str, $is_send_emeils, $denyreason ); } $all_bk_id_what_canceled = apply_bk_filter( 'cancel_pending_same_resource_bookings_for_specific_dates', false, $approved_id_str ); } else { if ( ! empty( $is_send_emeils ) ) { wpbc_send_email_deny( $approved_id_str, $is_send_emeils, $denyreason ); } } ?> <script type="text/javascript"> <?php foreach ( $approved_id as $bk_id ) { if ( $is_approve_or_pending == '1' ) { ?> set_booking_row_approved_in_timeline(<?php echo esc_attr( $bk_id ); ?>); set_booking_row_approved(<?php echo esc_attr( $bk_id ); ?>); set_booking_row_read(<?php echo esc_attr( $bk_id ); ?>); <?php } else { ?> set_booking_row_pending_in_timeline(<?php echo esc_attr( $bk_id ); ?>); set_booking_row_pending(<?php echo esc_attr( $bk_id ); ?>); <?php } } ?> <?php if ($is_approve_or_pending == '1') { ?> var my_message = '<?php echo esc_js( __( 'Set as Approved', 'booking' ) ); ?>'; <?php } else { ?> var my_message = '<?php echo esc_js( __( 'Set as Pending', 'booking' ) ); ?>'; <?php } ?> wpbc_admin_show_message(my_message, 'success', 3000); </script> <?php } } //FixIn: 6.1.1.10 function wpbc_ajax_TRASH_RESTORE() { global $wpdb; if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ make_bk_action('check_multiuser_params_for_client_side_by_user_id', $my_user_id ); $booking_id = isset( $_POST['booking_id'] ) ? sanitize_text_field( wp_unslash( $_POST['booking_id'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ // Booking ID. $denyreason = isset( $_POST['denyreason'] ) ? sanitize_textarea_field( wp_unslash( $_POST['denyreason'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ if ( ( $denyreason === __( 'Reason for cancellation here', 'booking' ) ) || ( $denyreason === __( 'Reason of cancellation here', 'booking' ) ) || ( $denyreason === 'Reason of cancel here' ) ) { $denyreason = ''; } $is_send_emeils = isset( $_POST['is_send_emeils'] ) ? sanitize_text_field( wp_unslash( $_POST['is_send_emeils'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ $approved_id = explode( '|', $booking_id ); $approved_id = wpbc_clean_digit_or_csd( $approved_id ); // FixIn: 8.4.5.15. $is_trash = isset( $_POST['is_trash'] ) ? intval( $_POST['is_trash'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ if ( ( count( $approved_id ) > 0 ) && ( $approved_id != false ) && ( $approved_id != '' ) ) { $approved_id_str = join( ',', $approved_id); $approved_id_str = wpbc_clean_like_string_for_db( $approved_id_str ); do_action( 'wpbc_booking_trash', $booking_id, $is_trash ); // FixIn: .8.7.6.2. if ( $is_trash ) { if ( ! empty( $is_send_emeils ) ) { // FixIn: 8.1.3.35. wpbc_send_email_trash( $approved_id_str, $is_send_emeils, $denyreason ); } } else { if ( ! empty( $is_send_emeils ) ) { // FixIn: 8.1.3.35. // wpbc_send_email_approved($approved_id_str, $is_send_emeils,$denyreason); // FixIn: 8.1.2.7. } } // FixIn: 10.12.1.5. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( false === $wpdb->query( "UPDATE {$wpdb->prefix}booking SET trash = {$is_trash} WHERE booking_id IN ({$approved_id_str})" ) ) { ?> <script type="text/javascript"> var my_message = '<?php echo esc_attr( html_entity_decode( esc_js( get_debuge_error( 'Error during trash booking in DB', __FILE__, __LINE__ ) ), ENT_QUOTES ) ); ?>'; wpbc_admin_show_message(my_message, 'error', 30000); </script> <?php die(); } // Update the Hash and Cost of the booking $booking_id_arr = explode( ',', $approved_id_str ); // FixIn: 8.6.1.11. foreach ( $booking_id_arr as $booking_id ) { wpbc_hash__update_booking_hash( $booking_id ); } ?> <script type="text/javascript"> <?php if ( $is_trash ) { foreach ($approved_id as $bk_id) { ?> set_booking_row_trash(<?php echo esc_attr( $bk_id ); ?>); //set_booking_row_deleted_in_timeline(<?php echo esc_attr( $bk_id ); ?>); //setTimeout(function() { set_booking_row_deleted(<?php echo esc_attr( $bk_id ); ?>); }, 1000); <?php } ?> var my_message = '<?php echo esc_js( __('Moved to trash' ,'booking') ) ; ?>'; wpbc_admin_show_message( my_message, 'success', 3000 ); <?php } else { foreach ($approved_id as $bk_id) { ?> set_booking_row_restore(<?php echo esc_attr( $bk_id ); ?>); <?php } ?> var my_message = '<?php echo esc_js( __('Restored' ,'booking') ) ; ?>'; wpbc_admin_show_message( my_message, 'success', 3000 ); <?php } ?> </script> <?php } } // FixIn: 9.6.3.5. function wpbc_ajax_DELETE_APPROVE() { global $wpdb; if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ make_bk_action('check_multiuser_params_for_client_side_by_user_id', $my_user_id ); $booking_id = isset( $_POST['booking_id'] ) ? sanitize_text_field( wp_unslash( $_POST['booking_id'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ // Booking ID. $denyreason = isset( $_POST['denyreason'] ) ? sanitize_textarea_field( wp_unslash( $_POST['denyreason'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ if ( ( $denyreason == __( 'Reason for cancellation here', 'booking' ) ) || ( $denyreason == __( 'Reason of cancellation here', 'booking' ) ) || ( $denyreason == 'Reason of cancel here' ) ) { $denyreason = ''; } $is_send_emeils = isset( $_POST['is_send_emeils'] ) ? sanitize_text_field( wp_unslash( $_POST['is_send_emeils'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended */ /* FixIn: sanitize_unslash */ $approved_id = explode( '|', $booking_id ); $approved_id = wpbc_clean_digit_or_csd( $approved_id ); // FixIn: 8.4.5.15. if ( (count($approved_id)>0) && ($approved_id !=false) && ($approved_id !='')) { $approved_id_str = join( ',', $approved_id); $approved_id_str = wpbc_clean_like_string_for_db( $approved_id_str ); do_action( 'wpbc_booking_delete', $approved_id_str ); // FixIn: 8.7.6.3. if ( ! empty( $is_send_emeils ) ) { // FixIn: 8.1.3.35. wpbc_send_email_deleted( $approved_id_str, $is_send_emeils, $denyreason ); } // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( false === $wpdb->query( "DELETE FROM {$wpdb->prefix}bookingdates WHERE booking_id IN ({$approved_id_str})" ) ) { ?> <script type="text/javascript"> var my_message = '<?php echo esc_attr( html_entity_decode( esc_js( get_debuge_error( 'Error during deleting dates in DB', __FILE__, __LINE__ ) ), ENT_QUOTES ) ); ?>'; wpbc_admin_show_message(my_message, 'error', 30000); </script> <?php die(); } // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared if ( false === $wpdb->query( "DELETE FROM {$wpdb->prefix}booking WHERE booking_id IN ({$approved_id_str})" ) ) { ?> <script type="text/javascript"> var my_message = '<?php echo esc_attr( html_entity_decode( esc_js( get_debuge_error( 'Error during deleting booking in DB', __FILE__, __LINE__ ) ), ENT_QUOTES ) ); ?>'; wpbc_admin_show_message(my_message, 'error', 30000); </script> <?php die(); } ?> <script type="text/javascript"> <?php foreach ( $approved_id as $bk_id ) { ?> set_booking_row_deleted_in_timeline(<?php echo intval( $bk_id ); ?>); set_booking_row_deleted(<?php echo intval( $bk_id ); ?>); <?php } ?> var my_message = '<?php echo esc_attr( html_entity_decode( esc_js( __( 'Deleted', 'booking' ) ), ENT_QUOTES ) ); ?>'; wpbc_admin_show_message(my_message, 'success', 3000); </script> <?php } } function wpbc_ajax_DELETE_BY_VISITOR() { if ( wpbc_is_use_nonce_at_front_end() ) { // FixIn: 10.1.1.2. // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized if ( ! wpbc_check_nonce_in_admin_panel( $_POST['action'] ) ) { return false; // FixIn: 7.2.1.10. } } make_bk_action( 'wpdev_delete_booking_by_visitor' ); } function wpbc_ajax_DELETE_BK_FORM() { if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ make_bk_action('check_multiuser_params_for_client_side_by_user_id', $my_user_id ); make_bk_action('wpbc_make_delete_custom_booking_form'); } function wpbc_ajax_USER_SAVE_WINDOW_STATE() { if ( ! wpbc_check_nonce_in_admin_panel() ) { return false; } $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $my_window = isset( $_POST['window'] ) ? sanitize_textarea_field( wp_unslash( $_POST['window'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $my_is_closed = isset( $_POST['is_closed'] ) ? intval( $_POST['is_closed'] ) : 0; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ update_user_option( $my_user_id, 'booking_win_' . $my_window, $my_is_closed ); wp_send_json_success(); // FixIn: 7.2.1.10.2 //Fix "400 Bad Request" error showing. At some situations, if Ajax request does not return anything, its will generate an issue. } /** Save Custom User Data */ function wpbc_ajax_USER_SAVE_CUSTOM_DATA() { if ( ! wpbc_check_nonce_in_admin_panel() ) return false; /* Exmaple of $_POST: [data_name] => add_booking_calendar_options [data_value] => calendar_months_count=1&calendar_months_num_in_1_row=1&calendar_width=500px&calendar_cell_height */ // "&" was set by jQuery.param( data_params ) in client side. $my_user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $my_data_name = isset( $_POST['data_name'] ) ? sanitize_textarea_field( wp_unslash( $_POST['data_name'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $my_data_value = isset( $_POST['data_value'] ) ? sanitize_textarea_field( wp_unslash( $_POST['data_value'] ) ) : ''; /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ $post_param = explode( '&', $my_data_value ); $data_to_save = array(); foreach ( $post_param as $param ) { $param_data = explode( '=', $param ); $data_to_save[ $param_data[0] ] = ( isset( $param_data[1] ) ) ? esc_attr( $param_data[1] ) : ''; } /* Exmaple: Array ( [calendar_months_count] => 1 [calendar_months_num_in_1_row] => 1 [calendar_width] => 500px [calendar_cell_height] => ) */ // Save Custom User Data. update_user_option( $my_user_id, 'booking_custom_' . $my_data_name, serialize( $data_to_save ) ); ?> <script type="text/javascript"> var my_message = '<?php echo esc_js( __('Saved' ,'booking') ) ; ?>'; wpbc_admin_show_message( my_message, 'success', 1000 ); <?php if ( ! empty( $_POST['is_reload'] ) && intval( $_POST['is_reload'] ) === 1 ) { /* phpcs:ignore WordPress.Security.NonceVerification.Missing */ ?> setTimeout(function ( ) {location.reload(true);} ,1500); <?php } ?> </script> <?php die(); } function wpbc_ajax_BOOKING_SEARCH() { if ( wpbc_is_use_nonce_at_front_end() ) { // FixIn: 10.1.1.2. // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing if ( ! wpbc_check_nonce_in_admin_panel( $_POST['action'] ) ) { return false; // FixIn: 7.2.1.10. } } if ( function_exists( 'wpbc_ajax_start_searching' ) ) { wpbc_ajax_start_searching(); } } function wpbc_ajax_CHECK_BK_NEWS() { if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. wpdev_ajax_check_bk_news(); } function wpbc_ajax_CHECK_BK_FEATURES() { if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. wpdev_ajax_check_bk_news('info/features/'); } function wpbc_ajax_CHECK_BK_VERSION() { if ( ! wpbc_check_nonce_in_admin_panel() ) return false; // FixIn: 7.2.1.10. wpdev_ajax_check_bk_version(); } // --------------------------------------------------------------------------------------------------------------------- // R u n A j a x ////////////////////////////////// // --------------------------------------------------------------------------------------------------------------------- if ( is_admin() && ( defined( 'DOING_AJAX' ) ) && ( DOING_AJAX ) ) { // FixIn: 8.9.4.5. // Hooks list $actions_list = array( 'WPBC_FLEXTIMELINE_NAV' => 'both' //FixIn: Flex TimeLine 1.0 ,'CALCULATE_THE_COST' => 'both' ,'UPDATE_APPROVE' => 'admin' ,'DELETE_APPROVE' => 'admin' ,'DELETE_BY_VISITOR' => 'both' ,'TRASH_RESTORE' => 'admin' // FixIn: 6.1.1.10. ,'DELETE_BK_FORM' => 'admin' ,'USER_SAVE_WINDOW_STATE' => 'admin' ,'USER_SAVE_CUSTOM_DATA' => 'admin' ,'BOOKING_SEARCH' => 'both' ,'CHECK_BK_NEWS' => 'admin' ,'CHECK_BK_FEATURES' => 'admin' ,'CHECK_BK_VERSION' => 'admin' , 'WPBC_IMPORT_ICS_URL' => 'admin' //FixIn: 7.3 ); $actions_list = apply_filters( 'wpbc_ajax_action_list', $actions_list ); foreach ($actions_list as $action_name => $action_where) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing if ( ( isset($_POST['action']) ) && ( $_POST['action'] == $action_name ) ){ if ( ( $action_where == 'admin' ) || ( $action_where == 'both' ) ) add_action( 'wp_ajax_' . $action_name, 'wpbc_ajax_' . $action_name); // Admin & Client (logged in usres) if ( ( $action_where == 'both' ) || ( $action_where == 'client' ) ) add_action( 'wp_ajax_nopriv_' . $action_name, 'wpbc_ajax_' . $action_name); // Client (not logged in) } } }
Save
Back