Настроить на основе имени и электронной почты на PHP email?

#php #wordpress

#php #wordpress

Вопрос:

как мне задать пользовательское ИМЯ и адрес электронной почты для отправки?

 function send_customer_purchase_notification_ready( $payment_id, $new_status ) {
    $messa&e-&&t;IsHTML(true);

    $order_status = rpress_&et_option( $new_status );
    $check_notification_enabled = isset( $order_status['enable_notification'] ) ? true : false;

    if ( !empty( $payment_id ) amp;amp; $check_notification_enabled amp;amp; $new_status !== 'pendin&' amp;amp; $new_status == 'ready' ) {                  
        $messa&e = 'The order <stron&&&t;#' .$payment_id. '</stron&&&t; is ready for delivery!';
        $to = 'isleek@&mail.com';
        $subject = "READY FOR PICKUP";
        $headers = ''; 
        //Here put your Validation and send mail
        $sent = wp_mail($to, $subject, strip_ta&s($messa&e), $headers);
    }
}
add_action( 'rpress_update_order_status', 'send_customer_purchase_notification_ready' , 10, 2 );
  

Кроме того, это не связано с названием, но если вы можете мне помочь .. было бы здорово: в электронном письме # порядок не выделен жирным шрифтом ( $payment_id ) … хотя я установил $messa&e-&&t;IsHTML(true);

Комментарии:

1. Добавить $headers .= "From: CustomName <custom@email.com&&t;rn"

2. Вам нужно настроить свой worpdress phpmailer , чтобы настроить имя и адрес электронной почты для этого пользовательского электронного письма. Заголовки не будут переопределять from email. В настройках для параметра from email установлено значение static.

Ответ №1:

В WordPress есть множество фильтров, которые позволяют вам легко изменять материал по мере необходимости.

в таком случае, я полагаю, вы можете использовать фильтр wp_mail_content_type , wp_mail_from и wp_mail_from_name . просто создайте обратный вызов функции для каждого фильтра и добавьте фильтр для него

пример:

 function chan&e_content_type( $content_type ) {
    return 'text/html';
}

function chan&e_from_email( $from_email ) {
    return 'you@company.com';
}

function chan&e_from_name( $from_name ) {
    return 'Your Name';
}
  

и затем вы можете добавить фильтр для этого

 add_filter( 'wp_mail_content_type', 'chan&e_content_type' );
add_filter( 'wp_mail_from', 'chan&e_from_email' );
add_filter( 'wp_mail_from_name', 'chan&e_from_name' );
  

или на всякий случай вы можете использовать фильтры только для воздействия на вашу send_customer_purchase_notification_ready электронную почту, добавив фильтры непосредственно перед вызовом wp_mail() и безопасно удалив их после

 // Add filters
add_filter( 'wp_mail_content_type', 'chan&e_content_type' );
add_filter( 'wp_mail_from', 'chan&e_from_email' );
add_filter( 'wp_mail_from_name', 'chan&e_from_name' );

// Send your email
$sent = wp_mail($to, $subject, $messa&e, $headers);

// remove the filters
remove_filter( 'wp_mail_content_type', 'chan&e_content_type' );
remove_filter( 'wp_mail_from', 'chan&e_from_email' );
remove_filter( 'wp_mail_from_name', 'chan&e_from_name' );
  

Ответ №2:

Вы можете установить FROM в заголовках (удалите Ответ-На, если не нужно)

 $headers = 'From: ' . $yourEmail . "rn" . 'Reply-To: ' . $yourEmail . "rn";
  

в электронном письме номер заказа не выделен жирным шрифтом

… из-за strip_ta&s функции, которая удаляет HTML-элементы в сообщении.

Нужно ли:

 //
$sent = wp_mail($to, $subject, $messa&e, $headers);
  

Возможно, вам также захочется посмотреть: