我想用current_user_can
在自定义提要模板中(使用add_feed
) 检查他们是否有特定的Memberpress成员计划以访问提要,但我可以获取其他用户数据(例如。$current_user->user_login
输出用户名),我无法使用插件功能。
目前,我没有显示feed,只是重复了一些测试内容,如下所示:
if( current_user_can( \'mepr-active\', \'memberships:1,2\' ) ) {
echo \'Hi \' . $current_user->user_login . \'! You are a member\';
} else {
echo \'Hi \' . $current_user->user_login . \'! You <strong>not</strong> a member\';
}
我猜这与WordPress加载东西的顺序有关。有人能确认一下吗?有什么办法吗?(如果我在主题内的页面模板中添加相同的代码,我就可以让它工作。)
谢谢
最合适的回答,由SO网友:markcbain 整理而成
对于其他感兴趣的人来说,解决方案是清除cookie和缓存:
clean_user_cache($current_user->ID);
wp_clear_auth_cookie();
wp_set_current_user($current_user->ID);
wp_set_auth_cookie($current_user->ID, true, false);
update_user_caches($current_user);
if( current_user_can( \'mepr-active\', \'memberships:1,2\' ) ) {
echo \'Hi \' . $current_user->user_login . \'! You are a member\';
} else {
echo \'Hi \' . $current_user->user_login . \'! You <strong>not</strong> a member\';
}