Skip to content

Instantly share code, notes, and snippets.

@LMNTL
Last active September 4, 2019 22:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LMNTL/2ddfa05a8d8a70a638fdbfcf30f89aee to your computer and use it in GitHub Desktop.
Save LMNTL/2ddfa05a8d8a70a638fdbfcf30f89aee to your computer and use it in GitHub Desktop.
preserve requested redirect with PMPro Member Homepages
// preserve requested redirect with PMPro Member Homepages
// forked from @greathmaster
function pmpromh_modified_login_redirect($redirect_to, $request, $user)
{
if(isset($request) && $redirect_to != admin_url())
return $request;
//check level
if(!empty($user) && !empty($user->ID) && function_exists('pmpro_getMembershipLevelForUser')) {
$level = pmpro_getMembershipLevelForUser($user->ID);
$member_homepage_id = pmpromh_getHomepageForLevel($level->id);
if(!empty($member_homepage_id)) {
$redirect_to = get_permalink($member_homepage_id);
}
}
return $redirect_to;
}
function custom_init()
{
remove_filter('login_redirect', 'pmpromh_login_redirect', 10, 3);
add_filter('login_redirect', 'pmpromh_modified_login_redirect', 10, 3);
}
add_action('init', 'custom_init');
function my_pmpromh_template_redirect_homepage() {
global $current_user;
//is there a user to check?
if(!empty($current_user->ID) && is_front_page()) {
$member_homepage_id = pmpromh_getHomepageForLevel();
if(isset($_REQUEST['redirect_to']) && $_REQUEST['redirect_to'] != admin_url()){
wp_redirect($_REQUEST['redirect_to']);
exit;
}
else if(!empty($member_homepage_id) && !is_page($member_homepage_id)) {
wp_redirect(get_permalink($member_homepage_id));
exit;
}
}
}
add_action('template_redirect', 'my_pmpromh_template_redirect_homepage', 5);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment