【问题标题】:Assign user role by text field content in Wordpress通过 Wordpress 中的文本字段内容分配用户角色
【发布时间】:2021-04-11 14:33:00
【问题描述】:

我有一个 woocommerce 虚拟商店,我使用 USER REGISTRATION 插件注册新客户。该插件允许创建自定义字段。 我创建了一个名为“STATE REGISTRATION”的自定义文本字段。在此字段中,用户可以写一些东西或将其留空。

我的需求是,在新建用户的时候,wordpress会读取这个“STATE REGISTRATION”字段,看看里面有没有填写的内容。

如果您填写了某些内容,我需要用户在他们的个人资料中添加第二个“角色”。

我之前创建了这个角色,它被称为“IE”。

我正在尝试这个,但不起作用!

add_action( 'user_registration_after_register_user_action', 'adiciona_role_ie', 9999, 3 );
function adiciona_role_ie( $valid_form_data, $form_id, $user_id ) {
    $billing_ie = '';
    if ( isset( $valid_form_data['billing_ie'] ) && ! empty( $valid_form_data['billing_ie']->value ) ) {
        echo $billing_ie = $valid_form_data['billing_ie']->value;
    }
    if ( ! empty( $billing_ie ) ) {
    
    add_filter('user_registration_after_register_user_action', 'wc_assign_custom_role', 10, 1);

    function wc_assign_custom_role($args) {
      $args['role'] = 'ie';
      
      return $args;
    }
        //update_user_meta( $user_id, 'ie', $role );
    }
}

【问题讨论】:

    标签: woocommerce roles


    【解决方案1】:

    首先,动物如何点击(-)来回答问题?

    其次,这里是解决方案。

    function ur_update_role( $valid_form_data, $form_id, $user_id ) {
    global $table_prefix;
    $assign_roles_list = array();
    if( isset( $valid_form_data['billing_ie']) && !empty( $valid_form_data['billing_ie']->value ) ) {
    array_push( $assign_roles_list, 'ie' );
    }
    if ( ! empty( $assign_roles_list ) ) {
    // Re-ordering roles according to priority.
    $user_roles_list = ur_get_default_admin_roles();
    foreach ( $user_roles_list as $key => $value ) {
    if ( ! in_array( $key, $assign_roles_list, true ) ) {
    unset( $user_roles_list[ $key ] );
    } else {
    $user_roles_list[ $key ] = true;
    }
    }
    $field_name = $table_prefix . 'capabilities';
    update_user_meta( $user_id, $field_name, $user_roles_list );
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 2015-11-11
      • 2013-05-15
      • 2021-04-17
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多