apply_filters из класса (WordPress) - PullRequest
0 голосов
/ 11 апреля 2011

Я пишу плагин, который использует функцию 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;
    }
}

Как можно повлиять на эти фильтры в классе?

1 Ответ

2 голосов
/ 12 апреля 2011

В фильтрах 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...