wp_mail()过滤器wp_mail_from无法正常工作

时间:2013-07-26 13:55:48

标签: wordpress email filter

我构建了一个小函数来发送联系表单结果和错误报告。

我要求用户输入姓名和电子邮件,我想使用该电子邮件地址显示在我收到的邮件中。

我正在使用wp_mail过滤器:

add_filter( 'wp_mail_from', 'my_mail_from', $gotten_mail ); function my_mail_from( $email ) { return $email; }

它不起作用。

我想也许改变smtp地址而不是使用这个过滤器。 寻找方法。

你能帮帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

意识到这已经超过一个月了,但是这里......

您无法以这种方式将自定义参数添加到add_filter来电。相反,您需要在回调函数中获取输入的电子邮件,如下所示:

add_filter( 'wp_mail_from', 'custom_slug_mail_from' );

/**
 * Function to change mail_from to input entered via form.
 */
function custom_slug_mail_from( $email ) {

    /**
     * Use the user-submitted email if present.
     */
    if ( isset( $_REQUEST[ 'email_from_form' ] ) )
        return sanitize_email( $_REQUEST[ 'email_from_form' ] );

    return $email; // if no email submitted, use default.
}

尚未对此进行测试,但我认为它应该可行。请务必根据WordPress Theme Guidelines将'custom_slug'更改为主题或插件文件夹的名称,并将'email_from_form'更改为表单中输入字段的名称。

P.S。您将在wordpress.stackexchange.com

更快地获得与WordPress相关的答案