How do I display code on thank you page based on filled metafield?

Topic summary

A user is trying to conditionally display custom metafield content on Shopify’s thank you page using JavaScript in the checkout settings’ additional scripts section.

Current Problem:

  • The code hides the section when the metafield is blank (desired behavior)
  • However, it fails to display the content when the metafield is actually filled in (unintended)
  • The metafield in question is a multi-line text type: order.metafields.custom.message_to_customer

Goal:
Only show the “Delivery message” section and its content when the metafield contains data; hide it completely when blank.

Status:
Another user suggested a conditional approach, but the initial attempt didn’t resolve the display issue when content is present. The discussion remains ongoing as they troubleshoot why filled metafields aren’t appearing despite the blank state being handled correctly.

Summarized with AI on November 13. AI used: claude-sonnet-4-5-20250929.

Hi all!

I have the following code added to my thank you page using the ‘additional scripts’ section in checkout settings.

<script>
   Shopify.Checkout.OrderStatus.addContentBox(
     '<h2>Delivery message (if applicable)</h2>',
     '<p>{{ order.metafields.custom.message_to_customer }}</p>'
    )
</script>

I wondered if anyone could please offer some advice on how to achieve the following… Display this code on the thankyou page when a metafield is filled. When it is blank, show nothing.

The metafield is a multi-line text type.

Thank you!

Try this: If not, I would have to give you some code to place directly into your theme files:


@SomeUsernameHe Thank you for your fast response!

I have just tried that and it removes the section when blank. But doesn’t seem to re-appear when content is added.

If you have any more suggestions that would be greatly appreciated.

Thanks

Of course, hopefully, I can be of some help!

Question, the original code worked correctly right? It displayed the message when the metafield was filled in, except when it is blank it still shows "

<h2>Delivery message (if applicable)</h2>

Just want to make sure I understand your issue. :slightly_smiling_face:

@SomeUsernameHe it seems to be the other way round actually.

The code hides the section when blank but doesnt show it when it is filled in.