$nonce, 'ajaxurl' => $ajax_url, 'loading_text' => esc_html__( 'Loading...', 'air-quality-mk' )); // localize script wp_localize_script( 'ajax-public', 'air_quality_mk_ajax', $script ); } add_action( 'wp_enqueue_scripts', 'air_quality_mk_ajax_enqueue_scripts' ); // process ajax request function air_quality_mk_ajax_public_handler() { // check nonce check_ajax_referer( 'air-quality-mk-widget', 'nonce' ); // define station id $station_id = isset( $_POST['station_id'] ) ? intval( $_POST['station_id'] ) : false; // end processing wp_die( air_quality_mk_ajax_display_markup($station_id) ); } // ajax hook for logged-in users: wp_ajax_{action} add_action( 'wp_ajax_public_hook', 'air_quality_mk_ajax_public_handler' ); // ajax hook for non-logged-in users: wp_ajax_nopriv_{action} add_action( 'wp_ajax_nopriv_public_hook', 'air_quality_mk_ajax_public_handler' ); // display markup function air_quality_mk_ajax_display_markup( $station_id ) { global $air_quality_mk_station_list_name; global $air_quality_mk_parameter_list_name; $station_name = $air_quality_mk_station_list_name[$station_id]; $measurments = air_quality_mk_ajax_get_last_data_for_station($station_id); $content = '