如何在电子邮件模板中插入动态URL?

时间:2013-05-14 作者:kat_indo

我不确定这是否可能,但我想我应该试一试。

我正在使用WP Better Emails 插件,以便为我的buddypress网站创建HTML电子邮件。

我想在页脚中添加一个选项,供用户更改通知设置。类似这样的内容:是否要更新通知设置?更改设置。

我需要使“更改设置”成为一个动态链接,它会将用户重定向到\'http://connect.stage.tgg.gr/members/%username%/settings/notifications/\'

如何通过HTML实现这一点?我可以用过滤器过滤吗?

1 个回复
SO网友:fuxia

我没有使用此插件的经验,但看起来您可以使用名为\'wpbe_tags\':

    function template_vars_replacement( $template ) {
        $to_replace = array(
            \'blog_url\'         => get_option(\'siteurl\'),
            \'home_url\'         => get_option(\'home\'),
            \'blog_name\'        => get_option(\'blogname\'),
            \'blog_description\' => get_option(\'blogdescription\'),
            \'admin_email\'      => get_option(\'admin_email\'),
            \'date\'             => date_i18n(get_option(\'date_format\')),
            \'time\'             => date_i18n(get_option(\'time_format\'))
        );
        $to_replace = apply_filters(\'wpbe_tags\', $to_replace);

        foreach ( $to_replace as $tag => $var ) {
            $template = str_replace( \'%\' . $tag . \'%\', $var, $template );
        }

        return $template;
    }
所以,这可能会起到作用:

add_filter( \'wpbe_tags\', \'wpse_99484_extra_tpl_var\' );

function wpse_99484_extra_tpl_var( $to_replace )
{
    $to_replace[\'username\'] = function_to_get_buddy_press_user();
    return $to_replace:
}
我不确定什么是正确的function_to_get_buddy_press_user() 在您的情况下,这取决于此电子邮件的上下文。

结束

相关推荐

如何在多站点博客中显示BuddyPress个人资料字段数据

我试图在WordPress multsite博客上显示BuddyPress xprofile字段。我认为这可能会起作用,但displayed\\u用户似乎在BP之外工作?有没有简单的方法可以做到这一点?我知道有一个old plugin 这可以在一个小部件中实现,但我并不真正需要所有这些,而是直接将其放在主题中。以下是我在多站点博客的主题中尝试的内容。这适用于loggedin\\u user->id,但我拍摄的当然是博客管理员的配置文件数据。可以取回吗?<?php global $bp