2015-04-19 16 views
7

Hy vọng nhận được trợ giúp với một đoạn mã, tôi đang sử dụng một chủ đề cho wordpress để đặt tiêu đề thư thành văn bản/html, điều này gây ra một số vấn đề với thư cũ. các dấu ngắt dòng không hiển thị nữa.Tiêu đề thư wordpress thiết lập văn bản thuần khác

tôi đã cố gắng thiết lập:

} else { 
    return 'text/plain'; 
} 

nhưng tôi không biết php rất tốt vì vậy tôi không biết được nơi để đặt nó để làm cho nó làm việc. Tôi muốn đặt văn bản/đồng bằng cho các thư không được xác định.

đây là mã cho header wp:

/** 
* filter mail headers 
*/ 
function wp_mail($compact) { 
    if (isset($_GET['action']) && $_GET['action'] == 'lostpassword') return $compact; 
    if ($compact['headers'] == '') { 

     //$compact['headers'] = 'MIME-Version: 1.0' . "\r\n"; 
     $compact['headers'] = 'Content-type: text/html; charset=utf-8' . "\r\n"; 
     $compact['headers'].= "From: " . get_option('blogname') . " < " . get_option('admin_email') . "> \r\n"; 
    } 

    $compact['message'] = str_ireplace('[site_url]', home_url() , $compact['message']); 
    $compact['message'] = str_ireplace('[blogname]', get_bloginfo('name') , $compact['message']); 
    $compact['message'] = str_ireplace('[admin_email]', get_option('admin_email') , $compact['message']); 

    $compact['message'] = html_entity_decode($compact['message'], ENT_QUOTES, 'UTF-8'); 
    $compact['subject'] = html_entity_decode($compact['subject'], ENT_QUOTES, 'UTF-8'); 

    //$compact['message']  = et_get_mail_header().$compact['message'].et_get_mail_footer(); 

    return $compact; 
} 

Trả lời

3

Thay vì thay đổi đó, thay đổi dòng đơn giản của bạn bị hư sang HTML.

$message=nl2br($message); // of course use your var name. 

Bằng cách đó, bạn cũng có thể giữ định dạng chuẩn cho email. văn bản thuần túy không có gì đặc biệt để cần tiêu đề riêng trong trường hợp này. Hàm này sẽ chuyển đổi tất cả các ngắt dòng thành phiên bản html.

Ngoài các dòng mới, hầu hết văn bản thuần túy của bạn sẽ giữ định dạng ngay cả trong html vì nó không có thẻ đặc biệt.

Đây là cách bạn sẽ đặt nó

function wp_mail($compact) { 
    // leave your existing code intact here, don't remove it. 
    $compact["message"]=nl2br($compact["message"]); 
    return $compact; 
} 
+0

Hi Hanky ​​Panky 웃, câu trả lời của bạn rất nhiều ý nghĩa, tôi cảm thấy tôi gần như ở đó. dựa trên mã tôi đã đăng ở trên, có thể biết được var nên là gì không? và tôi sẽ đặt dòng mã bạn đăng ở đâu? – Elcangri

+0

Có biến của bạn là '$ compact [" message "] = nl2br ($ compact [" message "]);' và nó nằm ngay trên dòng cuối cùng của hàm của bạn. I E. Phía trên cuộc gọi trả lại. Xem chỉnh sửa –

+0

Tôi đã thử những gì được đề xuất và nó hoạt động cho email văn bản thuần túy, giờ đây họ có ngắt dòng chính xác nhưng giờ đây email html được hiển thị dưới dạng trống. Tôi nhìn vào nguồn và tôi thấy rằng mọi dòng đều nhận được mã của thẻ
'