php - 在 Wordpress 登录后将特定用户角色重定向到特定位置
问题描述
我需要将 Shop manager 用户重定向到我在其中添加functions.php
但没有工作的订单页面
add_action('init', 'edit_for_shop_manager');
function edit_for_shop_manager(){
$user = wp_get_current_user();
if(wc_user_has_role($user,'shop_manager')){
function admin_default_page() {
return home_url().'/wp-admin/edit.php?post_type=shop_order';
}
add_filter('login_redirect', 'admin_default_page');
}
}
解决方案
请改用以下内容:
add_filter( 'login_redirect', 'login_redirect_shop_manager_on_orders_list', 10, 3 );
function login_redirect_shop_manager_on_orders_list( $redirect_to, $request, $user ) {
$defined_user_role = 'shop_manager'; // The defined user role
if( isset($user->roles) && is_array($user->roles) && in_array( $defined_user_role, $user->roles ) ) {
$redirect_to = admin_url('edit.php?post_type=shop_order'); // Custom redirection url
wp_safe_redirect( $redirect_to ); // Force redirection
exit(); // Mandatory to avoid errors
}
return $redirect_to;
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。它应该有效。
推荐阅读
- list - 了解守卫功能和列表理解
- python-3.x - 将内容类型文本/HTML 从 API 转换为 JSON
- unity3d - 如何在 Unity vr 中修复您的位置
- c# - 如何在 Windows 窗体 c# 中打开 .bat
- c# - 公共静态变量的最佳替代方案是什么?
- javascript - 如何从这个脚本之外刷新日历?
- php - Warning: sqlsrv_fetch_array() expects parameter 1 to be resource when using explode() as variable in multiple SQL query | PHP, SQL
- python - 如何制作一个向文件添加数字并再次加载自身数字+1的函数?
- matlab - 如何修复“方法解析错误:用法可能是无效的 MATLAB 语法。?
- android - Room:如何将 SQLite 方法转换为 Dao 的 @Query