The VetCarePress settings page is at WP-Admin > VetCarePress > Settings and requires the vcp_manage_settings capability (administrators only).

How Settings Are Organized
The settings page is divided into 8 tabs, each representing a distinct configuration area. Every tab saves independently using its own option group — saving one tab never overwrites or resets values on another tab.
Extending the Settings Page
Developers can add custom tabs using the vcp_settings_tabs filter. See the developer documentation for details on registering custom settings tabs.
Settings Tabs
| Tab | Description |
|---|---|
| General | Clinic identity, branding colors, measurement units, and patient profile layout. |
| License | License key activation and status management. |
| SMS | Twilio or Vonage provider configuration for OTP codes, notifications, and vaccination reminders. |
| Features | Enable or disable modules, configure customer permissions, and customize record type colors. |
| Vaccinations | Vaccination reminder intervals, notification channels, and message templates. |
| Notifications | Email and SMS notification templates for messaging and medical record alerts. |
| Advanced | URL slugs, OTP expiry, pagination, attachment size limits, and other advanced options. |
| Captcha | Google reCAPTCHA v3 configuration for protecting customer-facing forms. |
General
General Settings
The General tab configures your clinic’s identity, branding, measurement preferences, and how patient profiles are displayed. These settings are stored under the vcp_settings_general option group.

