vnt
  • 0
Учитель

Скрипт Wp_mail с сообщением jQuery

  • 0

Мне нужно отправить электронное письмо со страницы при отправке формы.

Я думал, что буду использовать сообщение jQuery, но я не совсем уверен, с чего начать. Буду ли я использовать wp_mail() ? И если да, то как это можно назвать?

Извините, если это кажется расплывчатым. Просто пытаюсь отправить электронное письмо клиенту до того, как форма отправит свои данные на другой сайт;

$('#donationForm').submit(function() {

// send email to client before moving onto worldpay payment form


//  send data to worldpay....
this.submit();

});
Share
  1. По сути, вы можете использовать JavaScript для публикации в функции WordPress, а затем функция WordPress может вызвать wp_mail() отправку сообщения.

    Отличным местом для начала будет полезная статья AJAX in Plugins в Кодексе. Он проведет вас через все шаги, необходимые для добавления вашего JavaScript во внешний интерфейс, вашего PHP в серверную часть, и все, что вам нужно сделать, чтобы связать их вместе.

    • 0
  2. Сначала добавьте функцию обработки электронной почты и привяжите ее к wp_ajax подобным хукам, используя functions.php :

    // 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();
    }
    

    Затем внутри файла js вашей темы создайте вызов AJAX следующим образом:

    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);
    });
    
    });
    

    Теперь добавьте одноразовый номер к вашему, footer.php так как его нужно сгенерировать через PHP:

    ...
    <span id="my_email_ajax_nonce" data-nonce="<?php echo wp_create_nonce( 'my_email_ajax_nonce' ); ?>"></span>
    <?php wp_footer(); ?>
    ...
    

    И вы должны быть настроены.

    • 0

Оставить ответ

You must login to add an answer.