Professional Documents
Culture Documents
php
/**
* Handles all the ajax requests for the Gps Tracker map, dropdown boxes and
buttons
*
* @package Gps_Tracker
* @subpackage Classes/Ajax
* @author Nick Fox <nickfox@websmithing.com>
* @license MIT/GPLv2 or later
* @link https://www.websmithing.com/gps-tracker
* @copyright 2014 Nick Fox
*/
/**
* Gps_Tracker_Ajax Class
*
* @since 1.0.0
*/
class Gps_Tracker_Ajax {
/**
* Set up the Gps Tracker Ajax Class
*
* @since 1.0.0
*/
public function __construct() {
add_action( 'wp_ajax_get_routes', array( $this,
'get_gps_routes' ) );
add_action( 'wp_ajax_nopriv_get_routes', array( $this,
'get_gps_routes' ) );
add_action( 'wp_ajax_get_all_geojson_routes', array( $this,
'get_all_geojson_routes' ) );
add_action( 'wp_ajax_nopriv_get_all_geojson_routes', array( $this,
'get_all_geojson_routes' ) );
add_action( 'wp_ajax_get_geojson_route', array( $this,
'get_geojson_route' ) );
add_action( 'wp_ajax_nopriv_get_geojson_route', array( $this,
'get_geojson_route' ) );
add_action( 'wp_ajax_delete_route', array( $this,
'delete_gps_route' ) );
add_action( 'wp_ajax_nopriv_delete_route', array( $this,
'delete_gps_route' ) );
/**
* Get all gps routes from the database, triggered when the plugin shortcode
is executed
*
* @access public
* @since 1.0.0
*/
public function get_gps_routes() {
//exit(var_dump($_POST));
global $wpdb;
$procedure_name = $wpdb->prefix . 'get_routes';
$gps_routes = $wpdb->get_results("CALL {$procedure_name};");
if ( 0 == $wpdb->num_rows ) {
echo '0';
exit;
}
echo $json;
exit;
}
}
/**
* Gets a single gps route in geojson format from the database, triggered by
selecting
* a route in the route dropdown box under the map.
*
* @access public
* @since 1.0.0
*/
public function get_geojson_route() {
if ( ! wp_verify_nonce( $_POST['get_geojson_route_nonce'], 'get-geojson-
route-nonce' ) ) {
exit;
} else {
header( 'Content-Type: application/json' );
global $wpdb;
$session_id = $_POST['session_id'];
$procedure_name = $wpdb->prefix . 'get_geojson_route';
$gps_locations = $wpdb->get_results($wpdb->prepare(
"CALL {$procedure_name}(%s);",
array(
$session_id
)
));
if ( 0 == $wpdb->num_rows ) {
echo '0';
exit;
}
echo $json;
exit;
}
}
/**
* Get all routes in geojson format when page loads or when called from view
all button
*
* @access public
* @since 1.0.0
*/
public function get_all_geojson_routes() {
if ( ! wp_verify_nonce( $_POST['get_all_geojson_routes_nonce'], 'get-all-
geojson-routes-nonce' ) ) {
exit;
} else {
header( 'Content-Type: application/json' );
global $wpdb;
$procedure_name = $wpdb->prefix . 'get_all_geojson_routes';
$gps_locations = $wpdb->get_results("CALL {$procedure_name};");
if ( 0 == $wpdb->num_rows ) {
echo '0';
exit;
}
echo $geojson;
exit;
}
}
/**
* Deletes a gps route from the database using the Delete button under the
map
*
* @access public
* @since 1.0.0
*/
public function delete_gps_route() {
if ( ! wp_verify_nonce( $_POST['delete_route_nonce'], 'delete-route-
nonce' ) ) {
exit;
} else {
global $wpdb;
$session_id = $_POST['session_id'];
$table_name = $wpdb->prefix . 'gps_locations';
exit;
}
}
}
?>