Show an SMS opt-in checkbox on a one-page checkout built with Cashier for WooCommerce so customers can consent to order updates by text before completing checkout.
Requirements
Requires Cashier for WooCommerce (one-page checkout) and SMS for WooCommerce to both be installed and active on your site.
Setup Instructions
- Enable Cashier’s one-page checkout.
- Go to WooCommerce → SMS Settings → SMS Notifications → Checkout Options and turn on Enable SMS Opt-in on Checkout.
- Because Cashier renders WooCommerce’s own classic checkout fields on a single page, all five Opt-in Location options work — pick whichever position fits your layout (e.g. Before place order button is a common choice on a one-page layout).
- Customize the Opt-in Label text and decide whether Opt-in Checkbox Checked by Default should be on — check your local SMS consent laws before pre-ticking it.
- Visit the checkout page and confirm the SMS opt-in option is visible where you expect it, then place a test order to confirm the choice is saved.

Troubleshooting: checkbox isn’t showing
- Opt-in is switched off – confirm ‘Enable SMS Opt-in on Checkout’ is turned on under WooCommerce → SMS Settings → SMS Notifications → Checkout Options.
- Checked the wrong section of a long one-page layout – Cashier stacks all checkout sections on one page, so double-check the Opt-in Location setting actually matches where you’re looking (e.g. it won’t be near billing fields if you chose ‘Before place order button’).
- A caching plugin is serving a stale checkout page – exclude the checkout page from full-page caching, or purge the cache after changing the setting.
- Cart only has booking/appointment products – the checkbox label switches to the separate ‘Booking Opt-in Label’ setting when a bookable product is in the cart; if that field is blank, the checkbox can appear to disappear.
Using a different checkout builder? See CheckoutWC or CartFlows, or browse the full list on the Compatibility page.