Plugin Page

VetCarePress – Veterinary Client Portal

View Plugin

Admin Settings

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

Settings Page with Tabs

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

TabDescription
GeneralClinic identity, branding colors, measurement units, and patient profile layout.
LicenseLicense key activation and status management.
SMSTwilio or Vonage provider configuration for OTP codes, notifications, and vaccination reminders.
FeaturesEnable or disable modules, configure customer permissions, and customize record type colors.
VaccinationsVaccination reminder intervals, notification channels, and message templates.
NotificationsEmail and SMS notification templates for messaging and medical record alerts.
AdvancedURL slugs, OTP expiry, pagination, attachment size limits, and other advanced options.
CaptchaGoogle reCAPTCHA v3 configuration for protecting customer-facing forms.

General

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.

General Settings Form

Clinic Identity

SettingOption KeyTypeDescription
Clinic Namevcp_clinic_nameTextThe full name of your clinic, used in headers and notifications.
Short Namevcp_clinic_name_shortTextA shortened version of the clinic name for compact display areas.
Phone Numbervcp_clinic_phoneTextThe clinic’s primary phone number.
Email Addressvcp_clinic_emailEmailThe clinic’s primary email address.
Clinic Logovcp_clinic_logoAttachment IDSelect a logo from the WordPress media library. Stored as an attachment ID.

Branding Colors

SettingOption KeyDefaultDescription
Primary Colorvcp_primary_color#2563ebThe primary accent color used throughout the plugin interface. Enter a hex color value.
Secondary Colorvcp_secondary_color#1d4ed8The secondary color used for hover states and complementary elements. Enter a hex color value.

Customer Profile

SettingOption KeyDescription
Customer Profile Pagevcp_customer_profile_page_idThe WordPress page used for the customer profile. This page is auto-created during plugin activation.

Patient Display

SettingOption KeyDefaultDescription
Avatar Sizevcp_patient_avatar_px80Patient avatar size in pixels.
Show Default Imagevcp_patient_default_show0When enabled (1), displays a default image for patients without a photo.
Default Imagevcp_patient_default_image_idAttachment ID of the default patient image from the media library.
Default Iconvcp_patient_default_iconA dashicon slug to display for patients without a photo (used when no default image is set).

Regional and Unit Preferences

SettingOption KeyDefaultDescription
Default Countryvcp_default_countryUSTwo-letter country code used as the default for phone number fields.
Weight Unitvcp_weight_unitkgUnit for weight measurements. Options: kg or lbs.
Temperature Unitvcp_temperature_unitCUnit for temperature readings. Options: C (Celsius) or F (Fahrenheit).

Patient Profile Layout

SettingOption KeyDefaultDescription
Profile Layoutvcp_patient_layouttabsControls 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

The License tab manages your VetCarePress license key. These settings are stored under the vcp_settings_license option group.

License Key

SettingOption KeyTypeDescription
License Keyvcp_license_keyTextYour VetCarePress license key.

How Activation Works

  1. Enter your license key and save the tab.
  2. On save, the plugin sends an HMAC-signed activation request to the VetCarePress license server.
  3. The result is displayed as a WordPress admin notice indicating success or failure.
  4. 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

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

SettingOption KeyDefaultDescription
SMS Providervcp_sms_providertwilioChoose your SMS provider. Options: twilio or vonage.

Twilio Configuration

These settings appear when Twilio is selected as the provider.

SettingOption KeyDescription
Account SIDvcp_twilio_sidYour Twilio Account SID, found in the Twilio Console dashboard.
Auth Tokenvcp_twilio_tokenYour Twilio Auth Token.
From Numbervcp_twilio_fromThe phone number messages are sent from (must be a Twilio-provisioned number).
From Typevcp_twilio_from_typeHow the sender is identified. Options: phone (default) or messaging_service.
Messaging Service SIDvcp_twilio_messaging_service_idYour 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.

SettingOption KeyDescription
API Keyvcp_vonage_api_keyYour Vonage API key.
API Secretvcp_vonage_api_secretYour Vonage API secret.
From Numbervcp_vonage_fromThe 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.

Features

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.

SettingOption KeyDefaultDescription
Edit Contact Infovcp_allow_customer_edit_contactOffAllow customers to edit their own contact information.
Edit Patient Imagevcp_allow_customer_edit_patient_imageOffAllow customers to change their patient’s photo.
DICOM Downloadvcp_allow_dicom_downloadOnAllow customers to download DICOM imaging files.

Display Options

SettingOption KeyDefaultDescription
Show Record Authorvcp_show_record_authorDisplay the name of the staff member who created each medical record.
Show Patient Ownervcp_show_patient_ownerOffDisplay the patient’s owner on the patient profile page.

Sharing

Control whether customers and staff can generate shareable links to patient records.

SettingOption KeyDefaultDescription
Customer Sharingvcp_allow_customer_shareOffAllow customers to generate share links for their patient records.
Staff Sharingvcp_allow_staff_shareOnAllow staff members to generate share links.

