来自一个类(WordPress)的apply_filters

时间:2011-04-11 14:13:49

标签: wordpress

我正在编写一个使用wp_mail函数的插件。但是我想更改From:地址。 WP提供了一些过滤器 - wp_mail_from_namewp_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;
    }
}

如何在类中影响这些过滤器?

1 个答案:

答案 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;
    }
}