In the constructor of your PHP class add the following
add_action('wp_ajax_send_email_test',array($this,'send_email_test'));
add_action('wp_ajax_nopriv_send_email_test',array($this,'send_email_test'));
In your enqueue function add the localize script function so you have a variable to use in the js file to call admin-ajax.php
wp_enqueue_script('traffic-report', '/js/myjsfile.js', array('jquery'), '3.0');
wp_localize_script('traffic-report', 'script_vars',array( 'AJAXurl' => admin_url( 'admin-ajax.php' ) ) );
Then add the callback functions to the same class
function send_email_test()
{
//here do whatever you need to do with the data posted from the ajax call
echo "ok";//anything that gets echo'd will resturn as the result in the javascript ajax function
wp_die();
}
Then in your js file add the following, assuming you have an element with an ID of #send_mail_test which you click on to call the AJAX request.
$(document).on("click","#send_email_test",function(e)
{
e.preventDefault();
$.ajax(
{
url: script_vars.AJAXurl,
method: "POST",
data: {
'action': 'send_email_test',//PHP function name to call
'device': iDevice //Data to send to ajax function
},
success: function (result)
{
if (result)
{
console.log(result);
}
else
console.log("result is empty");
}
});
})