Customers

What Is a Customer?

A customer in VetCarePress represents a pet owner or clinic client. Customers are the people who bring their animals to the veterinary practice and who need access to their pets’ medical records.

Storage

Customers are stored separately from WordPress users. This keeps pet owner data independent from the WordPress user system and allows customers to authenticate without needing a WordPress account.

Customer Fields

Each customer record includes the following fields:

  • First Name — required
  • Last Name
  • Phone — including international dialing code
  • Email
  • Address — street, city, state, postal code, country
  • PIN — optional quick-login PIN
  • Notes — free-text field for additional information

Contact Requirement

At least one contact method (phone or email) is required for every customer. This ensures the clinic can reach the pet owner and that the customer can authenticate to view their records.

Authentication

Customers authenticate via OTP (one-time password sent by email or SMS) or PIN. No WordPress account is needed. See Customer Authentication for full details.

Relationship to Patients

One customer can own multiple patients. When creating a patient, you assign an owner by selecting from existing customers or creating a new customer inline. See Patients Overview for more on this relationship.

Management Interfaces

Customers can be managed through:

  • WP-Admin — a dedicated Customers admin page with list table, search, and full CRUD operations
  • Staff Dashboard — frontend modal forms for creating and searching customers

See also: Managing Customers, Customer Authentication, Patients Overview

Managing Customers

Managing Customers

VetCarePress provides two interfaces for managing customer records: the WP-Admin back end and the Staff Dashboard frontend.

Via WP-Admin

Accessing the Customer List

Navigate to the Customers menu item in the WordPress admin sidebar (top-level menu, position 33). The customer list table supports:

  • Search — filter by name, email, phone, or address
  • Columns — Name, Phone, Email, City, Date
  • Row actions — Edit and Delete for each customer

Adding a New Customer

  1. Click Add New Customer at the top of the Customers page.
  2. Fill in the customer form with all applicable fields (first name, last name, phone, email, address, notes).
  3. Save the record.

Editing a Customer

  1. Click Edit on the customer row, or click the customer name.
  2. Update any fields as needed.
  3. Save changes.

Required Capability

All WP-Admin customer management operations require the vcp_manage_customers capability. See Roles & Capabilities for details.

Via Staff Dashboard

  • Click the "Add Customer" button to open the customer creation modal. See Staff Dashboard: Managing Customers for the full modal workflow.
  • Use the search function to find existing customers by name, email, or phone.
  • Expand a customer entry to see their linked patients.
  • Click "View Profile" to open the full customer detail view.

Quick Flow: Customer to Patient

After creating a new customer through the Staff Dashboard, a prompt offers to immediately "Add Patient" with the new customer pre-selected as the owner. This streamlines the intake process for new clients.

Customer Validation Rules

The following validation rules apply when creating or editing customers:

  • First name is required.
  • At least one contact method is required: phone or email (or both).
  • Phone numbers are validated together with the country prefix to ensure a valid format.
  • Email addresses are validated as properly formatted email addresses.

See also: Customers Overview, Customer Authentication, Staff Dashboard: Managing Customers

Authentication

Customer Authentication

Customers in VetCarePress do not need WordPress accounts. They authenticate using one-time passwords (OTP) or personal identification numbers (PIN) to access the Customer Portal and view their pets’ medical records.

OTP Authentication Flow

  1. The customer visits the Customer Profile page and enters their email address or phone number.
  2. The system sends a one-time code via the configured delivery method:
    • Email — sent through the EmailProvider using wp_mail
    • SMS — sent through TwilioProvider or VonageProvider, depending on configuration
  3. The customer enters the received code on the verification screen.
  4. Upon successful verification, a session is created and a cookie is set in the customer’s browser.

PIN Authentication Flow

After completing their first OTP login, customers can set a PIN for faster future access.

  • The PIN is stored securely.
  • Customers can change or delete their PIN from the Customer Portal.

Session Management

  • Session tokens are stored as browser cookies.
  • Session expiry is configurable via Settings > Advanced (default: 30 days).

OTP Configuration

  • Code expiry — configurable via vcp_otp_expiry_minutes (default: 10 minutes)
  • Rate limiting — built-in protection prevents abuse by limiting the number of OTP requests within a time window
  • Lockout reset — administrators can reset OTP lockouts via Settings > Advanced

reCAPTCHA Protection

Optional bot protection can be enabled on the customer login form. Configure reCAPTCHA settings under Settings > Captcha.


See also: Customers Overview, Managing Customers, Customer Portal