Move this action ‘ add_action( ‘wp_ajax_nopriv_add_to_register’, ‘to_register’ );’ from load_scripts function().
// Load scripts
function load_scripts()
{
// I called jquery.min.js and jquery validation from function.php, not from here
wp_enqueue_script('test-reg', get_template_directory_uri() . '/js/my-test-reg.js', array('jquery'), '1.0', true );
wp_localize_script( 'test-reg', 'myAjax', array(
'myUrl' => admin_url('admin-ajax.php')
)
);
}
add_action( 'wp_ajax_nopriv_add_to_register', 'to_register' );
Replace reg_form() function with following:-
function reg_form()
{
$nonce = wp_create_nonce('nonce');
$out="<form id="test-register" method="post">";
$out .= '<div id="response"></div>';
$out .= '<input type="text" name="firstName" id="your-firstName" required>';
$out .= '<input type="text" name="lastName" id="your-lastName" required>';
$out .= '<input type="text" name="email" id="your-email" required>';
$out .= '<input type="submit" id="submit-btn" value="Go">
<input type="hidden" id="my-nonce" value="'.$nonce.'">';
$out .= '</form>';
return $out;
}
You haven’t concatenated the $out variable.