diff --git a/assets/js/src/settings/pages/woo_commerce/checkout_optin.tsx b/assets/js/src/settings/pages/woo_commerce/checkout_optin.tsx
new file mode 100644
index 0000000000..1634868345
--- /dev/null
+++ b/assets/js/src/settings/pages/woo_commerce/checkout_optin.tsx
@@ -0,0 +1,58 @@
+import React from 'react';
+import { t, onToggle, onChange } from 'common/functions';
+import { Label, Inputs } from 'settings/components';
+import { useSetting, useAction } from 'settings/store/hooks';
+
+export default function CheckoutOptin() {
+ const [enabled, setEnabled] = useSetting('woocommerce', 'optin_on_checkout', 'enabled');
+ const [message, setMessage] = useSetting('woocommerce', 'optin_on_checkout', 'message');
+ const setErrorFlag = useAction('setErrorFlag');
+ const emptyMessage = message.trim() === '';
+ React.useEffect(() => {
+ setErrorFlag(emptyMessage);
+ }, [emptyMessage, setErrorFlag]);
+
+ return (
+ <>
+
+
+ {emptyMessage && (
+
+ {t('wcOptinMsgCannotBeEmpty')}
+
+ )}
+