Clinic Identity
| Setting | Option Key | Type | Description |
|---|---|---|---|
| Clinic Name | vcp_clinic_name |
Text | The full name of your clinic, used in headers and notifications. |
| Short Name | vcp_clinic_name_short |
Text | A shortened version of the clinic name for compact display areas. |
| Phone Number | vcp_clinic_phone |
Text | The clinic’s primary phone number. |
| Email Address | vcp_clinic_email |
The clinic’s primary email address. | |
| Clinic Logo | vcp_clinic_logo |
Attachment ID | Select a logo from the WordPress media library. Stored as an attachment ID. |
Branding Colors
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Primary Color | vcp_primary_color |
#2563eb |
The primary accent color used throughout the plugin interface. Enter a hex color value. |
| Secondary Color | vcp_secondary_color |
#1d4ed8 |
The secondary color used for hover states and complementary elements. Enter a hex color value. |
Customer Profile
| Setting | Option Key | Description |
|---|---|---|
| Customer Profile Page | vcp_customer_profile_page_id |
The WordPress page used for the customer profile. This page is auto-created during plugin activation. |
Patient Display
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Avatar Size | vcp_patient_avatar_px |
80 |
Patient avatar size in pixels. |
| Show Default Image | vcp_patient_default_show |
0 |
When enabled (1), displays a default image for patients without a photo. |
| Default Image | vcp_patient_default_image_id |
— | Attachment ID of the default patient image from the media library. |
| Default Icon | vcp_patient_default_icon |
— | A dashicon slug to display for patients without a photo (used when no default image is set). |
Regional and Unit Preferences
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Default Country | vcp_default_country |
US |
Two-letter country code used as the default for phone number fields. |
| Weight Unit | vcp_weight_unit |
kg |
Unit for weight measurements. Options: kg or lbs. |
| Temperature Unit | vcp_temperature_unit |
C |
Unit for temperature readings. Options: C (Celsius) or F (Fahrenheit). |
Patient Profile Layout
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Profile Layout | vcp_patient_layout |
tabs |
Controls how the patient profile page is structured. Options: tabs, sidebar, or card. |
- tabs — Information is organized into horizontal tabs (medical records, vaccinations, weight history, etc.).
- sidebar — A sidebar displays patient details alongside the main content area.
- card — A compact card-style layout suitable for quick overviews.
License
License Settings
The License tab manages your VetCarePress license key. These settings are stored under the vcp_settings_license option group.
License Key
| Setting | Option Key | Type | Description |
|---|---|---|---|
| License Key | vcp_license_key |
Text | Your VetCarePress license key. |
How Activation Works
- Enter your license key and save the tab.
- On save, the plugin sends an HMAC-signed activation request to the VetCarePress license server.
- The result is displayed as a WordPress admin notice indicating success or failure.
- Once activated, the license status is shown on this tab.
Deactivating a License
To deactivate your license, clear the license key field and save. This releases the activation from the current site, allowing you to use the key on a different installation.
Troubleshooting
If activation fails, verify that:
- The license key is entered correctly with no leading or trailing spaces.
- Your server can make outbound HTTPS requests to the VetCarePress license server.
- The license has not already been activated on the maximum number of allowed sites.
For a complete walkthrough of the activation process, see License Activation.
SMS
SMS Settings
The SMS tab configures the provider used for sending text messages, including OTP verification codes, appointment notifications, and vaccination reminders. These settings are stored under the vcp_settings_sms option group.
SMS is optional. Email-based features work without any SMS provider configured. You only need to set up SMS if you want to send text messages to customers.
Provider Selection
| Setting | Option Key | Default | Description |
|---|---|---|---|
| SMS Provider | vcp_sms_provider |
twilio |
Choose your SMS provider. Options: twilio or vonage. |
Twilio Configuration
These settings appear when Twilio is selected as the provider.
| Setting | Option Key | Description |
|---|---|---|
| Account SID | vcp_twilio_sid |
Your Twilio Account SID, found in the Twilio Console dashboard. |
| Auth Token | vcp_twilio_token |
Your Twilio Auth Token. |
| From Number | vcp_twilio_from |
The phone number messages are sent from (must be a Twilio-provisioned number). |
| From Type | vcp_twilio_from_type |
How the sender is identified. Options: phone (default) or messaging_service. |
| Messaging Service SID | vcp_twilio_messaging_service_id |
Your Twilio Messaging Service SID. Only required when From Type is set to messaging_service. |
Vonage Configuration
These settings appear when Vonage is selected as the provider.
| Setting | Option Key | Description |
|---|---|---|
| API Key | vcp_vonage_api_key |
Your Vonage API key. |
| API Secret | vcp_vonage_api_secret |
Your Vonage API secret. |
| From Number | vcp_vonage_from |
The phone number or sender ID messages are sent from. |
Testing Your Configuration
After entering your credentials, use the Test SMS button at the bottom of the tab to send a test message. This verifies that the provider credentials are correct and the sending number is properly configured before using SMS in production.
Related Settings
- Vaccination Settings — Configure SMS templates for vaccination reminders.
- Notification Settings — Configure SMS templates for messaging and medical record alerts.
- Captcha Settings — Protect OTP forms that trigger SMS sends.
Features
Feature Settings
The Features tab controls which VetCarePress modules are active, what actions customers and staff can perform, and how medical record types are displayed. These settings are stored under the vcp_settings_features option group.
Customer Permissions
These settings control what customers can do within the customer portal.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Edit Contact Info | vcp_allow_customer_edit_contact |
Off | Allow customers to edit their own contact information. |
| Edit Patient Image | vcp_allow_customer_edit_patient_image |
Off | Allow customers to change their patient’s photo. |
| DICOM Download | vcp_allow_dicom_download |
On | Allow customers to download DICOM imaging files. |
Display Options
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Show Record Author | vcp_show_record_author |
— | Display the name of the staff member who created each medical record. |
| Show Patient Owner | vcp_show_patient_owner |
Off | Display the patient’s owner on the patient profile page. |
Sharing
Control whether customers and staff can generate shareable links to patient records.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Customer Sharing | vcp_allow_customer_share |
Off | Allow customers to generate share links for their patient records. |
| Staff Sharing | vcp_allow_staff_share |
On | Allow staff members to generate share links. |
Share link expiry duration is configured in Advanced Settings.
Messaging Mode
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Messaging Mode | vcp_messaging_mode |
full |
Controls the messaging feature. Options: disabled, read_only, or full. |
- disabled — The messaging feature is completely hidden from the interface.
- read_only — Customers can view existing messages but cannot send new ones.
- full — Customers and staff can send and receive messages freely.
Medical Record Types
Each medical record type can be individually enabled or disabled. Disabling a record type hides it from the user interface but preserves all existing data. Re-enabling the type restores access to previously created records.
Available record types:
- Clinical Note
- Diagnose
- Lab Result
- Medical Imaging
- Treatment
Medical Record Type Colors
Each record type has a customizable badge color displayed in lists and on the patient profile. Set a hex color value for each type to visually distinguish record categories at a glance.
Related Settings
- Notification Settings — Configure how customers are notified about new medical records.
- General Settings — Configure the patient profile layout where records are displayed.
Vaccinations
Vaccination Settings
The Vaccinations tab controls automated vaccination reminders, including when they are sent, through which channels, and what content they contain. These settings are stored under the vcp_settings_vaccination option group.
Reminder Configuration
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Enable Reminders | vcp_vaccination_reminder_enabled |
On | Enable or disable automated vaccination reminders. |
| Reminder Lead Days | vcp_vaccination_reminder_lead_days |
7,1 |
Comma-separated list of days before the due date to send reminders. Each value represents a separate reminder. Range: 1–365 days. |
| Notification Channel | vcp_vaccination_reminder_channels |
email |
How reminders are delivered. Options: email, sms, or both. |
| Due Soon Threshold | vcp_vaccination_due_soon_days |
30 |
Number of days before a vaccination’s due date at which it is flagged as "Due Soon" in the interface. |
Reminder Lead Days Widget
The Reminder Lead Days field uses an interactive tag widget. Click to add a new day value or click the "x" on an existing tag to remove it. For example, the default 7,1 sends two reminders: one 7 days before the due date and another 1 day before.
Message Templates
| Setting | Option Key | Description |
|---|---|---|
| Email Template | vcp_vaccination_reminder_email_tpl |
The email body template used for vaccination reminders. Supports HTML formatting. |
| SMS Template | vcp_vaccination_reminder_sms_tpl |
The SMS text template used for vaccination reminders. Keep within SMS character limits. |
Template Placeholders
The following placeholders can be used in both email and SMS templates:
| Placeholder | Description |
|---|---|
{clinic_name} |
The clinic name from General Settings. |
{patient_name} |
The name of the patient due for vaccination. |
{owner_name} |
The name of the patient’s owner. |
{vaccination_name} |
The name of the vaccination. |
{due_date} |
The vaccination due date. |
How Reminders Are Processed
Reminders are sent via a daily WordPress cron job (vcp_cleanup_expired). Each day, the cron job checks all upcoming vaccination due dates against the configured lead days and sends reminders through the selected channel.
To use SMS reminders, an SMS provider must be configured on the SMS Settings tab.
Related Settings
- SMS Settings — Configure Twilio or Vonage credentials for SMS delivery.
- Notification Settings — Configure notification templates for other alert types.
Notifications
Notification Settings
The Notifications tab configures the email and SMS templates used when customers receive messages or when medical records are created. These settings are stored under the vcp_settings_notifications option group.
Messaging Notifications
Admin Notifications
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Enable Admin Notify | vcp_messaging_admin_notify_enabled |
On | Send an email notification to the admin when a customer sends a new message. |
| Admin Email | vcp_messaging_admin_notify_email |
— | The email address that receives admin notifications for new customer messages. |
General Message Templates
These templates are used for messages that are not associated with a specific patient.
| Setting | Option Key | Description |
|---|---|---|
| Email Subject | vcp_messaging_general_email_subject |
Subject line for general message notification emails. |
| Email Template | vcp_messaging_general_email_tpl |
Email body template for general message notifications. Supports HTML. |
Patient-Specific Message Templates
These templates are used for messages associated with a specific patient record.
| Setting | Option Key | Description |
|---|---|---|
| Email Subject | vcp_messaging_patient_email_subject |
Subject line for patient-specific message notification emails. |
| Email Template | vcp_messaging_patient_email_tpl |
Email body template for patient-specific message notifications. Supports HTML. |
Admin Message Templates
These templates are used for the notification sent to the admin.
| Setting | Option Key | Description |
|---|---|---|
| Email Subject | vcp_messaging_admin_email_subject |
Subject line for admin notification emails. |
| Email Template | vcp_messaging_admin_email_tpl |
Email body template for admin notifications. Supports HTML. |
SMS Message Template
| Setting | Option Key | Description |
|---|---|---|
| SMS Template | vcp_messaging_sms_tpl |
SMS text template for message notifications. |
| SMS Confirm Threshold | vcp_messaging_sms_confirm_threshold |
Character count at which a warning is shown before sending. Default: 160 (standard SMS segment length). |
Medical Record Notifications
These settings control how customers are notified when a new medical record is added to their patient’s profile.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Default Notify Opt-in | vcp_mr_notify_default |
Off | Whether the "Notify customer" checkbox is checked by default when creating a new record. |
| Default Channel | vcp_mr_notify_channel_default |
email |
Default notification channel for medical records. Options: email, sms, or both. |
| Email Subject | vcp_mr_email_subject |
— | Subject line for medical record notification emails. |
| Email Template | vcp_mr_email_tpl |
— | Email body template for medical record notifications. Supports HTML. |
| SMS Template | vcp_mr_sms_tpl |
— | SMS text template for medical record notifications. |
Global Email Footer
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Email Footer | vcp_email_footer |
"This is an automated message." | Footer text appended to all outgoing emails sent by VetCarePress. |
Related Settings
- SMS Settings — Configure your SMS provider credentials before using SMS notifications.
- Vaccination Settings — Configure vaccination-specific reminder templates separately.
- Feature Settings — Enable or disable the messaging module entirely.
Advanced
Advanced Settings
The Advanced tab provides control over URL structure, session management, file upload limits, pagination, and other technical options. These settings are stored under the vcp_settings_advanced option group.
URL Slugs
Custom URL slugs determine the permalink structure for VetCarePress content types. Changing a slug automatically triggers a WordPress rewrite rule flush.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Patient Slug | vcp_slug_patient |
patient |
URL slug for patient pages (e.g., /patient/bella/). |
| Medical Record Slug | vcp_slug_medical_record |
medical-record |
URL slug for medical record pages. |
| Vaccination Slug | vcp_slug_vaccination |
vaccination |
URL slug for vaccination pages. |
Note: After changing slugs, verify your new URLs work correctly. If you experience 404 errors, visit Settings > Permalinks and click Save to manually flush rewrite rules.
OTP and Session Configuration
| Setting | Option Key | Default | Description |
|---|---|---|---|
| OTP Expiry | vcp_otp_expiry_minutes |
10 |
Number of minutes before a one-time password expires. |
| Session Expiry | vcp_session_expiry_days |
30 |
Number of days before a customer session expires and requires re-authentication. |
Attachment Limits
Uploaded images are automatically resized to fit within these maximum dimensions. The aspect ratio is preserved.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Max Width | vcp_attachment_width |
1200 |
Maximum width in pixels for uploaded images. |
| Max Height | vcp_attachment_height |
1200 |
Maximum height in pixels for uploaded images. |
Share Link Expiry
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Share Link Expiry | vcp_record_share_expiry_days |
30 |
Number of days before a share link expires. Set to 0 for links that never expire. |
This setting applies to share links generated by both customers and staff. Sharing must be enabled on the Feature Settings tab.
Pagination
These settings control how many items are displayed per page across different list views.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Medical Records | vcp_pagination_medical_records |
10 |
Records per page on medical record lists. |
| Weight History | vcp_pagination_weight_history |
20 |
Entries per page on weight history views. |
| Recent Patients | vcp_pagination_recent_patients |
10 |
Patients shown in the recent patients widget. |
| Species Browse | vcp_pagination_species_browse |
20 |
Patients per page when browsing by species. |
Legacy Title Handling
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Disable Legacy Titles | vcp_disable_legacy_titles |
Off | Disable legacy wp_title filtering for classic (non-block) themes. Enable this if you experience duplicate or incorrect page titles with your theme. |
OTP Lockout Reset
The OTP system includes rate limiting to prevent abuse. If a customer or phone number becomes locked out due to too many failed attempts, use this form to clear the rate limit.
- Enter the email address or phone number that is locked out.
- Click Reset Lockout to clear the rate limiting for that destination.
This action requires the vcp_manage_settings capability and is protected by a WordPress nonce for security.
Captcha
Captcha Settings
The Captcha tab configures bot protection for customer-facing forms such as the OTP login form. These settings are stored under the vcp_settings_captcha option group.
Provider Selection
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Captcha Provider | vcp_captcha_provider |
none |
The captcha service to use. Options: none (disabled) or recaptcha_v3. |
Google reCAPTCHA v3 Configuration
These settings appear when recaptcha_v3 is selected as the provider.
| Setting | Option Key | Default | Description |
|---|---|---|---|
| Site Key | vcp_recaptcha_site_key |
— | Your reCAPTCHA v3 site key. |
| Secret Key | vcp_recaptcha_secret_key |
— | Your reCAPTCHA v3 secret key. |
| Score Threshold | vcp_recaptcha_v3_threshold |
0.5 |
The minimum score required to pass verification. Range: 0.0 to 1.0. |
How reCAPTCHA v3 Works
Unlike traditional captcha challenges, reCAPTCHA v3 runs invisibly in the background and assigns a score to each interaction:
- 1.0 — Very likely a legitimate human user.
- 0.0 — Very likely a bot.
The Score Threshold determines the cutoff. Requests scoring below this value are rejected. The default of 0.5 provides a balanced level of protection. Increase the threshold for stricter filtering (may occasionally block legitimate users) or decrease it for more permissive access.
Obtaining reCAPTCHA Keys
- Go to the Google reCAPTCHA admin console.
- Register a new site and select reCAPTCHA v3.
- Add your website’s domain(s).
- Copy the Site Key and Secret Key into the fields on this tab.
Protected Forms
When enabled, reCAPTCHA v3 protects the following customer-facing forms:
- OTP login and verification forms
- Any other public-facing VetCarePress forms that accept user input
Related Settings
- SMS Settings — OTP codes sent via SMS are protected by captcha when enabled.
- Advanced Settings — Configure OTP expiry and lockout reset.