The Customer Email Verification Pro plugin adds a crucial layer of security to your WooCommerce store by integrating an email verification step into the registration and checkout process. This ensures that only valid email addresses can be used to create accounts, reducing spam registrations and increasing customer confidence.
Signup Verification
Require email verification at registration with full OTP configuration โ length, expiry, and resend limits.
Checkout Verification
Verify guest & registered customers before or during checkout โ choose Popup overlay or Inline OTP entry.
Login Authentication (2FA)
Require OTP for logins from new devices, new locations, or after a set number of days since last login.
OTP Length & Expiry
Choose 4-digit or 6-digit OTPs and set expiry times โ 10 min, 30 min, 1 hr, 24 hrs, 72 hrs, or never.
Getting started
↑ Back to topCustomer Email Verification Pro helps WooCommerce store owners reduce spam registrations and fake orders by requiring customers to verify their email address using a One-Time Password (OTP).
How to Install the Plugin?
↑ Back to top- Download the plugin ZIP file from your zorem account.
- In WordPress admin, go to Plugins โ Add New โ Upload Plugin.
- Select the ZIP file and click Install Now.
- After installation, click Activate Plugin.
Settings
↑ Back to topConfigure email verification options by navigating to WooCommerce โ Email Verification.
How to Enable Signup Verification?
↑ Back to topSignup verification requires customers to verify their email address before their account is created.
- Go to WooCommerce โ Email Verification.
- Toggle Enable Signup Verification to ON.
- Click Save Changes.
How it works: When a customer submits the registration form, they receive an OTP via email. The account is only created after successful verification of the OTP.

How to Enable Checkout Verification?
↑ Back to topCheckout verification ensures customers verify their email before placing an order.
- Go to WooCommerce โ Email Verification.
- Toggle Enable Checkout Verification to ON.
- Select the Checkout Verification Type:
- Popup: Opens a popup window for OTP entry
- Inline: Displays verification field directly on the checkout page
- Click Save Changes.
Additional Checkout Options
| Option | Description |
|---|---|
| Enable on cart page | Show verification popup on the cart page instead of checkout |
| Free orders only | Require verification only when order total is $0 |
| Create account during checkout | Only verify if customer opts to create an account (inline mode only) |
| Disable Store API Checkout | Block WooCommerce Store API to prevent bypassing verification |

How to Enable Login Authentication?
↑ Back to topLogin authentication adds an extra security layer by requiring OTP verification for suspicious login attempts.
- Go to WooCommerce โ Email Verification.
- Scroll to the Login Authentication section.
- Toggle Enable Login Authentication to ON.
- Enable Require OTP verification for unrecognized login.
- Select the conditions that trigger verification:
- Login from a new device
- Login from a new location
- Last login more than X days ago (15, 30, or 60 days)
- Click Save Changes.

How to Configure OTP Settings?
↑ Back to topCustomize the OTP behavior for all verification types.
- Go to WooCommerce โ Email Verification.
- Locate the General Settings section.
- Configure the following options:
| Setting | Options |
|---|---|
| OTP Length | 4-digit or 6-digit code |
| OTP Expiration | Never, 10 min, 15 min, 30 min, 1 hour, 24 hours, or 72 hours |
| Resend Limit | Allow 1 attempt, 3 attempts, or disable resend |
| Resend Limit Message | Custom message when resend limit is reached |
| Success Message | Message shown after successful verification |

Customization
↑ Back to topCustomize the appearance of verification popups and emails to match your storeโs branding.
How to Access the Customizer?
↑ Back to top- Go to WooCommerce โ Email Verification.
- Click on Customize in the settings menu.
- The customizer opens with a live preview panel.
- Select Popup Style or Popup Content from the left panel.
How to Customize the Popup Style?
↑ Back to top- In the customizer, click Design โ Popup Style.
- Adjust the settings below.
- Click Publish to save your changes
- In the customizer, click Design โ Popup Style.
- Adjust the settings below.
- Click Publish to save your changes
| Setting | Description | Default |
|---|---|---|
| Overlay Background Color | Color of lightbox overlay behind popup | #ffffff |
| Widget Background Color | Background color of popup widget | #f5f5f5 |
Popup Layout Settings
| Setting | Description | Range | Default |
|---|---|---|---|
| Content Alignment | Align popup content | Center, Left | Center |
| Content Width | Width of popup widget | 300px โ 600px | 440px |
| Content Padding | Internal spacing | 10px โ 100px | 30px |
Popup Header Settings
| Setting | Description | Range | Default |
|---|---|---|---|
| Header Image | Upload logo or custom image | Media upload | Email icon |
| Image Width | Width of header image | 25px โ 250px | 80px |
| Header Font Size | Size of header text | 10px โ 30px | 18px |
Verification Button Settings
| Setting | Description | Default |
|---|---|---|
| Button Color | Background color of verify button | #2296f3 |
| Button Font Color | Text color of verify button | #ffffff |
| Button Font Size | Size of button text | 14px |
| Button Padding | Internal padding of button | 15px |
| Expand Button | Make button full-width | Disabled |

