從注冊用戶的自定義函式中,我插入了這個函式來生成和覆寫 WordPress 系統電子郵件。
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
global $wpcargo;
$user_url = stripslashes( $user->user_url );
$user_login = stripslashes( $user->user_login );
$user_email = stripslashes( $user->user_email );
$user_firstname = stripslashes( $user->user_firstname );
$user_last_name = stripslashes( $user->user_last_name );
$user_pass = stripslashes( $user->user_pass );
$message = file_get_contents('../email/mail-template.php');
$wp_new_user_notification_email['subject'] = sprintf( '[%s] Welcome.', $blogname );
$wp_new_user_notification_email['headers'] = array('Content-Type: text/html; charset=UTF-8');
$wp_new_user_notification_email['message'] = $message;
return $wp_new_user_notification_email;
}
add_filter( 'wp_new_user_notification_email', 'custom_wp_new_user_notification_email', 10, 3 );
正在發送電子郵件,但我無法在 PHP/HTML 檔案中列印用戶資料。
<p style="margin-top:0;margin-bottom:12px;"><b>Name</b>: <?php $user_firstname; ?></p>
我的代碼錯了,有什么建議嗎?
uj5u.com熱心網友回復:
我將locate_template用于電子郵件內容,output buffering而不是file_get_contents- 也正如@Zak 指出的那樣,您必須echo輸出您的輸出,否則它不會顯示。
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
global $wpcargo;
$user_url = stripslashes( $user->user_url );
$user_login = stripslashes( $user->user_login );
$user_email = stripslashes( $user->user_email );
$user_firstname = stripslashes( $user->user_firstname );
$user_last_name = stripslashes( $user->user_last_name );
$user_pass = stripslashes( $user->user_pass );
ob_start();
include( locate_template( '/email/mail-template.php' ); // This path may vary depending on your setup.
$wp_new_user_notification_email['message'] = ob_get_clean();
$wp_new_user_notification_email['subject'] = sprintf( '[%s] Welcome.', $blogname );
$wp_new_user_notification_email['headers'] = array('Content-Type: text/html; charset=UTF-8');
return $wp_new_user_notification_email;
}
add_filter( 'wp_new_user_notification_email', 'custom_wp_new_user_notification_email', 10, 3 );
在您的模板中,您要確保您回顯以及esc_html()正在輸出的任何內容。
<?php echo esc_html( $user_firstname ); ?>
uj5u.com熱心網友回復:
PHP 有一種有趣的方式,讓您只需將變數放入頁面,即使您沒有對它做任何事情.. 也不會給您錯誤甚至警告。
但是..您只是將變數放入頁面代碼中而不做任何事情...您需要print或將其放入echo頁面...
<?php echo $user_firstname; ?>
要么
<?= $user_firstname; ?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/447489.html
