wp_mail-Skript mit jquery-Post

Sie müssen eine E-Mail von einer Seite senden, wenn ein Formular gesendet wird.

Dachte ich würde jquery post verwenden, aber nicht wirklich sicher, wo ich anfangen soll. Würde ich wp_mail benutzen? Und wenn ja, wie könnte es heißen?

Tut mir leid, wenn das vage erscheint. Nur versuchen, eine E-Mail an den Client zu senden, bevor ein Formular seine Daten an eine andere Site sendet;

$('#donationForm').submit(function() { // send email to client before moving onto worldpay payment form // send data to worldpay.... this.submit(); }); 

am besten, Dc

Solutions Collecting From Web of "wp_mail-Skript mit jquery-Post"

Im Grunde können Sie JavaScript verwenden, um an eine WordPress-function zu posten, dann kann die WordPress-function wp_mail() aufrufen, um die Nachricht zu senden.

Ein guter Ausgangspunkt wäre der nützliche AJAX im Plugins- Artikel zum Codex. Es führt Sie durch alle erforderlichen Schritte, um Ihr JavaScript auf dem Front-End, Ihr PHP auf dem Back-End und alles, was Sie tun müssen, um beide miteinander zu verbinden, hinzuzufügen.

Fügen Sie zuerst Ihre E-Mail-Verarbeitungsfunktion hinzu und haken Sie sie mit Ihren functions.php an wp_ajax-Hooks:

 // if you want only logged in users to access this function use this hook add_action('wp_ajax_mail_before_submit', 'mycustomtheme_send_mail_before_submit'); // if you want none logged in users to access this function use this hook add_action('wp_ajax_nopriv_mail_before_submit', 'mycustomtheme_send_mail_before_submit'); // if you want both logged in and anonymous users to get the emails, use both hooks above function mycustomtheme_send_mail_before_submit(){ check_ajax_referer('my_email_ajax_nonce'); if ( isset($_POST['action']) && $_POST['action'] == "mail_before_submit" ){ //send email wp_mail( $to, $subject, $message, $headers, $attachments ); ex: wp_mail($_POST['toemail'],'this is the email subject line','email message body'); echo 'email sent'; die(); } echo 'error'; die(); } 

Dann erstellen Sie in einer JS-Datei Ihres Themas den Ajax-Aufruf wie folgt:

 jQuery('#donationForm').submit(function() { // send email to client before moving onto worldpay payment form var data = { action: 'mail_before_submit', toemail: $('#myemailfield').val(), // change this to the email field on your form _ajax_nonce: $('#my_email_ajax_nonce').data('nonce'), }; jQuery.post(window.location.origin + "/wp-admin/admin-ajax.php", data, function(response) { console.log('Got this from the server: ' + response); }); }); 

Fügen Sie nun die Datei nonce zu Ihrer footer.php hinzu, da diese über PHP generiert werden muss:

 ...  < ?php wp_footer(); ?> ... 

und du solltest eingestellt sein.