Redirect to Login in User Permissions Plugin
seonghuhn | June 12, 2009 8:00 AMIf a post is protected and the user does not have permission to view the post then the User Permissions Plugin redirects the user to the index page of the website, i.e. “/”.
On my blog I had previously updated this plugin so that the user is redirect to the Protected Posts page. I have since updated the plugin to redirect to the login page if the user does not have permission to view the post. This is because on my blog if a user does not have permission it is most likely because she is not registered and/or not logged in. Once the user logs in she will be redirected to the post she intended to view.
To figure out how to do this I followed several steps.
- Figure out what properties of the post were available to me.To do this I used the new Reflection API in PHP 5 to find this information.
Reflection::export(new ReflectionObject($post))
It turned out that there was a page describing all the post properties available in the API.
- Figure out how to get information about the blog itself. Fortunately there is a simple get_bloginfo template tag. I used this to get the URL of the blog.
- Figure out how to create the login URL and redirect to that URL. I determined that though my URL permalink structure is site-url/year/month/day/post-name, e.g. http://www.kimplicity.com/fkim/blog/2009/06/12/sample-post/, that if I gave a URL of the structure site-url/post-name that it would properly redirect. But then I determined that an even better solution would be to use the URL site-url?p=ID where ID is the post ID.
Here are the modifications I made.
*** user-permissions.php
***************
*** 98,104 ****
{
if (is_single () || is_page ()) {
if (empty($id) || $id == $post->ID) {
! $permissions->redirect ();
}
}
else
--- 98,104 ----
{
if (is_single () || is_page ()) {
if (empty($id) || $id == $post->ID) {
! $permissions->redirect ($post->ID);
}
}
else
*** permissions.php
***************
*** 155,163 ****
! function redirect ()
{
if ($this->redirect_read > 0)
wp_redirect (get_permalink ($this->redirect_read));
! else
! wp_redirect ('/fkim/blog/2009/05/28/protected-posts/');
die ();
}
}
--- 155,166 ----
! function redirect ($postid)
{
if ($this->redirect_read > 0)
wp_redirect (get_permalink ($this->redirect_read));
! else {
! $site_url = get_bloginfo('siteurl');
! $login_url = $site_url . '/wp-login.php?redirect_to=' .
! $site_url . '/?p=' . $postid;
! wp_redirect ($login_url);
! }
die ();
}
}
Related posts:
- Getting User Permissions to work with YARPP
- Protected Posts
- WordPress Theme Switcher Plugin and Widget Not Working
- Configuring Vista for Automatic Login
- Related and Popular Posts in WordPress
Tags: wordpress
Categories: Web
No Comments »

No Responses to “Redirect to Login in User Permissions Plugin”
Care to comment?