Gravity Forms WordPress按用户角色跳转:新增角色判断条件求助
你可以通过新增 elseif 条件分支的方式扩展多角色跳转规则,修改后的代码示例如下:
add_filter( 'gform_user_registration_login_redirect_url', 'gf_redirect_user_role', 10, 2 ); function gf_redirect_user_role( $login_redirect, $sign_on ) { GFCommon::log_debug( __METHOD__ . '(): Running...' ); // 订阅者跳转规则 if ( in_array( 'subscriber', $sign_on->roles ) ){ $login_redirect = 'https://subscriber-url'; // 替换为订阅者跳转地址 GFCommon::log_debug( __METHOD__ . '(): 订阅者跳转至 ' . $login_redirect ); } // 编辑角色跳转规则,可按需复制新增更多分支 elseif ( in_array( 'editor', $sign_on->roles ) ) { $login_redirect = 'https://editor-url'; // 替换为编辑角色跳转地址 GFCommon::log_debug( __METHOD__ . '(): 编辑跳转至 ' . $login_redirect ); } // 管理员跳转规则 elseif ( in_array( 'administrator', $sign_on->roles ) ) { $login_redirect = 'https://admin-url'; // 替换为管理员跳转地址 GFCommon::log_debug( __METHOD__ . '(): 管理员跳转至 ' . $login_redirect ); } // 可选:所有未匹配到的角色统一跳转地址,不需要可以删除 else { $login_redirect = 'https://default-url'; GFCommon::log_debug( __METHOD__ . '(): 其他角色跳转至 ' . $login_redirect ); } return $login_redirect; }
注意事项
- 条件里填写的是用户角色的slug标识,不是前端显示的角色名称,默认WordPress内置角色的slug分别是:管理员
administrator、编辑editor、作者author、贡献者contributor、订阅者subscriber,自定义角色直接填写你注册时用的slug即可 - 角色判断是按分支顺序匹配的,若用户同时拥有多个角色,只会触发第一个匹配到的分支规则
- 开启Gravity Forms调试模式后,可以通过日志确认对应角色的跳转逻辑是否正常触发
内容的提问来源于stack exchange,提问作者Rubiwane
相关产品推荐
相关产品推荐

