Anonymous
Более одной формы ajax в WordPress
Сообщение
Anonymous » 05 ноя 2024, 09:11
У меня уже есть одна форма Ajax на моем веб-сайте WordPress. Теперь мне нужен второй. Поэтому я дублирую функцию в Function.php. Но это не работает.
Первая форма — контактная. Второе — надпись. Первый работает отлично.
Но что касается второго, при попытке отправить ничего не происходит...
Вот мой код.
Код: Выделить всё
add_action( 'wp_ajax_contact', '_ajax_contact' );
add_action( 'wp_ajax_nopriv_contact', '_ajax_contact' );
function _ajax_contact() {
/*-----------------------------------------------------------------------------------*/
/* On vérifie le nonce de sécurité
/*-----------------------------------------------------------------------------------*/
check_ajax_referer( 'ajax_contact_nonce', 'security' );
/*-----------------------------------------------------------------------------------*/
/* Protection des variables
/*-----------------------------------------------------------------------------------*/
$subject = wp_strip_all_tags( $_POST['subject'] ); // Sujet du message
$name = wp_strip_all_tags( $_POST['name'] ); // Nom de l'expéditeur
$sender = sanitize_email( $_POST['email'] ); // Adresse e-mail de l'expéditeur
$message = nl2br( stripslashes( wp_kses( $_POST['message'], $GLOBALS['allowedtags'] ) ) );
/*-----------------------------------------------------------------------------------*/
/* Gestion des headers
/*-----------------------------------------------------------------------------------*/
$headers = array();
$headers[] = 'FROM : ' . $name . ' ' . "\r\n";
/*-----------------------------------------------------------------------------------*/
/* Gestion du message
/*-----------------------------------------------------------------------------------*/
ob_start();
include( get_template_directory() . '/inc/mail/contact.php' );
$mail = ob_get_contents();
ob_end_clean();
/*-----------------------------------------------------------------------------------*/
/* Envoie de l'e-mail
/*-----------------------------------------------------------------------------------*/
// Support d'un contenu HTML dans l'email
add_filter( 'wp_mail_content_type', create_function('', 'return "text/html";') );
if( wp_mail( 'emailtest@gmail.com', '[subject] Contact', $mail, $headers ) ) {
// Tout est ok, on avertit l'utilisateur
wp_send_json( 'success' );
}
else {
// Il y a une erreur avec le mail, on avertit l'utilisateur
wp_send_json( 'error' );
}
}
/*-----------------------------------------------------------------------------------*/
/* Second form
/*-----------------------------------------------------------------------------------*/
add_action( 'wp_ajax_inscription', '_ajax_inscription' );
add_action( 'wp_ajax_nopriv_inscription', '_ajax_inscription' );
function _ajax_inscription() {
/*-----------------------------------------------------------------------------------*/
/* On vérifie le nonce de sécurité
/*-----------------------------------------------------------------------------------*/
check_ajax_referer( 'ajax_inscription_nonce', 'security' );
/*-----------------------------------------------------------------------------------*/
/* Protection des variables
/*-----------------------------------------------------------------------------------*/
$subject = wp_strip_all_tags( $_POST['subject'] ); // Sujet du message
$name = wp_strip_all_tags( $_POST['name'] ); // Nom de l'expéditeur
$sender = sanitize_email( $_POST['email'] ); // Adresse e-mail de l'expéditeur
$message = nl2br( stripslashes( wp_kses( $_POST['message'], $GLOBALS['allowedtags'] ) ) );
/*-----------------------------------------------------------------------------------*/
/* Gestion des headers
/*-----------------------------------------------------------------------------------*/
$headers = array();
$headers[] = 'FROM : ' . $name . ' ' . "\r\n";
/*-----------------------------------------------------------------------------------*/
/* Gestion du message
/*-----------------------------------------------------------------------------------*/
ob_start();
include( get_template_directory() . '/inc/mail/contact.php' );
$mail = ob_get_contents();
ob_end_clean();
/*-----------------------------------------------------------------------------------*/
/* Envoie de l'e-mail
/*-----------------------------------------------------------------------------------*/
// Support d'un contenu HTML dans l'email
add_filter( 'wp_mail_content_type', create_function('', 'return "text/html";') );
if( wp_mail( 'testemail@gmail.com', $subject, $mail, $headers ) ) {
// Tout est ok, on avertit l'utilisateur
wp_send_json( 'success' );
}
else {
// Il y a une erreur avec le mail, on avertit l'utilisateur
wp_send_json( 'error' );
}
}
Подробнее здесь:
https://stackoverflow.com/questions/265 ... -wordpress
1730787062
Anonymous
У меня уже есть одна форма Ajax на моем веб-сайте WordPress. Теперь мне нужен второй. Поэтому я дублирую функцию в Function.php. Но это не работает. Первая форма — контактная. Второе — надпись. Первый работает отлично. Но что касается второго, при попытке отправить ничего не происходит... Вот мой код. [code] add_action( 'wp_ajax_contact', '_ajax_contact' ); add_action( 'wp_ajax_nopriv_contact', '_ajax_contact' ); function _ajax_contact() { /*-----------------------------------------------------------------------------------*/ /* On vérifie le nonce de sécurité /*-----------------------------------------------------------------------------------*/ check_ajax_referer( 'ajax_contact_nonce', 'security' ); /*-----------------------------------------------------------------------------------*/ /* Protection des variables /*-----------------------------------------------------------------------------------*/ $subject = wp_strip_all_tags( $_POST['subject'] ); // Sujet du message $name = wp_strip_all_tags( $_POST['name'] ); // Nom de l'expéditeur $sender = sanitize_email( $_POST['email'] ); // Adresse e-mail de l'expéditeur $message = nl2br( stripslashes( wp_kses( $_POST['message'], $GLOBALS['allowedtags'] ) ) ); /*-----------------------------------------------------------------------------------*/ /* Gestion des headers /*-----------------------------------------------------------------------------------*/ $headers = array(); $headers[] = 'FROM : ' . $name . ' ' . "\r\n"; /*-----------------------------------------------------------------------------------*/ /* Gestion du message /*-----------------------------------------------------------------------------------*/ ob_start(); include( get_template_directory() . '/inc/mail/contact.php' ); $mail = ob_get_contents(); ob_end_clean(); /*-----------------------------------------------------------------------------------*/ /* Envoie de l'e-mail /*-----------------------------------------------------------------------------------*/ // Support d'un contenu HTML dans l'email add_filter( 'wp_mail_content_type', create_function('', 'return "text/html";') ); if( wp_mail( 'emailtest@gmail.com', '[subject] Contact', $mail, $headers ) ) { // Tout est ok, on avertit l'utilisateur wp_send_json( 'success' ); } else { // Il y a une erreur avec le mail, on avertit l'utilisateur wp_send_json( 'error' ); } } /*-----------------------------------------------------------------------------------*/ /* Second form /*-----------------------------------------------------------------------------------*/ add_action( 'wp_ajax_inscription', '_ajax_inscription' ); add_action( 'wp_ajax_nopriv_inscription', '_ajax_inscription' ); function _ajax_inscription() { /*-----------------------------------------------------------------------------------*/ /* On vérifie le nonce de sécurité /*-----------------------------------------------------------------------------------*/ check_ajax_referer( 'ajax_inscription_nonce', 'security' ); /*-----------------------------------------------------------------------------------*/ /* Protection des variables /*-----------------------------------------------------------------------------------*/ $subject = wp_strip_all_tags( $_POST['subject'] ); // Sujet du message $name = wp_strip_all_tags( $_POST['name'] ); // Nom de l'expéditeur $sender = sanitize_email( $_POST['email'] ); // Adresse e-mail de l'expéditeur $message = nl2br( stripslashes( wp_kses( $_POST['message'], $GLOBALS['allowedtags'] ) ) ); /*-----------------------------------------------------------------------------------*/ /* Gestion des headers /*-----------------------------------------------------------------------------------*/ $headers = array(); $headers[] = 'FROM : ' . $name . ' ' . "\r\n"; /*-----------------------------------------------------------------------------------*/ /* Gestion du message /*-----------------------------------------------------------------------------------*/ ob_start(); include( get_template_directory() . '/inc/mail/contact.php' ); $mail = ob_get_contents(); ob_end_clean(); /*-----------------------------------------------------------------------------------*/ /* Envoie de l'e-mail /*-----------------------------------------------------------------------------------*/ // Support d'un contenu HTML dans l'email add_filter( 'wp_mail_content_type', create_function('', 'return "text/html";') ); if( wp_mail( 'testemail@gmail.com', $subject, $mail, $headers ) ) { // Tout est ok, on avertit l'utilisateur wp_send_json( 'success' ); } else { // Il y a une erreur avec le mail, on avertit l'utilisateur wp_send_json( 'error' ); } [/code] } Подробнее здесь: [url]https://stackoverflow.com/questions/26563160/more-than-one-ajax-form-on-wordpress[/url]