Share link expiry duration is configured in Advanced Settings.

Messaging Mode

SettingOption KeyDefaultDescription
Messaging Modevcp_messaging_modefullControls 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.

Vaccinations

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

SettingOption KeyDefaultDescription
Enable Remindersvcp_vaccination_reminder_enabledOnEnable or disable automated vaccination reminders.
Reminder Lead Daysvcp_vaccination_reminder_lead_days7,1Comma-separated list of days before the due date to send reminders. Each value represents a separate reminder. Range: 1–365 days.
Notification Channelvcp_vaccination_reminder_channelsemailHow reminders are delivered. Options: email, sms, or both.
Due Soon Thresholdvcp_vaccination_due_soon_days30Number 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

SettingOption KeyDescription
Email Templatevcp_vaccination_reminder_email_tplThe email body template used for vaccination reminders. Supports HTML formatting.
SMS Templatevcp_vaccination_reminder_sms_tplThe 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:

PlaceholderDescription
{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.

Notifications

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

SettingOption KeyDefaultDescription
Enable Admin Notifyvcp_messaging_admin_notify_enabledOnSend an email notification to the admin when a customer sends a new message.
Admin Emailvcp_messaging_admin_notify_emailThe 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.

SettingOption KeyDescription
Email Subjectvcp_messaging_general_email_subjectSubject line for general message notification emails.
Email Templatevcp_messaging_general_email_tplEmail body template for general message notifications. Supports HTML.

Patient-Specific Message Templates

These templates are used for messages associated with a specific patient record.

SettingOption KeyDescription
Email Subjectvcp_messaging_patient_email_subjectSubject line for patient-specific message notification emails.
Email Templatevcp_messaging_patient_email_tplEmail body template for patient-specific message notifications. Supports HTML.

Admin Message Templates

These templates are used for the notification sent to the admin.

SettingOption KeyDescription
Email Subjectvcp_messaging_admin_email_subjectSubject line for admin notification emails.
Email Templatevcp_messaging_admin_email_tplEmail body template for admin notifications. Supports HTML.

SMS Message Template

SettingOption KeyDescription
SMS Templatevcp_messaging_sms_tplSMS text template for message notifications.
SMS Confirm Thresholdvcp_messaging_sms_confirm_thresholdCharacter 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.

SettingOption KeyDefaultDescription
Default Notify Opt-invcp_mr_notify_defaultOffWhether the "Notify customer" checkbox is checked by default when creating a new record.
Default Channelvcp_mr_notify_channel_defaultemailDefault notification channel for medical records. Options: email, sms, or both.
Email Subjectvcp_mr_email_subjectSubject line for medical record notification emails.
Email Templatevcp_mr_email_tplEmail body template for medical record notifications. Supports HTML.
SMS Templatevcp_mr_sms_tplSMS text template for medical record notifications.
SettingOption KeyDefaultDescription
Email Footervcp_email_footer"This is an automated message."Footer text appended to all outgoing emails sent by VetCarePress.
  • 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

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.

SettingOption KeyDefaultDescription
Patient Slugvcp_slug_patientpatientURL slug for patient pages (e.g., /patient/bella/).
Medical Record Slugvcp_slug_medical_recordmedical-recordURL slug for medical record pages.
Vaccination Slugvcp_slug_vaccinationvaccinationURL 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

SettingOption KeyDefaultDescription
OTP Expiryvcp_otp_expiry_minutes10Number of minutes before a one-time password expires.
Session Expiryvcp_session_expiry_days30Number 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.

SettingOption KeyDefaultDescription
Max Widthvcp_attachment_width1200Maximum width in pixels for uploaded images.
Max Heightvcp_attachment_height1200Maximum height in pixels for uploaded images.
SettingOption KeyDefaultDescription
Share Link Expiryvcp_record_share_expiry_days30Number 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.

SettingOption KeyDefaultDescription
Medical Recordsvcp_pagination_medical_records10Records per page on medical record lists.
Weight Historyvcp_pagination_weight_history20Entries per page on weight history views.
Recent Patientsvcp_pagination_recent_patients10Patients shown in the recent patients widget.
Species Browsevcp_pagination_species_browse20Patients per page when browsing by species.

Legacy Title Handling

SettingOption KeyDefaultDescription
Disable Legacy Titlesvcp_disable_legacy_titlesOffDisable 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

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

SettingOption KeyDefaultDescription
Captcha Providervcp_captcha_providernoneThe 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.

SettingOption KeyDefaultDescription
Site Keyvcp_recaptcha_site_keyYour reCAPTCHA v3 site key.
Secret Keyvcp_recaptcha_secret_keyYour reCAPTCHA v3 secret key.
Score Thresholdvcp_recaptcha_v3_threshold0.5The 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

  1. Go to the Google reCAPTCHA admin console.
  2. Register a new site and select reCAPTCHA v3.
  3. Add your website’s domain(s).
  4. 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