I'm trying to use current_user_can
in a custom feed template (created using add_feed
) to check if they have a particular Memberpress membership plan in order to access the feed, but while I can get other user data (e.g. $current_user->user_login
outputs the username), I can't use the plugin function.
At the moment, instead of showing the feed, I'm just echoing some test content, as follows:
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';
}
I'm guessing this is something to do with the order WordPress loads things. Could someone confirm? Is there any way around this? (I can get it working if I add the same code to a page template within the theme.)
Thanks
I'm trying to use current_user_can
in a custom feed template (created using add_feed
) to check if they have a particular Memberpress membership plan in order to access the feed, but while I can get other user data (e.g. $current_user->user_login
outputs the username), I can't use the plugin function.
At the moment, instead of showing the feed, I'm just echoing some test content, as follows:
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';
}
I'm guessing this is something to do with the order WordPress loads things. Could someone confirm? Is there any way around this? (I can get it working if I add the same code to a page template within the theme.)
Thanks
The solution, for anyone else interested, was to clear cookies and the cache:
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';
}