WordPress ajax is very easy to implement and in this tutorial we will learn how to make an ajax form and will develop a plugin regarding that,
Now step by step start
** if you need then visit my plugin development tutorial page to define a plugin and shortcode and learn to create till the fourth step.
First Step: Create a folder inside your plugin folder and give a unique name to that
Second Step: Create a PHP file with the same name ad the created folder
Third Step: define the plugin
<?php /* * Plugin Name: CodeMystery's WP Ajax * Plugin URI: https://codemystery.com/ * Description: Its a sample wordpress Frontend login plugin with shortcode. * Version: 0.1 * Author: Code Mystery * Author URI: https://codemystery.com/ */ ?>
Fourth step: define a shortcode and make a form inside the function called by the shortcode and call a javascript function load_my_ajax() on keyup of the field
//adding the shortcode for the login form
add_shortcode("HSWP_FORM", "cm_form");
function cm_form(){
$output_form = hirans_form_perform();
return $output_form;
}
function cm_form_perform(){
?>
<div id="my_ajax_responce"></div>
<form action="" method="post">
<div class="form-group">
<label for="usr">Name:</label>
<input type="text" class="form-control" id="usr" onkeyup="load_my_ajax();">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="form-group">
<input type="submit" name="frm_sbmt" class="form-control" id="pwd" value="Submit">
</div>
</form>
<?php
}
Fifth Step: Now create a js folder and create a js file inside the js folder and include an ajax file by using wp_enqueue_script script here my_ajax_url will define the ajax URL object and ajax_url will be used to get the URL for ajax operation here using WordPress admin-ajax.
function add_ajax_file(){
wp_enqueue_script('my-ajax',plugins_url('/js/ajax.js', __FILE__),array('jquery'),true);
// in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
wp_localize_script( 'my-ajax', 'my_ajax_url',
array( 'ajax_url' => admin_url( 'admin-ajax.php' )
) );
}
add_action('wp_enqueue_scripts','add_ajax_file');
now write the javascript function to handle the ajax operation here my_ajax_function is the function to be called to perform the ajax operation.
function load_my_ajax($){
var id = '1';
jQuery.ajax({
method: "POST",
url: my_ajax_url.ajax_url,
data: { 'action': 'my_ajax_function', 'id': id },
success: function(response){
console.log('Success AJAX Call :( /// Return Data: ' + response + ' ) ');
}
})
.done(function( data ) {
jQuery( '#my_ajax_responce' ).html(data);
})
.fail(function( data ) {
console.log('Failed AJAX Call :( /// Return Data: ' + data);
});
}
Seventh Step: now create my_ajax_function function and write some code in the plugin PHP file.
function my_ajax_function(){
$id = $_POST['id'];
echo $id;
wp_die();
}
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' );
add_action( 'wp_ajax_nopriv_my_ajax_function', 'my_ajax_function' );
Now your plugin is ready to use and you can install the plugin and run the form by using the shortcode [HSWP_FORM]
Thanks for Reading