static function get_redirect_url($requested_redirect_to)
 {
     global $wpdb, $rul_db_addresses;
     $redirect_to = false;
     $rul_all = $wpdb->get_var('SELECT rul_url FROM ' . $rul_db_addresses . ' WHERE rul_type = \'register\' LIMIT 1');
     if ($rul_all) {
         $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_all, false);
         return $redirect_to;
     }
     // No rule exists
     return $redirect_to;
 }
function redirect_to_front_page($redirect_to, $requested_redirect_to, $user)
{
    global $wpdb, $rul_db_addresses;
    // Check for an extended custom redirect rule
    $rul_custom_redirect = apply_filters('rul_before_user', false, $redirect_to, $requested_redirect_to, $user);
    if ($rul_custom_redirect) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_custom_redirect, $user);
        return $redirect_to;
    }
    // Check for a redirect rule for this user
    $rul_user = $wpdb->get_var('SELECT rul_url FROM ' . $rul_db_addresses . ' WHERE rul_type = \'user\' AND rul_value = \'' . $user->user_login . '\' LIMIT 1');
    if ($rul_user) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_user, $user);
        return $redirect_to;
    }
    // Check for an extended custom redirect rule
    $rul_custom_redirect = apply_filters('rul_before_role', false, $redirect_to, $requested_redirect_to, $user);
    if ($rul_custom_redirect) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_custom_redirect, $user);
        return $redirect_to;
    }
    // Check for a redirect rule that matches this user's role
    $rul_roles = $wpdb->get_results('SELECT rul_value, rul_url FROM ' . $rul_db_addresses . ' WHERE rul_type = \'role\'', OBJECT);
    if ($rul_roles) {
        foreach ($rul_roles as $rul_role) {
            if (isset($user->{$wpdb->prefix . 'capabilities'}[$rul_role->rul_value])) {
                $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_role->rul_url, $user);
                return $redirect_to;
            }
        }
    }
    // Check for an extended custom redirect rule
    $rul_custom_redirect = apply_filters('rul_before_capability', false, $redirect_to, $requested_redirect_to, $user);
    if ($rul_custom_redirect) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_custom_redirect, $user);
        return $redirect_to;
    }
    // Check for a redirect rule that matches this user's capability
    $rul_levels = $wpdb->get_results('SELECT rul_value, rul_url FROM ' . $rul_db_addresses . ' WHERE rul_type = \'level\' ORDER BY rul_order, rul_value', OBJECT);
    if ($rul_levels) {
        foreach ($rul_levels as $rul_level) {
            if (rulRedirectFunctionCollection::redirect_current_user_can($rul_level->rul_value, $user)) {
                $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_level->rul_url, $user);
                return $redirect_to;
            }
        }
    }
    // Check for an extended custom redirect rule
    $rul_custom_redirect = apply_filters('rul_before_fallback', false, $redirect_to, $requested_redirect_to, $user);
    if ($rul_custom_redirect) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_custom_redirect, $user);
        return $redirect_to;
    }
    // If none of the above matched, look for a rule to apply to all users
    $rul_all = $wpdb->get_var('SELECT rul_url FROM ' . $rul_db_addresses . ' WHERE rul_type = \'all\' LIMIT 1');
    if ($rul_all) {
        $redirect_to = rulRedirectFunctionCollection::rul_replace_variable($rul_all, $user);
        return $redirect_to;
    }
    // No rules matched or existed, so just send them to the WordPress admin panel as usual
    return $redirect_to;
}