{"id":3025,"date":"2025-12-27T20:58:31","date_gmt":"2025-12-27T20:58:31","guid":{"rendered":"https:\/\/www.swiftcommerce.io\/help\/?post_type=docs&#038;p=3025"},"modified":"2026-11-07T11:45:53","modified_gmt":"2026-11-07T11:45:53","password":"","slug":"email-verification","status":"publish","type":"docs","link":"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/","title":{"rendered":"Email Verification"},"content":{"rendered":"<div class=\"wp-block-group registration-access-moved has-background has-border-color\" style=\"border-color:#d9e1ee;border-width:1px;border-radius:10px;background-color:#f5f7fc;margin-top:20px;margin-bottom:20px;padding:16px 20px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><p class=\"wp-block-paragraph\"><strong>Email Verification: standalone feature deprecated.<\/strong> Email Verification and Registration Form are now combined in <strong>Registration &amp; Access<\/strong>. The functionality remains available; its settings now live in one workspace. This page is retained for earlier versions. <a href=\"https:\/\/www.swiftcommerce.io\/help\/customization\/registration-access\/\">Open the current Registration &amp; Access guide<\/a>.<\/p>\n<\/div><\/div>\n\n<p class=\"wp-block-paragraph\">Require newly registered users to verify their email address before signing in. With Pro, you can instead review accounts manually, enforce verification at logged-in checkout, and manage pending users.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Before you start<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable Email Verification in Swift Commerce \u2192 Customers \u2192 Email Verification.<\/li>\n\n\n\n<li>Confirm that WordPress registration or WooCommerce My Account registration is enabled for the form you intend to protect.<\/li>\n\n\n\n<li>Send a test registration using an address you control. Your site must be able to deliver WordPress email for link verification to work.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Settings: choose registration forms<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Turn on <strong>WordPress Registration<\/strong> for the default WordPress registration form and\/or <strong>WooCommerce My Account<\/strong> for WooCommerce account registration. Save Changes after selecting your surfaces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If Swift Commerce Registration Form is enabled on the same form, <strong>Registration Form controls fields<\/strong> lets that feature supply its field order and custom fields. Turn it off to use Email Verification\u2019s default password setup fields. New users create a password during registration, so their account is ready after verification or approval.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"704\" src=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2-1024x704.jpeg\" alt=\"Email Verification settings showing registration form verification and role exemptions\" class=\"wp-image-3328\" srcset=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2-1024x704.jpeg 1024w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2-300x206.jpeg 300w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2-768x528.jpeg 768w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2-360x247.jpeg 360w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-2.jpeg 1120w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Role exemptions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Expand <strong>Role exemptions<\/strong> to exempt selected existing WordPress\/WooCommerce roles. This checks the role assigned after registration; it does not assign a role. WordPress commonly assigns Subscriber and WooCommerce commonly assigns Customer. Exempting either may let public registrations bypass verification, so leave them unchecked if those accounts must verify.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verification Email<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open the <strong>Verification Email<\/strong> tab to edit the message and shared email design, preview desktop and mobile, and send a test. Keep the <code>{{verification_link}}<\/code> placeholder in the email so recipients can complete verification. The subject and message can also use <code>{{user_name}}<\/code>, <code>{{user_email}}<\/code>, <code>{{site_name}}<\/code>, <code>{{site_url}}<\/code>, and <code>{{expiry_time}}<\/code> where appropriate. Save editor changes and test delivery before inviting customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Advanced (Pro)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Verification mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose <strong>Email Verification<\/strong> to send a self-service verification link, or <strong>Admin Approval<\/strong> to hold new accounts until a site administrator approves them. In approval mode, review the pending, approved, administrator-notification, and rejected-account email templates in the email editor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checkout enforcement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enable <strong>Logged-in Checkout<\/strong> to require tracked, unverified users to complete verification before placing an order. This setting applies to classic WooCommerce checkout and Checkout Blocks. It is separate from choosing which registration forms to protect.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Links, resends, and retention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Verification Link Expiry:<\/strong> 1, 3, 6, 12, 24, 48, or 72 hours. Expired links require a new verification message.<\/li>\n\n\n\n<li><strong>Administrative Resend Limit:<\/strong> unlimited, 3, 5, or 10 resends. This limits resends from the administrative workflow.<\/li>\n\n\n\n<li><strong>Auto-delete Unverified Users:<\/strong> Never, 24\/48\/72 hours, or 7\/14\/30 days. Deletion removes the WordPress account; use this only after choosing a retention period appropriate for your store.<\/li>\n\n\n\n<li><strong>Redirect After Verification:<\/strong> an optional same-site URL. Leave it empty to send users to the account login page.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Pending Users (Pro)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>Pending Users<\/strong> to search and review accounts awaiting verification or approval. In link mode, you can resend a verification email or mark a user verified. In the current Registration &amp; Access workflow, review each registration to approve or reject it. Rejection retains the account with access restricted; it does not delete the WordPress user. Reopen for review returns a rejected account to pending approval without granting access. See the linked current guide for the updated review controls.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the list fails to load, use its Retry action. Do not infer that an empty list means there are no pending users when the dashboard reports an error.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check the customer experience<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Register a test account on each protected form. Confirm the password field appears, the correct email arrives, and the account cannot sign in before verification or approval.<\/li>\n\n\n\n<li>Follow the link\u2014or approve the user in Pending Users\u2014and confirm sign-in succeeds. If checkout enforcement is on, also test a logged-in unverified account at your active checkout type.<\/li>\n\n\n\n<li>Verify that any exempt roles and the Registration Form field-source setting behave as intended.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Free and Pro<\/h2>\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Free:<\/strong> registration-form verification, the verification email, and role exemptions. <strong>Pro:<\/strong> manual approval, logged-in checkout enforcement, link\/resend\/retention controls, redirect after verification, and the Pending Users management workflow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<script type=\"application\/ld+json\" data-swift-commerce-documentation-schema=\"1\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/#article\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/\",\"headline\":\"Email Verification\",\"description\":\"Find the legacy Email Verification guide and use Registration & Access for current verification, administrator approval and registration controls.\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/#webpage\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Swift Commerce\",\"url\":\"https:\/\/swiftcommerce.io\/\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/#webpage\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/\",\"name\":\"Email Verification\",\"description\":\"Find the legacy Email Verification guide and use Registration & Access for current verification, administrator approval and registration controls.\",\"inLanguage\":\"en\",\"breadcrumb\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spam\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/docs-category\/spam\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Email Verification\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/spam\/email-verification\/\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Find the legacy Email Verification guide and use Registration &#038; Access for current verification, administrator approval and registration controls.<\/p>\n","protected":false},"author":101,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[78],"doc_tag":[],"class_list":["post-3025","docs","type-docs","status-publish","hentry","doc_category-spam"],"year_month":"2026-11","word_count":688,"total_views":"135","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Mansoor Ahmad","author_nicename":"helpadmin","author_url":"https:\/\/www.swiftcommerce.io\/help\/author\/helpadmin\/"},"doc_category_info":[{"term_name":"Spam","term_url":"https:\/\/www.swiftcommerce.io\/help\/docs-category\/spam\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/comments?post=3025"}],"version-history":[{"count":8,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3025\/revisions"}],"predecessor-version":[{"id":3404,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3025\/revisions\/3404"}],"wp:attachment":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/media?parent=3025"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_category?post=3025"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_tag?post=3025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}