WordPress redirect user with role

WordPress has many users roles, you can redirect particular users by role with following function

<?php

function redirect_user_on_role()
 {

 // retrieve current user info

 global $current_user;
 get_currentuserinfo();

 // If login user role is Subscriber

 if ($current_user->user_level == 0)
 {
 wp_redirect(esc_url(get_permalink(get_page_by_title('Perticluar Page By Name'))));
 exit;
 }

 // If login user role is Contributor

   else
 if ($current_user ->user_level > 1)
 {
 wp_redirect(home_url());
 exit;
 }

 // If login user role is Editor

   else
 if ($current_user ->user_level > 8)
 {
 wp_redirect(home_url());
 exit;
 }

 //For other roles
  else
 {
   $redirect_to = 'http://google.com/';
   return $redirect_to;
 }
 }

add_action('admin_init', 'redirect_user_on_role');

Continue reading WordPress redirect user with role

WordPress Plugin Template redirect custom post, page, taxonomy

Here is example of how we can redirect to custom templates in wordpress plugin with page name, custom post type, custom taxonomies etc 

 

<?php
add_action("template_redirect", 'my_theme_redirect');

function my_theme_redirect()
 {
 global $wp;
 $plugindir = dirname(__FILE__);

 // A Specific page by title / name

 if ($wp->query_vars["pagename"] == 'agenda')
 {
 $templatefilename = 'page-event-list.php';
 if (file_exists(TEMPLATEPATH . '/' . $templatefilename))
 {
 $return_template = TEMPLATEPATH . '/' . $templatefilename;
 }
   else
 {
 $return_template = $plugindir . '/templates/' . $templatefilename;
 }

 do_theme_redirect($return_template);
 }

 // A Specific Custom Post Type

 if ($wp->query_vars["post_type"] == 'events')
 {
 $templatefilename = 'single-event.php';
 if (file_exists(TEMPLATEPATH . '/' . $templatefilename))
 {
 $return_template = TEMPLATEPATH . '/' . $templatefilename;
 }
   else
 {
 $return_template = $plugindir . '/templates/' . $templatefilename;
 }

 dmk_redirect_to_login_if_not_logged_in();
 do_theme_redirect($return_template);

 // A Custom Taxonomy Page

 }
 elseif ($wp->query_vars["taxonomy"] || is_tax('location') == 'location')
 {
 $templatefilename = 'taxonomy-event_location.php';
 if (file_exists(TEMPLATEPATH . '/' . $templatefilename))
 {
 $return_template = TEMPLATEPATH . '/' . $templatefilename;
 }
   else
 {
 $return_template = $plugindir . '/templates/' . $templatefilename;
 }

 do_theme_redirect($return_template);
 }
 }

// Function includes file and does redirection

function do_theme_redirect($url)
 {
 global $post, $wp_query;
 if (have_posts())
 {
 include ($url);

 die();
 }
   else
 {
 $wp_query->is_404 = true;
 }
 }