How to Customize the Popup Content?
- In the customizer, click Popup Content.
- Select the Widget Type from the dropdown.
- Edit the content fields for your selected type.
- Click Publish to save changes.
Available Widget Types
| Widget Type | Description |
|---|---|
| Registration | Popup shown during account registration |
| Checkout Email Popup | Initial email entry popup at checkout |
| Checkout OTP Popup | OTP entry popup after code is sent |
| Login Authentication | Popup for suspicious login attempts |
How to Customize the Registration Popup Content?
- In the customizer, click Popup Content.
- Select Widget Type: Registration from the dropdown.
- Edit the following fields:
| Field | Description | Default Value |
|---|---|---|
| Header Text | Title at top of popup | โVerify itโs you.โ |
| Verification Message | Main message body | โWe sent verification code to {customer_email}. To verify your email address, please check your inbox and enter the code below.โ |
| Footer Text | Text below form | โDidnโt receive an email? {cev_resend_verification}โ |
| Button Text | Verify button text | โVerify Codeโ |
How to Customize the Checkout Email Popup Content?
- In the customizer, click Popup Content.
- Select Widget Type: Checkout Email Popup from the dropdown.
- Edit the following fields:
| Field | Default Value |
|---|---|
| Header Text | โVerify itโs you.โ |
| Verification Message | โPlease verify your email address to proceed to checkout.โ |
| Footer Text | โAlready have an account? Login nowโ |
How to Customize the Checkout OTP Popup Content?
- In the customizer, click Popup Content.
- Select Widget Type: Checkout OTP Popup from the dropdown.
- Edit the following fields:
| Field | Default Value |
|---|---|
| Header Text | โVerify itโs you.โ |
| Verification Message | โWe sent verification code to {customer_email}. To verify your email address, please check your inbox and enter the code below.โ |
| Footer Text | โDidnโt receive an email? {cev_resend_verification}โ |
How to Customize the Login Authentication Popup Content?
- In the customizer, click Popup Content.
- Select Widget Type: Login Authentication from the dropdown.
- Edit the following fields:
| Field | Default Value |
|---|---|
| Header Text | โVerify itโs you.โ |
| Verification Message | โWe sent verification code to {customer_email}. To verify your email address, please check your inbox and enter the code below.โ |
| Footer Text | โDidnโt receive an email? {cev_resend_verification}โ |
| Button Text | โVerify Codeโ |
Popup Content Placeholders
| Placeholder | Description | Example |
|---|---|---|
| {customer_email} | Customerโs email address | john@example.com |
| {cev_resend_verification} | Clickable resend link | Resend Code |

