Checkout and billing fields
Updated October 30, 2026
Choose the fields buyers fill in at checkout, and decide whether they need an account to pay.
How a buyer pays
The checkout holds the payment form and an order summary. You can place it as the Checkout block, the [tiermint_checkout] shortcode or an Elementor widget. The Checkout page setting under TierMint → Settings → General tells TierMint which page holds it. Storefront pages covers that setting.

- The buyer fills in Email address and any other fields you turned on, then clicks Pay now.
- TierMint checks the cart and the fields, creates a pending order and starts a payment at Stripe. The Stripe payment form then opens in the Payment section with the note "Enter your payment details above to finish."
- The buyer enters their payment details and clicks Pay now again. Stripe runs any check the buyer's bank asks for, such as 3D Secure.
- Stripe sends the buyer back to the checkout page. It shows "Thank you for your purchase!" and updates when the order completes.
This is the checkout after step 2, with a discount code applied. The fields Stripe shows depend on the payment methods you turn on in your Stripe Dashboard and on the buyer's country.

The order completes when Stripe's webhook confirms the payment, not when the buyer's browser comes back. Stripe payments explains the webhook.
If the total changes between loading the page and paying, for example because a discount code ran out, the checkout shows the new total and asks the buyer to review it before they enter payment details. Paying needs JavaScript. Without it, the checkout says so.
When the PayPal gateway in TierMint Pro is set up next to Stripe, the Payment section asks the buyer to pick a Payment method. PayPal payments covers it.
Checkout settings
Open TierMint → Settings → General. The checkout options are in the Checkout group. Change them and click Save changes. They apply to every checkout on the site, whether you placed it as a block, a shortcode or an Elementor widget.
| Setting | Default | What it does |
|---|---|---|
| Require terms acceptance at checkout | Off | Adds a checkbox the buyer must tick before paying. |
| Collect a billing country | Off | Adds a country list. |
| Collect a VAT or tax ID | Off | Adds an optional tax ID field. |
| Collect a billing address | Do not collect an address | Adds address fields, optional or required. |
| Show a login panel at checkout | On | Lets a returning customer log in before paying. |
| Create an account for guests | Off | Creates a WordPress account when a guest's purchase completes. |
| Allow guest checkout | On | Lets buyers pay without an account. |
| Require a first name at checkout | Off | Makes the first name mandatory. |
| Require a last name at checkout | Off | Makes the last name mandatory. |
| Offer a company purchase option | On | Adds an "I am buying as a company" checkbox. |
The buyer's name
The Contact section always has Email address, First name and Last name. Both name fields are optional and say so in their labels. Turn on Require a first name at checkout or Require a last name at checkout to make one mandatory. The browser then will not submit the form while it is empty, and the server refuses a payment that arrives without it.
TierMint saves the names on the customer record. When TierMint creates a WordPress account for the buyer, it copies the names to the account. TierMint Pro invoices print them.
Terms and conditions
Turn on Require terms acceptance at checkout to add a checkbox to the Payment section. Its label reads "I agree to the Terms and Conditions and Privacy Policy." Each name links to the page you chose as Terms page or Privacy policy page under TierMint → Settings → General, and opens in a new tab. If Privacy policy page is empty, the name links to the page set under Settings → Privacy in WordPress. A name with no page at all shows as plain text.
The browser will not submit the form until the box is ticked, and the server refuses a payment without it. TierMint records when the buyer accepted, and the order screen shows it as Terms accepted.
Billing country
Turn on Collect a billing country to add a Country list to the Billing section. Buyers can leave it blank. The order screen shows the choice as Billing country.
The list holds every country in TierMint's catalog. To sell to fewer countries, narrow it with the tiermint_checkout_countries filter. The filter can only remove countries, and if it leaves none, the full list comes back.
add_filter( 'tiermint_checkout_countries', function ( array $countries ): array {
return array_intersect_key( $countries, array_flip( array( 'US', 'CA', 'GB' ) ) );
} );
The country list and the tax ID field follow the two settings. An extension can turn either one on with the tiermint_checkout_collect_field filter, but it cannot turn off a field you collect. The filter gets the setting's value and the field key, billing_country or vat_number. Answer for the field you need and return the value unchanged for the other, or you undo another extension's request.
add_filter( 'tiermint_checkout_collect_field', function ( bool $collect, string $key ): bool {
return 'billing_country' === $key ? true : $collect;
}, 10, 2 );
While a field is on for an extension, its setting under TierMint → Settings → General says so. TierMint Pro taxes uses the filter: while tax calculation is on, the country list and the tax ID field always show, and Pro makes the country required.
Company purchases and tax IDs
Offer a company purchase option is on by default. It adds an I am buying as a company checkbox to the Billing section. Ticking it opens a Company name field, plus the tax ID field when Collect a VAT or tax ID is on.
Collect a VAT or tax ID adds the field VAT, GST, or tax ID (optional). It is always optional. With the company option on, the field sits behind the company checkbox. With the company option off, it shows on its own.
TierMint stores the company name and the tax ID on the order, not on the customer, because the same buyer may buy privately next time. It stores each one only when its field is on and the buyer filled it in. The order screen shows them as Company and Tax ID, and the orders CSV export has both. A TierMint Pro invoice prints the company name, and TierMint Pro taxes use the tax ID for the EU reverse charge.
Billing address
Collect a billing address has three options.
| Option | Result |
|---|---|
| Do not collect an address (default) | No address fields. |
| Collect an optional address | The fields show, and the buyer can leave them blank. |
| Require an address | The buyer must fill in Address and City. |
The fields are Address, Address line 2 (optional), City, State or region (optional) and Postal code (optional). The postal code stays optional for buyers in countries that have none. TierMint stores the address on the order. The order screen shows it as Billing address, and the orders CSV export has it in one column. The fields start empty on every purchase.
With TierMint Pro, the invoice option Show the buyer's billing address on invoices is on by default. While it is on, the checkout requires an address whatever this setting says, and the setting's description tells you so.
Accounts at checkout
By default a buyer can pay as a guest with an email address only. Three settings change that.
Show a login panel
With Show a login panel at checkout on, a logged-out buyer sees a collapsed panel above the form that reads "Returning customer?" with a Log in link. It opens a login form. After login, the buyer comes back to the checkout with their email filled in. Logged-in buyers never see the panel.
Create an account for guests
With Create an account for guests on, TierMint gives a guest a WordPress account when their purchase completes, so their orders, downloads and licenses show in the account area.
- If a WordPress account already uses the buyer's email, TierMint links the customer record to it and leaves the account alone.
- Otherwise it creates an account with the buyer's name. The account gets your site's default role when that role can only read, as Subscriber can. If the default role can do more, such as Author, the account gets Subscriber. WordPress emails the buyer a link to set a password. No password is sent.
TierMint creates the account when the payment completes, so an abandoned checkout never makes one. If the account cannot be created, the purchase still completes and TierMint logs the error. The buyer is not logged in automatically. Developers can change the new account with the tiermint_auto_register_user_args filter, or stop the email with tiermint_auto_register_notify. The filter cannot give the account a role that can do more than read.
Require an account
Turn off Allow guest checkout to require an account. What a logged-out buyer sees then depends on Create an account for guests.
| Create an account for guests | What a logged-out buyer sees |
|---|---|
| On | The normal checkout, with a note that TierMint will create an account when the purchase completes and email a link to set a password. The login panel also shows, even when Show a login panel at checkout is off. |
| Off | "Please log in to check out" and a login form in place of the payment form. The order summary stays visible. |
With both settings off, a buyer must have an account before they can pay. The login form shows a Create an account link to your Registration page when one is set. Without one, it links to the WordPress registration form when the WordPress setting Anyone can register is on (Settings → General in WordPress). With neither, only people who already have an account can buy.
While guest checkout is off, a logged-in buyer's email field is locked to their account email, so the order always belongs to their account.
The order summary
The summary lists each line with its plan and price. By default it also repeats the plan details from the product details page: the license length and the activation limit, for a licensed product. With TierMint Pro, a recurring plan also shows its billing schedule and any free trial. Under the lines come any discount, a tax line when tax applies, and the total.
The tax line reads Tax. Developers can rename it with the tiermint_checkout_tax_label filter, for example to "VAT" or "Sales tax". The cart summary's last row has its own filter, tiermint_cart_summary_total_label (Cart summary). Both strip HTML tags and keep the default for an empty value.
add_filter( 'tiermint_checkout_tax_label', fn () => 'VAT' );
In the editable summary, each line has a Quantity field with an Update button, and a Remove button. A plan sold as a single unit shows only Remove. Each change reloads the checkout with new totals, so it works without JavaScript. The server holds the quantity to the plan's minimum and maximum.
If a plan's quantity limits changed after the buyer added it, the checkout uses the allowed quantity and shows a notice above the form that names the product and the new quantity.
Checkout options
The Checkout block, the [tiermint_checkout] shortcode and the Elementor widget have the same options. The shortcode uses the attribute names.
| Option | Attribute | Default | What it does |
|---|---|---|---|
| Title | title |
Checkout | The heading above the checkout. Leave it empty to hide it. |
| Button text | button_text |
Pay now | The label on the Stripe payment button. |
| Show order summary | show_summary |
On | Shows the summary beside the form. With it off, the discount box sits below the form. |
| Editable order summary | editable_summary |
On | Lets buyers change quantities and remove lines. Off shows each quantity as a plain badge, such as "x 2". |
| Show plan details | show_plan_details |
On | Repeats each line's license length and activation limit. With TierMint Pro, a recurring line also shows its billing. |
| Show discount code field | show_discount |
On | Shows the Discount code box. |
| Layout | layout |
two-column |
two-column puts the form beside the summary where there is room. single stacks them. |
[tiermint_checkout editable_summary="false" layout="single"]
The Cart summary block has its own Show plan details option. The shortcodes page lists every attribute.
Discount codes at checkout
The Discount code box sits under the order summary. The buyer types a code and clicks Apply. The summary then shows a discount line and the new total. An accepted code turns into "Code SAVE10 applied" with a Remove button. A rejected code shows the reason under the box.
The applied code stays with the cart, so it survives a reload or a new tab. A cart lasts 48 hours from its last change. TierMint checks the code again when the buyer clicks Pay now. A code that has run out or expired by then is dropped, and the buyer sees the new total before entering payment details. Apply and Remove also work without JavaScript.
Discount codes lists the messages buyers see and the limits a code can have.
Common questions
Why is the billing country required when I left it off?
Tax calculation is on in TierMint Pro. Pro needs the country, so it turns on the country list and the tax ID field and makes the country required. The two settings under TierMint → Settings → General say so while it does.
Why does checkout say "Too many checkout attempts"?
TierMint limits each IP address, in 10 minutes, to 10 payment starts, 10 rejected discount codes and 60 total recalculations. A code that is accepted does not count. Past a limit, the request fails with HTTP 429 and the code tiermint_rate_limited, and the buyer sees "Too many checkout attempts. Please wait a moment and try again." Developers can change the limits with the tiermint_rest_rate_limits filter (the scopes are checkout_intent, checkout_discount and checkout_quote).
Why does the checkout ask for an address when address collection is off?
The TierMint Pro invoice option Show the buyer's billing address on invoices is on. Turn it off under the invoice settings to let Collect a billing address decide again.