Settings

Configure email verification options by navigating to WooCommerce → Email Verification.

How to Enable Signup Verification?

Signup 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?

Checkout 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

OptionDescription
Enable on cart pageShow verification popup on the cart page instead of checkout
Free orders onlyRequire verification only when order total is $0
Create account during checkoutOnly verify if customer opts to create an account (inline mode only)
Disable Store API CheckoutBlock WooCommerce Store API to prevent bypassing verification

How to Enable Login Authentication?

Login 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?

Customize the OTP behavior for all verification types.

  • Go to WooCommerce → Email Verification.
  • Locate the General Settings section.
  • Configure the following options:
SettingOptions
OTP Length4-digit or 6-digit code
OTP ExpirationNever, 10 min, 15 min, 30 min, 1 hour, 24 hours, or 72 hours
Resend LimitAllow 1 attempt, 3 attempts, or disable resend
Resend Limit MessageCustom message when resend limit is reached
Success MessageMessage shown after successful verification
blank

How to require a paid order to finish verification in Customer Email Verification Pro?

The Require a paid order to finish verification option (also called Paid-Order Gatekeeping) adds a third state to the standard verification flow. After a customer has confirmed their email via OTP, their account is held in a pending paid order state — counted as verified for login and checkout, but not yet fully activated — until their first genuinely paid WooCommerce order completes. CEV Pro provides this state and fires a completion hook on the paid order, so your own coupon, marketing-list, or membership integrations can decide when to release any perks they were holding back.

Requirements

Requires Customer Email Verification Pro to be installed and active, with WooCommerce also active. This feature is off by default and only takes effect once you explicitly enable it.

What it does (and what it doesn’t)

CEV Pro keeps things deliberately minimal. With this option ON, the plugin:

  • Adds a third verification state – pending paid order – alongside the existing verified and unverified states.
  • Writes that state at OTP success. When a new customer confirms their email, their account is marked pending paid order instead of verified.
  • Flips the state to fully verified when the customer’s first genuinely paid order reaches processingcompleted, or payment complete status.
  • Fires the cev_paid_order_gatekeeping_completed action hook at the moment of the flip, so your own integrations can release any perks they were holding back (welcome coupons, marketing-list opt-ins, membership upgrades, etc.).
  • Shows the state in the admin – the WP Users list verification column displays an orange clock badge for pending-paid-order customers (distinct from the green verified tick and the red unverified cross).
  • Protects pending customers from automatic cleanup – the auto-delete unverified and re-engagement reminder crons skip them, because their email is already confirmed.

What CEV Pro does not do on its own:

  • It does not hold back the WooCommerce welcome / account-created email — that is sent normally at registration.
  • It does not restrict login, checkout, browsing, or any standard WooCommerce flow. A pending-paid-order customer can shop and check out exactly like any verified customer.
  • It does not automatically restrict coupons, discounts, or promotional campaigns. If you want those to wait for the paid order, listen to the hook from your own code or theme.

The three verification states

  • Verified – email confirmed and (when this option is on) first paid order completed. Used for the strict Verified KPI in the Analytics dashboard and the green tick in the admin user list.
  • Pending paid order – email confirmed via OTP, but no paid order yet. Counted as verified for login and checkout. Shown as an orange clock in the admin and as a separate bucket in the Analytics Verification Status widget.
  • Unverified – email has not been confirmed at all (same as before).

How to enable Paid-Order Gatekeeping

  • Verified – email confirmed and (when this option is on) first paid order completed. Used for the strict Verified KPI in the Analytics dashboard and the green tick in the admin user list.
  • Pending paid order – email confirmed via OTP, but no paid order yet. Counted as verified for login and checkout. Shown as an orange clock in the admin and as a separate bucket in the Analytics Verification Status widget.
  • Unverified – email has not been confirmed at all (same as before).
blank

The setting takes effect immediately for new signups. Existing customers keep their current verification status — they are not retroactively moved into pending paid order.

What counts as a “paid order”

  • Any order with a total greater than zero that reaches the processingcompleted, or payment complete status counts. This covers all standard payment paths: automatic-capture gateways (Stripe, PayPal, etc.) as well as manual gateways like Cash on Delivery, Bank Transfer (BACS), Cheque, and admin-created orders.
  • Free / zero-total orders do NOT count. A $0 order (after coupons, member discounts, or free trials) does not satisfy the requirement. This prevents a spammer from unlocking perks with a $0 placeholder order.
  • Cancelled, failed, refunded, or pending-payment orders do NOT count. Only successfully paid orders flip the status.

Admin override — Force activate

If you need to manually flip a pending-paid-order customer to fully verified — for example, you took payment offline, or you’re activating a VIP / staff account — you can do it from the WP Users screen.

  • Go to Users → All Users.
  • Select the customers you want to fully activate.
  • From the Bulk actions dropdown, choose Force activate (skip paid-order requirement) and click Apply.

The selected pending customers are flipped to fully verified, and the same cev_paid_order_gatekeeping_completed hook fires, so any of your integrations that listen for it run as if the customer had completed a paid order. Customers who weren’t pending are skipped silently.