Tôi muốn thêm một tiêu đề bổ sung cho các email gửi đi trên các trang web của mình, vì vậy tôi có thể dễ dàng xác định trang web nào đã gửi một email nhất định. (Tôi đặt một plugin chức năng tiêu chuẩn trên tất cả các trang web của mình, vì vậy điều này đủ dễ thực hiện và định cấu hình ứng dụng email của tôi để lọc và nếu không thì hành động trên tiêu đề này sẽ là một trình tiết kiệm thời gian tuyệt vời.)
Tôi nghĩ rằng đây sẽ là một vấn đề đơn giản để cắm vào wp_mail
chức năng, nhưng rõ ràng là không.
Đầu tiên, tôi đã thử điều này:
add_filter('wp_mail', 'ws_add_site_header');
function ws_add_site_header() {
return array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST));
}
Ở đây, mảng của tôi được ưu tiên hơn bất kỳ thứ gì khác đã sửa đổi cài đặt thư (giả sử, Gravity Forms), vì vậy các email HTML bắt đầu hiển thị dưới dạng HTML trần và không được định dạng độc đáo. Có ý nghĩa, vì tiêu đề Kiểu nội dung: mà GF thêm vào đã bị loại bỏ. Nhưng tiêu đề của tôi đã được thêm vào email. Vì những người khác cũng phụ thuộc vào việc nhận các email đẹp (tất cả các nhà phát triển nội dung và người dùng cuối của trang web của tôi, trong số những người khác tôi chắc chắn), điều đó không thể chấp nhận được.
Một trong những đồng nghiệp của tôi sau đó đã đề xuất định tuyến nội dung của tôi thông qua wp_parse_args (), do đó:
add_filter('wp_mail', 'ws_add_site_header');
function ws_add_site_header($args) {
$new_header = array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST));
return wp_parse_args($args, $new_header);
}
Với điều đó, như thể chức năng của tôi không tồn tại - tiêu đề của tôi không được thêm, nhưng các tiêu đề và cài đặt thư của người khác cũng không bị tước.
Cách chính xác để thêm tiêu đề vào email gửi đi mà không làm xáo trộn bất kỳ bộ lọc nào khác có thể tồn tại là gì?