Skip to content
ClientPress
  • Pricing
  • Features
  • Use CasesExpand
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0
ClientPress

Getting Started

7
  • Inviting a Client to Their Portal
  • Creating Your First Portal
  • User Roles Explained
  • Initial Setup Checklist
  • Plugin Overview — What ClientPress Does
  • Magic Login Links in Email Notifications
  • How to Link Clients to Their Portal

Navigation

1
  • How Client Login and Redirect Works

Assets, Files, and Deliverables

1
  • Portal Files — Browsing All Uploaded Files Across Portals

Client Setup

4
  • Onboarding — Guiding Clients Through Their First Steps
  • Managing Client Invitations
  • Assigning Project Managers to a Portal
  • Adding Sub-Clients to a Portal

Advanced

3
  • Uninstalling ClientPress — What Data Gets Deleted
  • Private File Storage and Security
  • Activity Log — What Gets Tracked and How to Use It

Automations and Integrations

5
  • REST API Overview
  • Connecting ClientPress to OttoKit
  • Connecting ClientPress to Make
  • Connecting ClientPress to Zapier
  • Using Webhooks with ClientPress

Features and Tabs

14
  • Onboarding — Guiding Clients Through Their First Steps
  • Docs — Adding Portal-Specific Client Documents
  • Guides — Creating and Assigning Global Support Docs
  • People Tab — Managing Portal Members
  • Tools & Links Tab — Building a Client Resource Board
  • Managing Deliverable Revisions
  • Deliverables — Sending Work for Client Approval
  • File Approval Workflow
  • Files Tab — Uploading and Managing Client Files
  • Calendar View — Visualizing Task Due Dates
  • Using the Kanban Board View for Tasks
  • Task Manager — Creating and Managing Tasks
  • Message Board — Topic-Based Team Discussions
  • Discussion Tab — Private Messaging with Clients

Notifications and Emails

3
  • Enabling or Disabling Admin Notifications
  • How Clients Can Manage Their Notification Preferences
  • How Portal Notifications Work

Portals and Hubs

6
  • Setting Portal Width and Layout per View
  • Configuring the Portal Landing Tab
  • Branding a Portal
  • Using Portal Templates
  • Managing Portal Status
  • Understanding Portals and Hubs (Child Portals)

Settings and Configuration

5
  • Setting Up the Login Redirect
  • Appearance Settings
  • Configuring Deliverable Categories and Revision Limits
  • Configuring File Upload Settings
  • Enabling and Disabling Portal Features Globally

Shortcodes and Theme

2
  • Customizing Portal Colors with the Theme Customizer
  • Shortcode Reference

Developer

5
  • ClientPress Hooks & Filters
  • ClientPress Outbound Webhooks
  • ClientPress Inbound Webhooks
  • ClientPress REST API
  • ClientPress Abilities API Integration
View Categories
  • Home
  • Support Documentation
  • Developer
  • ClientPress Hooks & Filters

ClientPress Hooks & Filters

1 min read

ClientPress exposes PHP filters that let developers extend plugin behaviour without modifying core plugin files. Add your customisations to a site-specific plugin or your theme’s functions.php.


Filters #

cp_allowed_upload_types #

Filters the list of MIME types that clients are permitted to upload — both for portal file uploads and deliverable uploads.

Signature

apply_filters( 'cp_allowed_upload_types', array $mime_types ): array
Parameter Type Description
$mime_types string[] Indexed array of MIME type strings (e.g. 'image/jpeg', 'application/pdf'). Default comes from Settings → Allowed File Types in the ClientPress admin.

Return value: A filtered array of allowed MIME type strings.

Where it fires

  • includes/FileUpload.php — portal file uploads
  • includes/Deliverables.php — deliverable uploads (validation + storage)

Examples

// Allow SVG uploads in addition to whatever is set in Settings.
add_filter( 'cp_allowed_upload_types', function( array $types ): array {
    $types[] = 'image/svg+xml';
    return $types;
} );
// Restrict to PDFs and images only, regardless of Settings.
add_filter( 'cp_allowed_upload_types', function(): array {
    return [ 'application/pdf', 'image/jpeg', 'image/png', 'image/gif', 'image/webp' ];
} );

cp_max_upload_size #

Filters the maximum permitted file size (in bytes) for portal file and deliverable uploads. The default is derived from the Max Upload Size (MB) setting in the ClientPress admin.

Signature

apply_filters( 'cp_max_upload_size', int $bytes ): int
Parameter Type Description
$bytes int Maximum file size in bytes. Default is the admin setting converted from MB (setting_mb * 1024 * 1024).

Return value: Maximum allowed file size in bytes.

Where it fires

  • includes/FileUpload.php — portal file uploads
  • includes/Deliverables.php — deliverable uploads (validation + storage)

Examples

// Cap uploads at 5 MB regardless of the admin setting.
add_filter( 'cp_max_upload_size', function(): int {
    return 5 * 1024 * 1024; // 5 MB
} );
// Double the configured limit for administrators.
add_filter( 'cp_max_upload_size', function( int $bytes ): int {
    return current_user_can( 'manage_options' ) ? $bytes * 2 : $bytes;
} );

cp_webhook_sslverify #

Filters whether SSL certificate verification is performed when ClientPress dispatches outbound webhook requests. Defaults to true. Set to false only in local/staging environments with self-signed certificates — never disable in production.

Signature

apply_filters( 'cp_webhook_sslverify', bool $verify ): bool
Parameter Type Description
$verify bool Whether to verify the remote SSL certificate. Default true.

Return value: true to verify (recommended), false to skip verification.

Where it fires

  • includes/Webhooks.php — every outbound webhook dispatch

Example

// Disable SSL verification on non-production environments only.
add_filter( 'cp_webhook_sslverify', function(): bool {
    return wp_get_environment_type() === 'production';
} );

Notes for Developers #

  • All ClientPress filters are prefixed cp_ to avoid collisions with WordPress core and other plugins.
  • Filters fire on init or later — safe to use in plugins and themes.
  • File-related filters (cp_allowed_upload_types, cp_max_upload_size) fire during AJAX upload handlers, so they run in the context of the logged-in client making the upload. You can use get_current_user_id() or current_user_can() inside your callback to apply per-role logic.
Updated on June 9, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
ClientPress Abilities API IntegrationClientPress Outbound Webhooks

Leave a ReplyCancel reply

Table of Contents
  • Filters
    • cp_allowed_upload_types
    • cp_max_upload_size
    • cp_webhook_sslverify
  • Notes for Developers

Use Cases

  • Coaches and Consultants
  • Employee Onboarding
  • Freelancers and Independent Contractors
  • Teams Working With Outside Freelancers
  • Web and Digital Agencies

How We Compare

  • Market Comparison
  • ClientPress vs Client Portal
  • ClientPress vs. Asana
  • ClientPress vs. Basecamp
  • ClientPress vs. Microsft Teams
  • Clientpress vs. Clickup

Customers

  • Dashboard

Support

  • Documentation
  • Support
  • Changelog
  • Roadmap

Affiliates

  • Affiliate Program
  • Affiliate Dashboard
  • Affiliate Terms and Conditions

Legal

  • Privacy Policy
  • Terms of Service

© 2026 ClientPress

Review My Order

0

Subtotal

Taxes & shipping calculated at checkout

Checkout
  • Pricing
  • Features
  • Use Cases
    • Coaches and Consultants
    • Employee Onboarding
    • Freelancers and Contractors
    • Teams Working With Outside Freelancers
    • Web and Digital Agencies
  • Contact
  • Log In
  • 0

Notifications