adding xprofile for this user

时间:2019-12-19 作者:Francisco

我创建的代码可以让用户注册并自动登录。我的困难在于为该用户添加xprofile。你能帮帮我吗?

add_action(\'quform_post_process_7\',\'register\', 10, 2);
function register ($result, $form) {
    $username = $form->getValueText( \'quform_7_6\' );
    $email    = $form->getValueText( \'quform_7_6\' );
    $password = $form->getValueText( \'quform_7_7\' );
    $role = \'shop_manager\';
    $userId =  wp_insert_user(array(
        \'user_login\' => $username,
        \'user_pass\' => $password,
        \'user_email\' => $email,
        \'role\' => $role,
    ));

    $hash = wp_hash_password($password);
    update_user_meta( $user_id, \'_is_shop_manager\', 1 );
    update_user_meta($userId, \'nickname\', $form->getValueText(\'quform_7_28\'));
    update_user_meta($userId, \'first_name\', $form->getValueText(\'quform_7_28\'));

    if(!is_wp_error( $userId)){

        wp_set_current_user( $userId); // set the current wp user
        wp_set_auth_cookie( $userId); // startthe cookie for the current registered user

        if (bp_is_active(\'xprofile\')) {

            if (!empty($usermeta[\'1,43,44\'])) {

                $profile_field_ids = explode(\',\', $usermeta[\'1,43,44\']);

                foreach ((array) $profile_field_ids as $field_id) {
                    if (empty($usermeta["field_1"])) {
                         $usermeta = array(
                            \'field_1\' => $form->getValueText(\'quform_7_28\'),
                            \'field_43\' => $form->getValueText( \'quform_7_6\' ),
                            \'field_44\' => $form->getValueText(\'quform_7_20\'),

                        );
                     }
                    $current_field = $usermeta["field_1"];
                    xprofile_set_field_data($field_id, $user_id, $current_field);

                } 
            }
        }
    }
    return $result;

} 

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

您似乎假设xprofile字段id与用户元字段id相同-如果相同,那只是巧合。如果尚未创建xprofile字段,则需要这样做。然后使用这些xprofile字段的ID。或者可以使用xprofile字段的名称

http://hookr.io/functions/xprofile_set_field_data/

相关推荐

如何覆盖BuddyPress 3.0 BP-新主题文件?

Buddypress 3.0使用bp-nouveau 默认为模板。如何覆盖WordPress主题中的CSS和其他模板文件?早些时候,可以通过复制bp-legacy 文件夹,并将其重命名为buddypress 但这似乎不适用于英国石油公司的新主题。即使我将其复制到主题文件夹中,BuddyPress也会继续使用BuddyPress插件位置中的文件。我在法典中找不到关于Buddypress 3.0模板结构的任何信息。