Here’s a polished help-center style article you can drop into your docs 👇
(I’ll write it as if it’s for merchants.)You can add a clickable Waiver / Terms & Conditions link directly inside the attendee information form by using:
A product metafield (where you store your waiver or terms link), and
A small custom script that injects that link into the attendee form on the storefront.
This is an advanced theme customization and may require basic familiarity with the Shopify theme editor and code editor.
How it works
You create a product metafield (e.g.
waiver_link) and store your waiver URL there.A custom script looks for the attendee information form container and automatically injects a “View Waiver & Terms” section with a link to your waiver.
This appears for customers on the event ticket page where the attendee information form is rendered.
Step 1 – Create a product metafield for the waiver
In Shopify admin, go to Settings → Metafields and Metaobjects ->Products
Click Add a Definition
Name the metafield:
Name: waiver_link
For Type, choose:
Click Save.
Step 2 – Add the waiver link to your product
Go to Products and open the event product you’re using for your tickets.
Scroll down to the Metafields section for the product.
Find the Waiver URL metafield you just created.
Paste in the link to your waiver - each event can have its own specific waiver.
Click Save.
Your product now “knows” which waiver link to use.
Step 3 – Create the script snippet in your theme
Now we’ll add a small custom script that injects a “View Waiver & Terms” section into the attendee form.
In Shopify admin, go to Online Store → Themes.
Click … → Edit code on your current theme.
Under Snippets, click Add a new snippet.
Name it:
waiver-script.liquidPaste the following code into the new snippet:
<script>
document.addEventListener("DOMContentLoaded", function () {
const waiverHTML = `
<div class="waiver-injected" style="margin-top: 10px;">
<details>
<summary style="cursor:pointer; color:#0055cc; text-decoration:underline; font-weight:500;">
View Waiver & Terms
</summary>
<div style="margin-top: 10px;">
By purchasing a ticket, you agree to our waiver and terms.
<br><br>
<a href="{{ product.metafields.custom.waiver_url }}" target="_blank" style="color:#0055cc; text-decoration:underline;">
Read Full Waiver
</a>
</div>
</details>
</div>
`;
const observer = new MutationObserver(() => {
document.querySelectorAll('.event-ticket-content').forEach(section => {
if (!section.querySelector('.waiver-injected')) {
const wrapper = document.createElement('div');
wrapper.innerHTML = waiverHTML;
section.appendChild(wrapper);
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
</script>
🔧 If your metafield is a File type:
You may need to adjust the href to use the file URL filter, for example:
href="{{ product.metafields.custom.waiver_url | file_url }}"
(Use whichever Liquid output you normally use to print the metafield URL.)
Click Save.
Step 5 – Include the script snippet in your theme layout
Next, you need to load this script on pages where the attendee information form appears.
In the same code editor, open
theme.liquid(or your main layout file).
Inside the
<head>or near the bottom before</body>, add:
{% render 'waiver-script' %}Click Save.
This ensures the script runs on pages where your event ticket / attendee information content is rendered.
Step 6 – Test on your storefront
Go to your event / ticket page on your storefront.
Proceed to where the attendee information form appears.
You should now see a “View Waiver & Terms” section inside or just below the attendee content block.
Click Read Full Waiver to confirm that:
The link opens correctly.
The correct waiver is loaded for that event if you have different waivers or terms.
If it doesn’t show:
Confirm the product has the Waiver URL metafield filled in.
Check that the attendee form container uses the
.event-ticket-contentclass on your theme.Make sure the
{% render 'waiver-script' %}line is present intheme.liquid(or in the layout used for your event pages).
Notes & Limitations
This is a custom script, not a built-in app feature. Theme changes or app layout changes may require updates to the script.
The script is currently targeting elements with the class
.event-ticket-content. If your theme or integration uses a different container, this selector may need to be updated.If you use multiple event products, each product can have its own waiver URL via its own metafield value.





