see register_form
action hook for modifying the registration form
add_action( "register_form", function() {
$html="<p>".__('Do you want to buy or sell?<br>Choose your role').'</p>';
$html .= '<p>';
$html .= '<label for="_customer"><input type="radio" name="user_role" id="_customer" value="customer"/>'.__('Customer').'</label><br>';
$html .= '<label for="_vendor"><input type="radio" name="user_role" id="_vendor" value="_vendor"/>'.__('Customer').'</label>';
$html .= '</p>';
echo $html;
} );
you can use user_register
action to save selected user role.
add_action( "user_register", function( $user_id ) {
$allowed = array( 'customer', 'vendor' );
if( isset( $_POST['YourFieldName'] ) && in_array( $_POST['YourFieldName'], $allowed ) ){
$user = new WP_User( $user_id );
$user->set_role($_POST['YourFieldName']);
}
} );
check WP_User
class reference document for more information;