You can pass the user’s role directly to wp_insert_user()
. First, you can try to add your custom role to the WP_Roles
object, then pass the custom role to the user properties:
// Add custom roles only once to avoid unnecessary database calls.
// It is usually done during plugin activation.
register_activation_hook( __FILE__, 'cyb_add_roles' );
function cyb_create_role() {
// array with capabilities
$lojas_caps = array();
add_role( 'lojas', 'Lojas', $lojas_caps );
}
function ds_registration_form(&$fields_user, &$errors) {
// ....
$fields_loja['role'] = 'lojas';
$loja_id = wp_insert_user( $fields_loja );
// Or it can be set to default role and then
// add the custom role as additional role
// $loja_id = wp_insert_user( $fields_loja );
// if( ! is_wp_error( $loja_id ) ) {
// $user = new WP_User( $loja_id );
// $user->add_role( 'lojas' );
// }
// ....
}