I'm making more revisions to my template so the information is pretty fresh in my mind right now. I'll walk you through it.
Add the additional columns you require in the Registrations list.
In the Registrations list settings page, mouse over these new fields and note the field name in the bottom bar of the browser. If the full name doesn't appear, click on the link for the field and jot down the internal field name from the query string. If you see escaped markup like this, replace the %5F with an underscore.
Code:
Field=Employee%5Fx0020%5FPhone
Open Sharepoint Designer, expand the Lists, expand Registrations, and open the Register.aspx page. Navigate down the page until you get to the <xsl:template name="dvt_1.rowedit"> section.
Find this bit of code.
Code:
<tr style="display: none">
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>Title</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody">
<asp:TextBox runat="server" value="Form loaded {$Today}" id="ff2{$Pos}" text="{@Title}" __designer:bind="{ddwrt:DataBind('i',concat('ff2',$Pos),'Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}" />
<SharePoint:FieldDescription runat="server" id="ff2description{$Pos}" FieldName="Title" ControlMode="New"/>
</td>
</tr>
Copy this section of code and paste in as many times as columns as you created. Delete style="display: none" from the TR. Replase the ASP text box code with:
Code:
<SharePoint:FormField runat="server" id="ff2{$Pos}" ControlMode="New" FieldName="Title" __designer:bind="{ddwrt:DataBind('i',concat('ff2',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}"/>
Now replace each instance of ff2 with a unique number. I typically start at 9000 so I know that I won't run into any issues with collisions. For each additional column, add 1 to the value you started with. Replace the FieldName values with the display name of the column and replace @Title with @TheColumnName you jotted down above. If you can't recall these, refresh the datasource on the page and the fields should show up in the DataFields section of the web part.
Save the changes and try to register for a class. It might be beneficial to try this on 1 additional column at first to make sure it's all functioning properly.
Also, if you want the field to be mandatory, use this code.
Code:
<nobr>Field Display Name<span class="ms-formvalidation"> *</span></nobr>