# Client Portal

`meteorgpl-plugin/class-leco-client-portal` — a WordPress plugin as a Composer package.

A super simple, lightweight WordPress plugin to keep your client deliverables in one place.

- Author: Laura Elizabeth — http://lauraelizabeth.co/
- Homepage: https://client-portal.io/
- License: not declared
- Buy a license from the vendor: https://client-portal.io/
- Page: https://meteorgpl.com/packages/meteorgpl-plugin/class-leco-client-portal
- Requires WordPress: 6.5
- Tested up to WordPress: 6.8.1
- Requires PHP: 7.4
- Translations: af, an, ar, as, az, be, bg, bg_BG, bn_BD, br, bs, bs_BA, ca, co, cs_CZ, cy, da_DK, de_AT, de_CH, de_DE, de_DE_formal, dv, el, en_AU, en_CA, en_GB, eo, es_AR, es_CL, es_CO, es_ES, es_MX, es_PE, es_VE, et, eu, fa, fa_IR, fi, fo, fr_BE, fr_CA, fr_FR, fy, ga, gd, gl_ES, gu_IN, he_IL, hi_IN, hr, hu_HU, hy, id_ID, is_IS, it_IT, ja, jv, ka, ka_GE, kk, km, kn, ko_KR, ku, ky, lo, lt_LT, lv, mg, mk_MK, mn, mr, ms_MY, my_MM, nb_NO, ne_NP, nl_BE, nl_NL, nn_NO, oc, os, pl_PL, ps, pt_BR, pt_PT, ro_RO, ru_RU, sa, si_LK, sk_SK, sl_SI, so, sq, sr_RS, su, sv_SE, sw, ta, ta_IN, ta_LK, te, tg, th, tk_TM, tl, tr_TR, ug, uk, ur, ur_PK, uz, vi, zh_CN, zh_HK, zh_TW
- Vendor: Laura Elizabeth — https://meteorgpl.com/vendors/lauraelizabeth.co

## About

Client Portal is a way for you to give your clients access to a personalized area on your website where they can see the project status and links to all the past, present, and upcoming deliverables.

## Changelog

### 5.8.0 — 2026-04-23

**New**
- Comment notifications: get notified when clients comment on content pages
- Per-portal notification settings: override your global notification setup on a portal-by-portal basis when you need different behaviour for different clients
- Custom admin recipient field: send admin notifications to additional email addresses, not just the site admin

**Improved**
- Notification settings page redesigned for clarity, with pill-style sub-tabs, clearer copy throughout, and a refreshed layout
- Per-notification enable/disable toggles are easier to find and use
- "Email appearance" tab renamed to "Email settings" and rewritten to be more useful
- "Module available" renamed to "Module activated" for consistency
- Email subject lines and body content rewritten to be clearer and more professional
- Custom notification fields now pre-fill with your global defaults so you're not starting from scratch
- Image slider modal redesigned: full-width images, overlay navigation arrows, cleaner layout without grey background
- Image slider download dropdown now opens upward to avoid being clipped by the modal edge

**Fixed**
- Resolved an issue where some portal notifications could be silently blocked even when settings showed them as enabled
- Digest emails now correctly respect per-portal notification settings
- Multi-recipient admin emails now correctly report delivery status (previously, partial delivery could be reported as a full failure, leading to duplicate sends)
- Hardened security for notification emails containing user-generated content
- Fixed a layout issue where pasting formatted content from other apps (like Google Docs or Word) into a module would break the list styling in the popup view
- Inactive modules no longer appear active in the content page sidebar — they're now properly greyed out and non-clickable, matching the behaviour elsewhere in the portal

### 5.7.3 — 2026-04-07

- Fix: Fatal error on login page for Classic template users

### 5.7.2 — 2026-03-30

- Fix: Various security improvements
- Fix: Module status notifications now fire correctly in classic editor
- Fix: Upload notification emails show only newly uploaded files
- Fix: File list now displays correctly in upload notification emails
- Fix: Duplicate module/phase blocks no longer cause completion collisions
- Fix: Boolean meta compatibility after migration
- Fix: Email logo constrained to proper size
- Fix: Content page styling improvements (accordion, lightbox, sidebar modules)
- Fix: Editor compatibility on WordPress.com
- Fix: Header centering when navigation is removed
- Fix: Query Monitor warnings and missing dependencies
- Fix: Text editing after dragging modules/phases in editor
- Fix: Empty image slider modules now show proper empty state instead of black screen
- Fix: Content page sidebar opening wrong lightbox for file modules
- Fix: Duplicated modules no longer mark the wrong module as complete
- Improved: Newest uploaded files now appear at the top of the file list
- Fix: Content page selector showing wrong page in editor sidebar
- Fix: Content page dropdown not listing all pages
- Fix: Special characters not displaying correctly in content page titles
- Fix: Extra spacing above images in column layouts on content pages
- Improved: Modernised default notification email text

### 5.7.1 — 2026-03-10

- Fix: URL module "Open in New Tab" not working in multi-URL modals
- Fix: Login page logo overflow and block theme style interference
- Fix: Login page template detection for Classic template users
- Fix: Pink admin sidebar caused by reset.css leaking outside editor
- Fix: Asset isolation breaking third-party plugins on portal editor screens
- Fix: File deletion crash on client uploads module
- Fix: Module status not persisting after save
- Fix: Single-URL and single-file modules not opening directly
- Improved: Redesign delete confirmation modal to match mark-complete dialog
- Improved: Portal duplication slug collision, Unicode encoding, and file count updates

### 5.7.0 — 2026-02-23

- **Design Refresh**: Complete visual overhaul of the portal dashboard, modals, and content pages with a new design system.
- New modal design with grey header backgrounds, typography tokens, and branded confirmation UX.
- Added mark-as-complete buttons to modal headers and image slider modals.
- Module completion status now stored in post meta to prevent editor overwrites.
- Redesigned file and URL module modal list items as cards with action buttons.
- Added optional rich text areas above and below module content in modals.
- Added compact due date UI with clock icon and tooltip on module cards.
- Added file count badge and upload button to module cards.
- Added comment count to module cards for content page modules.
- New content page typography system with WYSIWYG editor styling.
- Styled blockquote, pullquote, code, table, accordion, separator, and gallery blocks for content pages.
- Added callout block variations for content pages.
- Added phase description field to portal dashboard.
- Redesigned comments section with AJAX submission, threaded replies, and inline reply forms.
- Added custom URL slug field to content page editor sidebar.
- Added Divi theme compatibility with conditional CSS loading.
- Fixed module block validation errors by extracting title color from HTML.
- Fixed Mark as Complete returning 500 error when email fails.
- Fixed REST API access for non-admin users in block editor.
- Added safeguard against accidental bulk user detachment from portals.

Full changelog: https://meteorgpl.com/packages/meteorgpl-plugin/class-leco-client-portal/changelog

## Install

```sh
composer config repositories.meteorgpl composer https://composer.meteorgpl.com
composer require meteorgpl-plugin/class-leco-client-portal
```

The repository needs a token (see https://meteorgpl.com/docs). The vendor's license checks are intact: activate the plugin in WordPress with a key bought from the vendor.

## Versions

No version has been published yet.

