Software License Form template
Collect customer, billing and website details before issuing a software license key. Copy the accessible markup, adjust the fields, and publish it with Core Forms.
What your visitor sees
Plain semantic HTML rendered through the same default form theme Core Forms applies on the front-end. Try it — this demo confirms inline and sends nothing.
Demo only. On your site, the same markup wires into the normal Core Forms action loop — email, Slack, Google Sheets, webhook, whatever you configure.
The HTML behind it
Copy this block, paste into Core Forms → Add New Form → Fields tab, save. Field names map to merge tags automatically in your action templates.
<fieldset>
<legend>Customer details</legend>
<div class="cf-row">
<p><label for="cf-license-first">First name <span aria-hidden="true">*</span></label><input type="text" id="cf-license-first" name="first_name" autocomplete="given-name" required /></p>
<p><label for="cf-license-last">Last name <span aria-hidden="true">*</span></label><input type="text" id="cf-license-last" name="last_name" autocomplete="family-name" required /></p>
</div>
<div class="cf-row">
<p><label for="cf-license-email">Email address <span aria-hidden="true">*</span></label><input type="email" id="cf-license-email" name="email" autocomplete="email" required /></p>
<p><label for="cf-license-phone">Phone number</label><input type="tel" id="cf-license-phone" name="phone" autocomplete="tel" /></p>
</div>
<div class="cf-row">
<p><label for="cf-license-company">Company</label><input type="text" id="cf-license-company" name="company" autocomplete="organization" /></p>
<p><label for="cf-license-tax-id">VAT / GST / tax ID</label><input type="text" id="cf-license-tax-id" name="tax_id" autocomplete="off" /></p>
</div>
</fieldset>
<fieldset>
<legend>Billing address <span class="cf-hint">(optional)</span></legend>
<p><label for="cf-license-address-1">Address line 1</label><input type="text" id="cf-license-address-1" name="address_line_1" autocomplete="billing address-line1" /></p>
<p><label for="cf-license-address-2">Address line 2</label><input type="text" id="cf-license-address-2" name="address_line_2" autocomplete="billing address-line2" /></p>
<div class="cf-row">
<p><label for="cf-license-city">City</label><input type="text" id="cf-license-city" name="city" autocomplete="billing address-level2" /></p>
<p><label for="cf-license-state">State / province / region</label><input type="text" id="cf-license-state" name="state" autocomplete="billing address-level1" /></p>
</div>
<div class="cf-row">
<p><label for="cf-license-postal">Postal code</label><input type="text" id="cf-license-postal" name="postal_code" autocomplete="billing postal-code" /></p>
<p><label for="cf-license-country">Country</label><input type="text" id="cf-license-country" name="country" autocomplete="billing country-name" /></p>
</div>
</fieldset>
<fieldset>
<legend>License details</legend>
<p><label for="cf-license-site">Website where the license will be used</label><input type="url" id="cf-license-site" name="site_url" autocomplete="url" placeholder="https://example.com" /></p>
<p><label for="cf-license-notes">Order notes</label><textarea id="cf-license-notes" name="order_notes" rows="3" aria-describedby="cf-license-notes-help"></textarea><span class="cf-hint" id="cf-license-notes-help">Add an invoice reference or anything the seller should know.</span></p>
</fieldset>
<p><input type="checkbox" id="cf-license-terms" name="terms" value="accepted" required /> <label for="cf-license-terms">I agree to the license terms and privacy policy.</label></p>
<p><button type="submit">Get product license</button></p>
What this software license form template is for
Use it to hand out free license keys or sell paid ones. The plugin ships this form in free, Stripe, PayPal, Polar and Razorpay versions, plus a separate renewal form that checks an existing key and purchase email.
This version asks only for information needed to complete that job. Paid versions need a configured payment gateway and a Core Commerce product before they can issue keys.
The markup uses explicit labels, useful autocomplete values, and fieldsets for grouped choices. You can edit every line instead of working around a locked template schema.
Every field, and why it's there
| Field | Type | Required | Why it's there |
|---|---|---|---|
| First name | text | Yes | Part of the customer record on the license. |
| Last name | text | Yes | Part of the customer record on the license. |
| Email address | email | Yes | The license key, downloads and receipts go here. |
| Phone number | tel | Optional | Optional contact detail for the customer record. |
| Company | text | Optional | Optional, shown on receipts for business buyers. |
| VAT / GST / tax ID | text | Optional | Optional VAT, GST or tax ID for business receipts. |
| Address line 1 | text | Optional | Optional billing address, first line. |
| Address line 2 | text | Optional | Optional billing address, second line. |
| City | text | Optional | Optional billing city. |
| State / province / region | text | Optional | Optional billing state, province or region. |
| Postal code | text | Optional | Optional billing postal code. |
| Country | text | Optional | Optional billing country. |
| Website where the license will be used | url | Optional | Optional, the website where the license will be activated. |
| Order notes | textarea | Optional | Optional notes about the order. |
| I agree to the license terms and privacy policy. | checkbox | Yes | Required agreement to the license terms and privacy policy. |
From this HTML to a working form
- 1
Create the form from a template
In Core Forms, add a new form and choose the Software License Form starting point, or paste the HTML below into code mode.
- 2
Remove what you will not use
Delete unnecessary fields, update the labels and choices, then set the success message to explain what happens next.
- 3
Test the whole path
Submit the form with realistic data. Verify validation, the saved submission, notification email, autoresponder, and any integration action.
Three upgrades worth considering
Show fields only when needed
Keep the first view short and reveal follow-up questions from an earlier answer.
Use conditional logic →Route the submitted data
Send the result to email, a CRM, a spreadsheet, or a signed webhook after validation.
Explore integrations →Check the funnel
Measure starts, successful submissions, and field drop-off after the form has real traffic.
Use form analytics →Software License Form template questions
Is this software license form template free to copy?
Yes. The HTML on this page is free to copy and adapt. Core Forms is required only if you want its WordPress submission handling, inbox, actions, analytics, and other plugin features.
Can I change or remove fields?
Yes. The form is plain HTML. Remove any field you cannot justify, rename fields before collecting data, and keep every label associated with its control.
Does the template save submissions in WordPress?
Core Forms can save successful submissions in its WordPress inbox. Storage is a per-form setting, so you can disable it for forms whose data should not be retained.
Can the form send a confirmation email?
Yes. Add an autoresponder action, map its recipient to the submitted email field, and state what the person should expect next.
How should I test it?
Use realistic valid data, missing required data, a malformed email address, keyboard-only navigation, and a narrow mobile viewport. Also verify every configured action and redirect.
The template is free. The plumbing is the product.
Core Forms turns this HTML into stored submissions, spam-filtered
email, and 30+ integrations. Use
CFLAUNCH for 20% off.