我正在编写一个使用wp_mail
函数的插件。但是我想更改From:地址。 WP提供了一些过滤器 - wp_mail_from_name
和wp_mail_from
- 但我不确定如何在类中调用它们。
如果我将它们放在函数之外,则会出现解析错误(意外的T_STRING,期待T_FUNCTION)。
如果我把它们放在一个函数中似乎没有任何事情发生
class myPlugin {
public function setFromname($fromname) {
apply_filters( 'wp_mail_from_name', $fromname );
$this->fromname = $fromname;
}
public function setFromemail($fromemail) {
apply_filters( 'wp_mail_from', $fromemail );
$this->fromemail = $fromemail;
}
}
如何在类中影响这些过滤器?
答案 0 :(得分:2)
在WordPress过滤器必须有回调,他们不能使用变量。
class myPlugin {
public function myPlugin {
add_filter( 'wp_mail_from_name', array($this, 'filter_mail_from_name'));
add_filter( 'wp_mail_from', array($this, 'filter_mail_from'));
}
function filter_mail_from_name( $from_name ) {
// the $from_name comes from WordPress, this is the default $from_name
// you must modify the $from_name from within this function before returning it
return $from_name;
}
function filter_mail_from( $from_email ) {
// the $from_email comes from WordPress, this is the default $from_name
// you must modify the $from_email from within this function before returning it
return $from_email;
}
}