Woocommerce 如何在注册和登录WoodPress中添加用户角色下拉列表

Woocommerce 如何在注册和登录WoodPress中添加用户角色下拉列表,woocommerce,wordpress,Woocommerce,Wordpress,我有一个工作网站,但我想用角色设置下拉列表我有两个角色候选人和雇主,所以我想设置下拉列表选择他们的角色我正在使用woocommerce注册和登录我想将下拉列表与该角色集成,以便注册和登录woocommerce function wp_dropdown_roles( $selected = '' ) { $p = ''; $r = ''; $editable_roles = array_reverse( get_editable_roles() ); forea

我有一个工作网站,但我想用角色设置下拉列表我有两个角色候选人和雇主,所以我想设置下拉列表选择他们的角色我正在使用woocommerce注册和登录我想将下拉列表与该角色集成,以便注册和登录woocommerce

function wp_dropdown_roles( $selected = '' ) {
    $p = '';
    $r = '';

    $editable_roles = array_reverse( get_editable_roles() );

    foreach ( $editable_roles as $role => $details ) {
        $name = translate_user_role($details['name'] );
        if ( $selected == $role ) // preselect specified role
            $p = "\n\t<option selected='selected' value='" . esc_attr($role) . "'>$name</option>";
        else
            $r .= "\n\t<option value='" . esc_attr($role) . "'>$name</option>";
    }
    echo $p . $r;
}
函数wp\u下拉列表\u角色($selected=''){
$p='';
$r='';
$editable_roles=array_reverse(获取可编辑的_roles());
foreach($role=>$details的可编辑角色){
$name=翻译用户角色($details['name']);
如果($selected=$role)//预选指定的角色
$p=“\n\t$name”;
其他的
$r.=“\n\t$name”;
}
回声$p.$r;
}
试试这个:

function ts_wp_dropdown_roles( $selected = '' ) {
    $p = '';
    $r = '';

    $editable_roles = array_reverse( ts_get_editable_roles() );

    foreach ( $editable_roles as $role => $details ) {
        $name = translate_user_role($details['name'] );
        if ( $selected == $role ) // preselect specified role
            $p = "\n\t<option selected='selected' value='" . esc_attr($role) . "'>$name</option>";
        else
            $r .= "\n\t<option value='" . esc_attr($role) . "'>$name</option>";
    }
    echo $p . $r;
}

// Custom editable_roles function to be used by "ts_wp_dropdown_roles" function
function ts_get_editable_roles() {
    global $wp_roles;

    $all_roles = $wp_roles->roles;

    /**
     * Filter the list of editable roles.
     *
     * @since 2.8.0
     *
     * @param array $all_roles List of roles.
     */
    $editable_roles = apply_filters( 'ts_editable_roles', $all_roles );

    return $editable_roles;
}

add_filter("ts_editable_roles" , "ts_filter_roles", 10 ,1);

function ts_filter_roles($all_roles){
    foreach($all_roles as $key=>$value){
        if($key !== "employer" && $key !== "candidate"){
            unset($all_roles[$key]);
        }
    }
    return $all_roles;

}
函数ts\u wp\u下拉列表\u角色($selected=''){
$p='';
$r='';
$editable_roles=数组_reverse(ts_get_editable_roles());
foreach($role=>$details的可编辑角色){
$name=翻译用户角色($details['name']);
如果($selected=$role)//预选指定的角色
$p=“\n\t$name”;
其他的
$r.=“\n\t$name”;
}
回声$p.$r;
}
//“ts_wp_下拉_角色”功能使用的自定义可编辑_角色功能
函数ts_get_可编辑_角色(){
全球$wp_角色;
$all_roles=$wp_roles->roles;
/**
*筛选可编辑角色的列表。
*
*@自2.8.0以来
*
*@param array$all_角色角色列表。
*/
$editable_roles=应用_筛选器('ts_editable_roles',$all_roles);
返回$U角色;
}
添加_过滤器(“ts_可编辑_角色”、“ts_过滤器_角色”,10,1);
功能ts_过滤器_角色($all_角色){
foreach($key=>$value的所有_角色){
如果($key!=“雇主”&&$key!=“候选人”){
未设置($all_roles[$key]);
}
}
返回$all_角色;
}