wordpress插件之Peter's Login Redirect

Peter's Login Redirect的作者是Peter Keung,目前有100,000+个有效安装。已经Tested with 5.4.1版本的wordpress。
Description

Define a set of redirect rules for specific users, users with specific roles, users with specific capabilities, and a blanket rule for all other users. Also, set a redirect URL for post-registration. This is all managed in Settings > Login/logout redirects.

You can use the syntax [variable]username[/variable] in your URLs so that the system will build a dynamic URL upon each login, replacing that text with the user’s username. In addition to username, there is “userslug”, “homeurl”, “siteurl”, “postid-23”, “http_referer” and you can also add your own custom URL “variables”. See Other Notes / How to Extend for documentation.

You can add your own code logic before and between any of the plugin’s normal redirect checks if needed. See Other Notes / How to Extend for documentation. Some examples include: redirecting the user based on their IP address; and redirect users to a special page on first login.

This plugin also includes a function rul_register that acts the same as the wp_register function you see in templates (typically producing the Register or Site Admin links in the sidebar), except that it will return the custom defined admin address. rul_register takes three parameters: the “before” code (by default “

  • ”), the “after” code (by default “
  • ”), and whether to echo or return the result (default is true and thus echo).

    HOW TO EXTEND
    CUSTOM REDIRECT RULES

    You can write your own code logic before any of this plugin’s checks for user-specific, role-specific, and capability-specific redirects, as well as before the fallback redirect URL.

    An example of plugin code to redirect users on first login. See http://www.theblog.ca/wordpress-redirect-first-login for standalone functionality:

    // Send new users to a special page
    function redirectOnFirstLogin( $custom_redirect_to, $redirect_to, $requested_redirect_to, $user )
    {
    // URL to redirect to
    $redirect_url = 'http://yoursite.com/firstloginpage';
    // How many times to redirect the user
    $num_redirects = 1;
    // If implementing this on an existing site, this is here so that existing users don't suddenly get the "first login" treatment
    // On a new site, you might remove this setting and the associated check
    // Alternative approach: run a script to assign the "already redirected" property to all existing users
    // Alternative approach: use a date-based check so that all registered users before a certain date are ignored
    // 172800 seconds = 48 hours
    $message_period = 172800;

    /*
    Cookie-based solution: captures users who registered within the last n hours
    The reason to set it as "last n hours" is so that if a user clears their cookies or logs in with a different browser,
    they don't get this same redirect treatment long after they're already a registered user
    */
    /*

    $key_name = 'redirect_on_first_login_' . $user->ID;

    if( strtotime( $user->user_registered ) > ( time() - $message_period )
    && ( !isset( $_COOKIE[$key_name] ) || intval( $_COOKIE[$key_name] ) ID, $key_name, true );
    if( strtotime( $user->user_registered ) > ( time() - $message_period )
    && ( '' == $current_redirect_value || intval( $current_redirect_value ) ID, $key_name, $num_redirects );
    return $redirect_url;
    }
    else
    {
    return $custom_redirect_to;
    }
    }

    add_filter( 'rul_before_user', 'redirectOnFirstLogin', 10, 4 );

    An example of plugin code to redirect to a specific URL for only a specific IP range as the first redirect check:

    function redirectByIP( $custom_redirect_to, $redirect_to, $requested_redirect_to, $user )
    {
    $ip_check = '192.168.0';
    if( 0 === strpos( $_SERVER['REMOTE_ADDR'], $ip_check ) )
    {
    return '/secret_area';
    }
    else
    {
    return $custom_redirect_to;
    }
    }

    add_filter( 'rul_before_user', 'redirectByIP', 10, 4 );

    It takes 3 parameters:

    $custom_redirect_to: This is set as false in case you don’t have any redirect URL to set. Return this instead of false in case you have multiple filters running.
    $requested_redirect_to: A redirect parameter set via POST or GET.
    $user: A PHP object representing the current user.
    CUSTOM VARIABLE PARAMETERS

    There is an available filter “rul_replace_variable” for adding your own custom variable names. For example, to replace [variable]month[/variable] in the redirect URL with the numeric representation of the current month (with leading zeros):

    function customRULVariableMonth( $custom_redirect_to, $variable, $user )
    {
    if( 'month' == $variable )
    {
    return date( 'm' );
    }
    else
    {
    return $custom_redirect_to;
    }
    }

    add_filter( 'rul_replace_variable', 'customRULVariableMonth', 10, 3 );

    Be sure to rawurlencode the returned variable if necessary.

    微慕商城——精选wordpress插件及wordpress主题,帮助站长快速生成wordpress小程序。
    微慕WordPress小程序商城 » wordpress插件之Peter's Login Redirect

    提供最优质的资源集合

    立即查看 了解详情