WordPress wp_mail ajax форма — не работает nonce

У меня есть рабочая форма в WordPress, использующая ajax для передачи информации в php и wp_mail для отправки электронного письма.

Моя последняя проблема заключается в том, чтобы заставить nonce работать.

JS

    $atj(function(){
$atj('#submit').click(function(e) {
e.preventDefault();
e.stopPropagation();
if(verfiyTrainingFields()) {
requestData = {
'action' : 'ajax-submit',
'dataType' : 'jsonp',
'nonce' : 'TheAjax.NONCE',
//
'firstName' : $atj("#name").val(),
'email' : $atj("#email").val(),
}

$atj.post(TheAjax.ajaxurl, requestData).done(function(result){
if(result == 'success') {
$atj('.form [type=text]').val('');
$atj('.form-message').append('<p class="form-complete-message">Thank you for your email</p>');
}
}, 'jsonp');
}
});
})

PHP в functions.php

    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' ),
'NONCE' => wp_create_nonce( 'ajax_custom_nonce' )
));
}

add_action( 'wp_ajax_nopriv_ajax-submit', 'ajax_submit' );
add_action( 'wp_ajax_ajax-submit', 'ajax_submit' );

function ajax_submit() {

$nonce = $_POST['nonce'];

if ( ! wp_verify_nonce( $nonce, 'ajax_custom_nonce' ) )
die ( 'Busted!');

header( "Content-Type: application/json" );

$name = sanitize_text_field($_POST['name']);
$email = sanitize_text_field($_POST['email']);

$headers[] = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
$headers[] = 'Content-type: text/html' . "\r\n"; //Enables HTML ContentType. Remove it for Plain Text Messages

$to = 'email address';

$message = 'Name: ' . $name . "\r\n" . 'DID: ' . $dealershipId . "\r\n" . 'Phone: ' . $phone . "\r\n";

wp_mail( $to, 'Email', $message );

// generate the response
$response = json_encode( array('success') );

echo $response;

die;
}

С носом все работает нормально.

Может ли кто-нибудь понять, почему одноразовый номер не работает.

Я не могу поверить, что отправка электронной почты для WordPress была таким кошмаром.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]