Mein Code funktioniert, wenn ich die Haken entferne add_action()
und entfernen 'action': 'contact'
Bei AJAX. In diesem Fall kehrt es zurück ‘Erfolg’. Aber sobald ich Hooks zu email.php hinzufüge und 'action': 'contact'
es hört auf, mir etwas zurückzugeben. Könnt ihr mir einen Rat geben wie ich das beheben kann? Ich glaube, ich mache es genau so, wie in der Dokumentation.
Dies ist mein einfacher Code:
E-Mail.php:
<?php
add_action( 'wp_ajax_nopriv_contact', 'contact' );
add_action( 'wp_ajax_contact', 'contact' );
function contact() {
echo 'Success';
wp_die();
}
?>
Funktionen.php:
function load_script()
{
wp_enqueue_script( 'contact_form', get_template_directory_uri() . '/contact_form/contact_form.js', array('jquery') );
wp_localize_script( 'contact_form', 'ajax_object', array('ajaxurl' => get_template_directory_uri() . '/email.php')
);
}
add_action('wp_enqueue_scripts', 'load_script');
Contact_form.js:
(function($){
$(document).ready(function() {
$( '.mybtn' ).click( function(e) {
e.preventDefault();
$.ajax({
url: ajax_object.ajaxurl,
type: 'POST',
data: {
'action': 'contact'
},
success: function( response ) {
console.log('The server responded: ',response);
},
});
});
});
})(jQuery);
Dann habe ich versucht, einfach ‘Aktion’ zu entfernen: ‘Kontakt’ und
E-Mail.php ändern in:
<?php
add_action( 'contact', 'contactme' );
function contactme() {
echo 'Success';
}
do_action('contact');
?>
Und es funktioniert nicht!
Aber der nächste Code funktioniert perfekt:
<?php
echo 'Success';
?>
AJAX gibt Erfolg zurück.
Ich habe auch versucht, 10 und auch 1 am Ende von add_action hinzuzufügen:
<?php
add_action( 'wp_ajax_nopriv_contact', 'contact', 10 );
add_action( 'wp_ajax_contact', 'contact', 10 );
function contact() {
echo 'Success';
wp_die();
}
?>
Aber es hat nicht geholfen.
Weißt du, warum meine Haken nicht funktionieren? Danke im Voraus.