WP_MAIL-使用自定义字段值

时间:2012-12-23 作者:Martin

这能行吗?我想在向收件人发布帖子时发送一封电子邮件,该邮件在自定义字段中调用。

编辑我将代码更改为我找到的另一个示例。

function wpr_Notification($post_id) {
    $post = get_post($post_id);
    $to = get_post_meta($post_id, \'recipient\', true);
    $headers = \'From: Disctopia Metal Webzine <[email protected]>\';
    $title = $post->post_title." has been published";
    $message = " Hello ... and so on.... ";

    wp_mail($to, $title, $message, $headers); 
} 
add_action(\'publish_post\', \'wpr_Notification\');
除了收件人之外,一切都很顺利。如果我在这个字段中输入一个静态电子邮件地址,而不是$to,那么它会起作用。但如果我尝试获取自定义字段的值,它就会失败。

我试图通过将$放入$消息并将$改为我自己的电子邮件地址来了解$to的价值。好吧,那美元对你来说毫无价值。

这个变量有什么问题?自定义字段肯定称为“收件人”,只是一个文本字符串。

:(

2 个回复
SO网友:bueltge

是的,它可以工作。但您应该在自定义字段中过滤电子邮件。用户的上下文可能有错误,或者邮件地址错误。

您可以使用筛选电子邮件地址filter_var()

SO网友:Nadav

您的函数有一个名为$post\\u id的参数,但该参数没有传递给它。get\\u post()函数不受此影响,因为其中的post ID是可选的(该函数将使用全局$post检索post ID)。但是,对于get\\u post\\u meta()函数,post ID是必需的。如果为NULL(就像我认为在您的示例中发生的那样),函数将返回一个空字符串。由于get_post()已经为您检索了WP_post对象,您可以使用它来获取帖子ID。尝试以下操作:

function wpr_Notification() {
    $post = get_post();
    $to = get_post_meta($post->ID, \'recipient\', true);
    $headers = \'From: Disctopia Metal Webzine <[email protected]>\';
    $title = $post->post_title." has been published";
    $message = " Hello ... and so on.... ";

    wp_mail($to, $title, $message, $headers); 
} 
add_action(\'publish_post\', \'wpr_Notification\');

结束

相关推荐

Wp-content/plugins中的权限问题

我在本地机器上安装了一个WP,试图用插件弄脏我的手。我希望从github克隆一个包含此插件代码的项目。然而,我没有插件内部的权限,作为一个没有su权限的普通用户,我无法做到这一点。(当然,我可以成为根并这样做,但我不认为这是应该的)。然后,默认情况下,WP安装中的文件夹将组设置为“tape”,这对我来说很奇怪。本地WP安装上内部文件夹的正确权限应该是什么?