查看wp_mail()
函数,顶部附近有一个过滤器:
$atts = apply_filters(
\'wp_mail\',
compact( \'to\', \'subject\', \'message\', \'headers\', \'attachments\' )
);
// Expanded for clarity.
(旁白:
compact()
是一个PHP函数,用于从一组参数创建数组。在本例中,它将生成
$to
,
$subject
,
$message
,
$headers
, 和
$attachments
传递给的参数
wp_mail()
.)
。。。然后再进一步:
if ( isset( $atts[\'subject\'] ) ) {
$subject = $atts[\'subject\'];
}
因此,是的,您可以过滤消息。像这样的事情应该可以做到:
add_filter( \'wp_mail\', \'wpse343761_filter_message\' );
function wpse343761_filter_message( $atts ) {
if ( ! empty( $atts[\'message\'] ) ) {
// If there\'s already a message, add to it.
$atts[\'message\'] .= \'Your additional text\';
} else {
// If there\'s not a message set yet, set one.
$atts[\'message\'] = \'Your desired message\';
}
return $atts;
}
Note: 此代码未经测试。
Edit: 为了响应您的更新和,如何将“附加文本消息”添加到电子邮件的开头:
更改此行:
$atts[\'message\'] .= \'Your additional text\';
收件人:
$atts[\'message\'] = \'Your additional text\' . $atts[\'message\'];
和你的
strip_tags()
使用问题,您可以执行以下操作:
$atts[\'message\'] = strip_tags( $atts[\'message\'] );
在你面前的线上
return
. (你不能只使用
strip_tags( $atts[\'message\'] )
因为这不会将剥离的字符串分配给任何对象。)