我在Wordpress中有一个电子邮件表单,我正在使用ajax。Wordpress ajax表单随机数失败
我在窗体中创建一个随机数并在发送电子邮件之前检查它。
随机数失败,但输出显示它是相同的随机数。
Simified代码:
电子邮件形式
<form class="email-form" role="form">
<div class="form-group">
<label>Full Name</label>
<input type="text" class="email-name input-lg"/>
</div>
<div class="form-group">
<label>Email</label>
<input type="text" class="email-email input-lg"/>
</div>
<input type="hidden" name="ajax-nonce" id="ajax-nonce" value="' <?php echo wp_create_nonce('email-nonce'); ?>'" />
<div class="form-group email-submit">
<button class="btn-green email-submit">Send</button>
</div>
</form>
JS的
$('.email-submit').on('click', function(e){
e.preventDefault();
var mc_name = $('.email-name').val();
var mc_email = $('.email-email').val();
var mc_nonce = $('#ajax-nonce').val();
alert(mc_nonce);
classData = {
'type' : 'post',
'action' : 'classajax-submit',
'dataType' : 'jsonp',
'crossDomain' : true,
'nonce' : mc_nonce,
'the_name' : mc_name,
'the_email' : mc_email,
}
$.post(TheAjax.ajaxurl, classData).done(function(result){
if(result == 'success') {
//success message
}
}, 'jsonp');
})
的functions.php
add_action('wp_enqueue_scripts', 'add_my_script');
function add_my_script() {
wp_enqueue_script('scripts',get_template_directory_uri() . '/js/compiled/main.min.js', array('jquery'));
//
wp_localize_script('scripts', 'TheAjax', array(
'ajaxurl' => admin_url('admin-ajax.php')
));
}
add_action('wp_ajax_nopriv_classajax-submit', 'classajax_submit');
add_action('wp_ajax_classajax-submit', 'classajax_submit');
function classajax_submit() {
$nonce = stripslashes($_POST['nonce']);
echo 'nonce in php ' . $nonce;
if (! wp_verify_nonce($nonce, 'email-nonce')) {
die ('Email Busted!');
}else{
}
}
尝试附加与现时当前字符串,这样你不会得到 –