How to Access Email Customization?
↑ Back to topEmail Types Overview
The plugin supports 5 different email types, each sent for a specific verification scenario:
| Email Type | When Itโs Sent | Contains OTP |
|---|---|---|
| Registration | When customer registers a new account | โ Yes |
| Checkout | When customer verifies email at checkout | โ Yes |
| Edit Account | When customer changes their email address | โ Yes |
| New Login OTP | When OTP is required for suspicious login | โ Yes |
| New Login Auth | Alert for new login (informational only) | โ No |
How to Access Email Customization?
- Go to WooCommerce โ Email Verification.
- Click on Customize in the settings menu.
- The customizer opens with a live preview panel.
- Click Design โ Email Style to customize appearance.
- Click Email Content to customize text and messages.
How to Customize the Email Style?
Customize colors, layout, and header appearance for all verification emails.
Step-by-Step Instructions
- In the customizer, click Design โ Email Style.
- The preview panel will show a sample email.
- Adjust the settings below.
- Click Publish to save your changes.
Email Layout Settings
| Setting | Description | Range/Options | Default |
|---|---|---|---|
| Content Alignment | Align email content horizontally | Center, Left | Left |
| Content Width | Width of the email content area | 400px โ 1000px | 650px |
| Content Padding | Internal spacing inside the email | 10px โ 100px | 30px |
Email Color Settings
| Setting | Description | Default |
|---|---|---|
| Background Color | Background color of email content area | #fafafa |
| Border Color | Color of the content border | #e0e0e0 |
| Font Color | Color of the email body text | #333333 |
Email Header Settings
| Setting | Description | Range/Options | Default |
|---|---|---|---|
| Header Image | Upload your logo for emails | Media upload | None (empty) |
| Image Width | Width of the header image | 50px โ 300px | 80px |
| Header Font Size | Size of the heading text | 10px โ 30px | 18px |
Email Button Settings
| Setting | Description | Default |
|---|---|---|
| Button Color | Background color of the verify button | #2296f3 |
| Button Font Color | Text color of the verify button | #ffffff |
| Button Font Size | Size of button text | 14px |
| Button Padding | Internal padding of the button | 15px |
| Expand Button | Make button full-width | Disabled |
How to Customize Email Content?
Each email type has its own customizable content including subject, heading, body message, and footer.
Step-by-Step Instructions
- In the customizer, click Email Content.
- Select the Email Type from the dropdown menu.
- Edit the content fields for your selected email type.
- The preview panel updates in real-time.
- Click Publish to save changes.
Available Email Types in Dropdown
| Email Type | Description |
|---|---|
| Registration | Email sent during account registration |
| Checkout | Email sent during checkout verification |
| Edit Account Email | Email sent when customer changes email address |
| New Login OTP | Email with OTP for suspicious login verification |
| New Login Authentication | Alert email for new login notification |
How to Customize the Registration Email?
- In the customizer, click Email Content.
- Select Email Type: Registration from the dropdown.
- Edit the fields shown below.
- Click Publish to save changes.
Registration Email Settings
| Field | Description |
|---|---|
| Email Subject | Subject line that appears in customerโs inbox |
| Email Heading | Large heading text inside the email body |
| Verification Message | Main content explaining verification with OTP code |
| Footer Content | Additional text displayed below the main content |
Registration Email Default Values
| Field | Default Value |
|---|---|
| Email Subject | Please Verify Your Email Address on {site_title} |
| Email Heading | Verify Your Email Address |
| Verification Message | Thank you for signing up for {site_title}, to activate your account, we need to verify your email address.<p>Your verification code: <strong>{cev_user_verification_pin}</strong></p> |
| Footer Content | (empty) |
Available Placeholders for Registration Email
| Placeholder | Description | Example Output |
|---|---|---|
| {site_title} | Your website/store name | My Store |
| {cev_user_verification_pin} | The OTP verification code | 123456 |
| {cev_display_name} | Customerโs display name | John |
How to Customize the Checkout Email?
- In the customizer, click Email Content.
- Select Email Type: Checkout from the dropdown.
- Edit the fields shown below.
- Click Publish to save changes.
Checkout Email Settings
| Field | Description |
|---|---|
| Email Subject | Subject line that appears in customerโs inbox |
| Email Heading | Large heading text inside the email body |
| Verification Message | Main content explaining verification with OTP code |
| Footer Content | Additional text displayed below the main content |
Checkout Email Default Values
| Field | Default Value |
|---|---|
| Email Subject | Please Verify Your Email Address on {site_title} |
| Email Heading | Verify Your Email Address |
| Verification Message | To complete your order on {site_title}, please confirm your email address. This ensures we have the right email in case we need to contact you.<p>Your verification code: {cev_user_verification_pin}</p> |
| Footer Content | (empty) |
Available Placeholders for Checkout Email
| Placeholder | Description | Example Output |
|---|---|---|
| {site_title} | Your website/store name | My Store |
| {cev_user_verification_pin} | The OTP verification code | 123456 |
| {cev_display_name} | Customerโs display name | John |
How to Customize the Edit Account Email?
- In the customizer, click Email Content.
- Select Email Type: Edit Account Email from the dropdown.
- Edit the fields shown below.
- Click Publish to save changes.
Edit Account Email Settings
| Field | Description |
|---|---|
| Email Subject | Subject line that appears in customerโs inbox |
| Email Heading | Large heading text inside the email body |
| Verification Message | Main content explaining verification with OTP code |
| Footer Content | Additional text displayed below the main content |
Edit Account Email Default Values
| Field | Default Value |
|---|---|
| Email Subject | Please Verify Your Email Address on {site_title} |
| Email Heading | You recently changed the email address {site_title} |
| Verification Message | To complete your order on {site_title}, please confirm your email address. This ensures we have the right email in case we need to contact you.<p>Your verification code: {cev_user_verification_pin}</p> |
| Footer Content | (empty) |
Available Placeholders for Edit Account Email
| Placeholder | Description | Example Output |
|---|---|---|
| {site_title} | Your website/store name | My Store |
| {cev_user_verification_pin} | The OTP verification code | 123456 |
| {cev_display_name} | Customerโs display name | John |
How to Customize the New Login OTP Email?
- In the customizer, click Email Content.
- Select Email Type: New Login OTP from the dropdown.
- Edit the fields shown below.
- Click Publish to save changes.
New Login OTP Email Settings
| Field | Description |
|---|---|
| Email Subject | Subject line that appears in customerโs inbox |
| Email Heading | Large heading text inside the email body |
| Verification Message | Main content with login details and OTP code |
| Footer Content | Additional text displayed below the main content |
New Login OTP Email Default Values
| Default Value |
|---|
| New sign-in from {login_browser} on {login_device} |
| New sign-in from {login_browser} on {login_device} |
| (empty) |
Default Verification Message Template
Hi {cev_display_name},
There was a new login to your {site_title} account from {login_browser} on {login_device}
We wanted to make sure it was you. Please verify your account using this OTP: {login_otp}
If you donโt recognize this activity, please change your password right away.
Thanks
Available Placeholders for New Login OTP Email
| Placeholder | Description | Example Output |
|---|---|---|
| {site_title} | Your website/store name | My Store |
| {cev_display_name} | Customerโs display name | John |
| {cev_user_verification_pin} | The OTP verification code | 123456 |
| {login_otp} | The OTP code (alternative) | 123456 |
| {login_browser} | Browser name used for login | Chrome |
| {login_device} | Device type used for login | Windows |
| {login_time} | Date and time of login attempt | March 30, 2026 10:30 AM |
| {login_ip} | IP address of login attempt | 192.168.1.1 |
| {change_password} | Link to change password page | (clickable link) |
How to Customize the New Login Authentication Email?
- In the customizer, click Email Content.
- Select Email Type: New Login Authentication from the dropdown.
- Edit the fields shown below.
- Click Publish to save changes.
New Login Authentication Email Settings
| Field | Description |
|---|---|
| Email Subject | Subject line that appears in customerโs inbox |
| Email Heading | Large heading text inside the email body |
| Verification Message | Main content with login details and security info |
| Footer Content | Additional text displayed below the main content |
New Login Authentication Email Default Values
| Field | Default Value |
|---|---|
| Email Subject | New sign-in from {login_browser} on {login_device} |
| Email Heading | New sign-in from {login_browser} on {login_device} |
| Footer Content | (empty) |
Default Verification Message Template
Hi {cev_display_name},
There was a new login to your {site_title} account from {login_browser} on {login_device}
We wanted to make sure it was you. Please check the details below:
Device: {login_browser}, {login_device}
Date: {login_time}
IP: {login_ip}
If you donโt recognize this activity, please change your password right away.
Thanks
Available Placeholders for New Login Authentication Email
| Placeholder | Description | Example Output |
|---|---|---|
| {site_title} | Your website/store name | My Store |
| {cev_display_name} | Customerโs display name | John |
| {login_browser} | Browser name used for login | Chrome |
| {login_device} | Device type used for login | Windows |
| {login_time} | Date and time of login attempt | March 30, 2026 10:30 AM |
| {login_ip} | IP address of login attempt | 192.168.1.1 |
| {change_password} | Link to change password page | (clickable link) |
Complete Email Placeholders Reference
All Available Placeholders by Email Type
| Placeholder | Registration | Checkout | Edit Account | Login OTP | Login Auth |
|---|---|---|---|---|---|
{site_title} | โ | โ | โ | โ | โ |
{cev_display_name} | โ | โ | โ | โ | โ |
{cev_user_verification_pin} | โ | โ | โ | โ | โ |
{login_otp} | โ | โ | โ | โ | โ |
{login_browser} | โ | โ | โ | โ | โ |
{login_device} | โ | โ | โ | โ | โ |
{login_time} | โ | โ | โ | โ | โ |
{login_ip} | โ | โ | โ | โ | โ |
{change_password} | โ | โ | โ | โ | โ |
Supported HTML Tags in Email Content
| Tag | Description | Example |
|---|---|---|
<a> | Create links | <a href="https://example.com">Click here</a> |
<strong> | Bold text | <strong>Important</strong> |
<i> | Italic text | <i>Note:</i> |
<p> | Paragraphs | <p>Paragraph text</p> |
<br> | Line breaks | Line 1<br>Line 2 |
How to Add Footer Content to Emails?
- In the customizer, click Email Content.
- Select your desired Email Type from the dropdown.
- Scroll down to find the Footer Content field.
- Enter your footer text (HTML supported).
- Click Publish to save changes.
๐ก Tip: Each email type has its own footer content field, so you can customize different footer messages for each verification scenario.
Customer Management
↑ Back to topManage customer verification status and perform bulk actions from the WordPress admin.
How to View Customer Verification Status?
↑ Back to top- Go to WordPress โ Users.
- The Email Verification column shows each userโs status.
- Use the filter dropdown to show only verified or unverified users.
How to Manually Verify a Customer?
↑ Back to top- Go to WordPress โ Users.
- Find the customer you want to verify.
- Click the Verify action link, OR edit the user profile.
How to Resend Verification Code?
↑ Back to top- Go to WordPress โ Users.
- Find the unverified customer.
- Click the Resend Verification action link.
Compatibility
↑ Back to topCustomer Email Verification Pro is tested and compatible with many popular plugins and features.
How to Use with WooCommerce Checkout Blocks?
↑ Back to topThe plugin fully supports WooCommerce Checkout Blocks (Cart and Checkout blocks).
- Enable Checkout Verification in the plugin settings.
- For inline verification, the OTP field appears in the checkout block automatically.
- For popup verification, the modal displays when needed.
Note: If you experience issues with third-party themes using the Store API, enable โDisable WooCommerce Store API Checkoutโ in settings.
How to Use with REST API Customer Creation?
↑ Back to topWhen customers are created via the WooCommerce REST API, verification works as follows:
- Customers created via API are marked as unverified by default
- Verification email is sent to the customer
- Customer must verify email on first login
Compatible Third-Party Plugins
↑ Back to top| Plugin | Compatibility Notes |
|---|---|
| Affiliate For WooCommerce | Full support for affiliate registration verification |
| Smart Manager | Bulk edit verification status |
| Email Customizer Pro by StoreApps | Custom email templates supported |
| Cashier | One-page checkout compatible |
| YITH Customize My Account | Custom My Account layouts supported |
| Essential Addons for Elementor | Elementor login forms supported |
| CheckoutWC | Custom checkout pages supported |
| CartFlows | Funnel builder checkout compatible |
Developers
↑ Back to topHooks and filters available for developers to extend plugin functionality.
How to Check User Verification Status?
↑ Back to topUse the following code to check if a user has verified their email:
$is_verified = get_user_meta( $user_id, 'cev_email_verified', true );
if ( $is_verified === '1' ) {
// User is verified
}
How to Change the OTP Button Label?
↑ Back to topUse this filter to customize the โSend Verification Codeโ button text:
add_filter( 'cev_checkout_send_otp_button_text', function( $text ) {
return 'Get Your Code';
});
Available Filters
| Filter | Description |
|---|---|
cev_checkout_send_otp_button_text | Change the OTP button text |
cev_verification_email_content | Modify verification email content |
cev_otp_code_length | Programmatically set OTP length |
Translations
↑ Back to topCustomer Email Verification Pro (CEV PRO) is fully compatible with WPML, allowing you to translate all plugin strings into any language for your multilingual WooCommerce store.
How to Translate CEV PRO Using WPML ?
↑ Back to topCustomer Email Verification (CEV PRO) is fully compatible with WPML, allowing you to easily translate all CEV PRO-related strings into your desired languages. With the WPML update, you can now translate strings individually or in bulk, using the enhanced translation interface.
Translating CEV PRO Using WPML
WPMLโs String Translation and Translation Management tools make it simple to localize CEV PROโs strings for your multilingual store. Below are step-by-step instructions on how to translate CEV PRO strings both individually and in bulk.
Bulk Translation via WPML Translation Dashboard
To translate multiple CEV PRO strings at once:
- Log in to your WordPress dashboard.
- Navigate to WPML > Translation Dashboard.
- Scroll down to the Other texts (Strings) section.
- In the Filter by field, search for CEV PRO strings using any of the following key names:
cev_verification_headercev_verification_messagecev_verification_widget_footer
- Once the relevant strings are displayed, you can translate them in bulk:
- Select the checkboxes for all the strings you want to translate and click Translate your content.

At Step 2, choose your translation method. To quickly translate multiple strings, choose Translate automatically from the dropdown. For the best results, ensure your translation engine is Private Translation Cloud (PTC), WPMLโs proprietary AI. The Translation Dashboard shows you the cost of automatic translation in euros and credits. If you want to translate strings yourself, choose Translate myself.

When ready, click Translate.
With automatic translation, youโre all set! PTC translates your selected content in a few minutes. If youโve chosen to translate yourself, navigate to WPML > Translations to add your translations for each string.
Sync Your Translations
Once youโve translated the strings, ensure they are synced across your website. If youโve chosen to publish without review, WPML automatically applies translations. Otherwise, go to WPML > Translations to review translated content and publish.