=== Constellation Client Portal ===
Author: ARS
Contributors: arstudios
Tags: client portal, private files, private content, customer portal, invoicing
Requires at least: 6.0.0
Tested up to: 7.0
Stable tag: 2.7.3
Requires PHP: 7.4
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

WordPress client portal plugin that allows for sharing private files, pages, and posts to manage clients, customers, and more.

== Description ==

A professional client portal for WordPress that helps you organize clients, customers, groups, and teams. Create unlimited client pages and securely share private pages, posts, and files.

Upgrade to the [Pro version](https://constellationclientportal.com/?utm_source=wporg "Get Constellation Client Portal Pro") and integrate with WooCommerce to accept payments for invoices and services.

Whether you are a veteran of high-level business or just starting out, Constellation Client Portal gives you the tools that you need to manage your operations efficiently and professionally, so that you can do business with confidence. 

== Features ==

* Create unlimited private pages for your clients, customers, and team members.
* Create private invoice and file posts for your clients and display them on private client pages, with simple to use shortcodes.
* Attach private files (example: pdf, jpg, docx, xlsx, etc) to invoice and file posts.
* Prevent direct access to client files by users, search engines, and bots.
* Assign WordPress users to Companies.
* Assign users (example: consultants) to multiple companies to allow them to access files that are assigned to different companies.
* Easily add curated lists of invoices and documents to client pages via simple to use shortcodes.

== Pro ==

* Automatically redirect clients to their private client page at login (optional login redirect setting).
* Integrate your invoices with WooCommerce and add a pay button to your unpaid invoices, and accept payments from your customers and clients (requires WooCommerce).
* Change the Client Page, Client File, and Client Invoice URL base names ("accp-client-page," "accp-clientfile," and "accp-clientinvoice) to names of your choosing.
* Automatically send email notifications to clients when a new File or Invoice post is created.
* Automatically send reminder email notifications on a schedule.
* Easily customize the look of client-facing lists and pages.
* Display client-facing lists in list or grid layout.
* Easily generate, save, and edit file and invoice shortcodes within the plugin settings.
* Add due dates and past due notices to invoices and files.
* Further restrict file and invoice access within a company by user and role.
* Restrict file and invoice category access by user and role.
* Add internal notes to File and Invoice posts.
* Export file and invoice lists to CSV.
* Create [global client pages](https://constellationclientportal.com/2023/05/16/how-to-utilize-global-pages/ "Client Portal Global Pages") that can be accessed by multiple companies.
* Create global client files that can be accessed by more than one company.

== Use Cases ==

Constellation Client Portal is your portal for everything, and helps you interface with clients, customers, teams, and groups.  It's professional, extendable, versatile, and is designed to sit at the heart of your organization to save time and lower costs.


**Example Use Case Areas**

* Businesses and Professionals - Interface with clients, customers, employees, contractors, and vendors.
* Freelancers - Interface with clients, customers, contractors, and vendors.
* Project Managers / Teams - Interface with stake holders, contractors, project members, and vendors.
* Teams - Interface with team members, staff, affiliates, vendors, and contractors.
* Groups and Organizations - Interface with group members, and other affiliates.

== Screenshots ==

1. Client-Facing - Current Invoice List
2. Client-Facing - Paid Invoice List
3. Client-Facing - Grid Style Document/File List
4. Admin Settings - Pro General Settings
5. Admin Settings - Pro Invoice Settings
6. Admin Settings - Pro File Settings
7. Admin Settings - Pro Client Page Settings
8. Admin Settings - Pro Company Settings
9. Admin Settings - Pro Email Settings
10. Admin Settings - Invoice Post Edit
11. Admin Settings - File Post Edit
12. Admin Settings - Company Page Edit
13. Admin Settings - Client Page Edit
14. Admin Settings - Pro Invoice Bulk Create
15. Admin Settings - Pro List/Shortcode Settings
16. Admin Settings - Pro List/Shortcode Edit Settings
17. Admin Settings - Pro List/Shortcode Theme Settings

== Shortcodes (Core) ==

The shortcode parameters, below, are for use with the core version of the plugin.  The pro version allows for file and invoice shortcodes to be easily generated, saved, and edited within the plugin settings.

= Unpaid Invoice List =

`[accp_clientinvoices invoice_status="unpaid"]`

= Paid Invoice List =

`[accp_clientinvoices invoice_status="paid"]`

= Invoice Shortcode Parameters =

* **invoice_status** this is the payment status of the invoice. Accepted Values: “paid” or “unpaid”. Default: “unpaid”.
* **display_number** this is the number of posts per page. Accepted Values: any positive whole number. Default: -1 (which displays all posts returned in a query).
* **order_by** this allows for lists to be sorted by post title instead of date. Accepted Values: “title” or “date”. Default: “date”.
* **order** this allows the sort order to be changed. Accepted Values: “ASC” or “DESC”. Default: “DESC”.
* **show_excerpt** this allows for a post excerpt to be displayed with each list item. Accepted Values: “true” or “false”. Default: “false”.
* **excerpt_length** this allows you to constrain the number of words, “show_excerpt” is set to “true”. Accepted Values: any positive whole number. Default: null.
* **show_thumbnail** this allows the featured image to be displayed with each list item (if a featured image is set). Accepted Values: “true” or “false”. Default: null.
* **thumbnail_size** this allows you to choose an image size if the “show_thumbnail” attribute is set to “true”. Accepted Values: any valid thumbnail slug that is available in your theme (ex. “full”). Default: null.
* **align_thumbnail** this allows the thumbnail image alignment to be set if the “show_thumbnail” attribute is set to “true”. Accepted Values: “center”, “left”, “right”, “float-left”, or “float-right”. Default: null.
* **show_post_date** this allows for the WordPress post date to be displayed with each item in a list. Accepted Values: “true” or “false”. Default: “false”.
* **categories** Accepted Values: this can be entered as an Invoice Category Slug or ID, or a combination of those. Separate multiple values with a comma (ex. “21, category-a”). Default: null.
* **link_title** Accepted Values: “nolink”.  Adding this parameter and setting the value to "nolink" will remove the href from post titles in the list and make them unclickable. Default: null.
* **class** Accepted Values: any valid HTML class attribute name or names (separate multiple class names with a space). Default: null.


= Document/File List =

`[accp_clientfiles]`

= File Shortcode Parameters =

* **categories** Accepted Values: this can be entered as a File Category Slug or ID, or a combination of those. Separate multiple values with a comma (ex. “21, category-a”). Default: null.
* **display_number** this is the number of posts per page. Accepted Values: any positive whole number. Default: -1 (which displays all posts returned in a query).
* **order_by** this allows for lists to be sorted by post title instead of date. Accepted Values: “title” or “date”. Default: “date”.
* **order** this allows the sort order to be changed. Accepted Values: “ASC” or “DESC”. Default: “DESC”.
* **show_excerpt** this allows for a post excerpt to be displayed with each list item. Accepted Values: “true” or “false”. Default: “false”.
* **excerpt_length** this allows you to constrain the number of words, “show_excerpt” is set to “true”. Accepted Values: any positive whole number. Default: null.
* **show_thumbnail** this allows the featured image to be displayed with each list item (if a featured image is set). Accepted Values: “true” or “false”. Default: null.
* **thumbnail_size** this allows you to choose an image size if the “show_thumbnail” attribute is set to “true”. Accepted Values: any valid thumbnail slug that is available in your theme (ex. “full”). Default: null.
* **align_thumbnail** this allows the thumbnail image alignment to be set if the “show_thumbnail” attribute is set to “true”. Accepted Values: “center”, “left”, “right”, “float-left”, or “float-right”. Default: null.
* **show_post_date** this allows for the WordPress post date to be displayed with each item in a list. Accepted Values: “true” or “false”. Default: “false”.
* **link_title** Accepted Values: “nolink”.  Adding this parameter and setting the value to "nolink" will remove the href from post titles in the list and make them unclickable. Default: null.
* **class** Accepted Values: any valid HTML class attribute name or names (separate multiple class names with a space). Default: null.

= Global Files (Pro) =

`[accp_global_files]`

= Company Menu (Pro) =

`[accp_company_menu]`

= Company Menu Shortcode Parameters =

* **excluded_page_ids** - this allows for pages that are assigned to a given company to be excluded from the company menu.  Accepts a comma separated list of Client Page ID's. Default = null.
* **list_style** - this allows the UL orientation to be changed.  Accepts 'vertical' or 'horizontal.' Default = horizontal.
* **align** - this allows for the menu alignment to be set.  Accepts 'left,' 'right,' or 'center.' Default = left.


== Documentation ==

* [Quick Start Guide](https://constellationclientportal.com/documentation-constellation-client-portal/#quick-start) - Follow the quick start guide to quickly set up the initial foundation for your client portal.
* [Plugin Documentation](https://constellationclientportal.com/documentation-constellation-client-portal/) - View the plugin documentation for other helpful information.

== Support ==

Pro users, with active licenses, should open a support ticket by accessing their account on [constellationclientportal.com](https://constellationclientportal.com/my-account/) for help and support.

== FAQ ==

= Can I provide private files and documents for my clients to access and download? =
Yes.  Constellation Client Portal is designed to allow you to attach files to private posts.  This allows you to present private  private files and/or private posts to clients.

= Can I provide private posts and information to my clients? =
Yes.  The client files and invoices allow you to upload/attach files (optional), as well as post freeform content via a WYSIWYG post editor.

= Can I only display client pages to a specific client when they are logged into my site? =
Yes.  By default only users that are logged in have access to client pages and files.  Further, only users that have been added to a specific company, are able to view pages and files for that company.

= Can I automatically redirect clients to their client page when they log into my site? =
Yes. The Pro version allows you to enable automatic login redirection and choose to redirect clients to their respective client page when they log in.  This option should only be enabled if you do not already have login redirection enabled through another plugin.

= Can I automatically change an invoice status to paid when an order is paid in WooCommerce? =
Yes. The Pro version allows you to enable functionality that automatically changes an invoice status to paid when it is paid in WooCommerce, or when the WooCommerce order status changes to "completed" (depending on your preference).

= Can I restrict access to specific documents and pages for specific users or roles? =
Yes.  The Pro version allows for more granular access restriction by specific user or role, as well as by category.

= Can I add file and invoice shortcodes to any WordPress page or post? =
No.  In order to provide better access restriction, file and invoice shortcodes can only be added to Client Pages, which are in turn assigned to specific companies/users.

= Can I customize the layout and design of client pages? = 
Yes.  Client pages can be laid out and designed like any other page in WordPress.

= Can the client page slug be changed to a custom slug name? = 
Yes. The [pro version](https://constellationclientportal.com/) allows the client page, client file, and client invoice, post type slugs to be changed to a custom name of your choice.


= Can I use this plugin without installing WooCommerce? =
Yes. WooCommerce is not required, but the Pro version of the plugin does integrate with WooCommerce to allow invoice payments to be processed (optional setting).

= Will my theme's page builder work with client pages? =
This is dependent on the theme, and Constellation Client Portal has no control over this functionality.  However, some themes may work out of the box with client pages.  If your theme's page builder does not work with client pages, check with the theme developer to see if they have a method for extending the page builder to custom post types (the client page post type is "accp_client_pages").

= Can I customize the look of post lists displayed on the front-end? =
Yes.  The Pro version allows you to customize the look of each list independently.  The pro version also allows you to display post lists in list or grid layouts.

== Installation ==

= Automatic Install =

1. In the WordPress Admin section, navigate to Plugins.
2. Click Add New and select your plugin zip package.
3. Click Install.
4. Finally, click Activate when the plugin is installed.

= Manual Install =

1. Extract your plugin zip file.
2. Using an ftp program, open your wp-content/plugins directory.
3. Upload the uncompressed plugin folder to the wp-content/plugins directory.
4. In the WordPress Admin section, navigate to Plugins.
5. Locate the Constellation Client Portal plugin and click Activate.

== Changelog ==
= 2.7.3 (Pro) - 2026-6-1 =
* Compatibility: Tested pro version with WP 7.0.

= 2.7.3 (Core) - 2026-6-1 =
* Compatibility: Tested core version with WP 7.0.

= 2.7.2 (Pro) - 2026-5-1 =
* Update: Reworked the $new_links array in accp_add_pro_plugin_row_meta for better organization and scalability.

= 2.7.2 (Core) - 2026-5-1 =
* Update: Paired the tags down to five in the readme file to clear WP repo notice.
* Update: Added a short description to the readme file to clear WP repo notice.

= 2.7.1 (Pro) - 2026-4-1 =
* Update: Updated the review request last shown functionality to fix issue preventing the request from being displayed in the pro version.

= 2.7.1 (Core) - 2026-4-1 =
* Update: Updated the review request last shown functionality.

= 2.7.0 (Pro) - 2026-3-2 =
* Fix: Fixed issue in the new install wizard and company onboarding wizard that caused all new client pages to be set as global pages.
* Update: Began internationalizing un-internationalized pro text.
* Fix: Fixed all occurrences of typo ($instatiate_wp_settings) in the pro shortcode settings file.

= 2.7.0 (Core) - 2026-3-2 =
* Update: Began internationalizing un-internationalized core text.
* Fix: Fixed typo in the Generate Sample Content button in the initial set up wizard.
* Fix: Fixed all occurrences typo ($instatiate_wp_settings) in the core wizards file.
* Fix: Fixed all occurrences typo ($instatiate_wp_settings) in the core settings file.
* Fix: Updated settings link in disallowed file type upload error message.
* Update: Added options associated with review request functionality to the Constellation option list so that they can be cleared on plugin uninstall.
* Update: Added functionality to exclude Constellation post types and taxonomies from Yoast SEO generated sitemaps.
* Update: Added functionality to exclude Constellation post types and taxonomies from the default WP sitemap (WP_Sitemaps_Posts and WP_Sitemaps_Taxonomies).
* Update: Added functionality to update the WP robots file to prevent Constellation post types and taxonomies from being indexed.

= 2.6.1 (Pro) - 2026-2-2 =
* Update: Updated the review request last shown functionality to show the element once per week for pro instances of the plugin.
* Fix: Corrected the filter name in the get_global_file_rewrite_slug function from accp_update_client_file_slug to accp_update_global_file_slug.

= 2.6.1 (Core) - 2026-2-2 =
* Update: Updated the review request last shown functionality to show the element once per week for pro instances of the plugin.

= 2.6.0 (Pro) - 2026-1-8 =
* Fix: Fixed issue where the accp-item-container link color css rule overrode individual a.accp-pay-link text color within invoice list items.
* Update: Added pro plugin review request notice functionality.

= 2.6.0 (Core) - 2026-1-8 =
* Update: Added core plugin review request notice functionality.

= 2.5.1 (Pro) - 2025-12-5 =
* Update: All core updates.
* Compatibility: Tested the plugin with WP 6.9.

= 2.5.1 (Core) - 2025-12-5 =
* Compatibility: Tested the plugin with WP 6.9.
* Update: Updated the file and invoice reassign functionality to allow the posts to be reassigned to another company even if there is no file attached to the post.

= 2.5.0 (Pro) - 2025-10-1 =
* Update: Created functionality to store the shortcode ID in the shortcode settings instead of just relying on the array key.
* Update: Created new get_single_shortcode_settings method.
* Update: Created new get_all_shortcode_settings method.

= 2.5.0 (Core) - 2025-10-1 =
* Feature: Added feature that allows sample content to be created to quickly give users a better view of how companies, client pages, and file/invoice posts relate to each other.
* Fix: Fixed typo in company onboard wizard page title.

= 2.4.0 (Pro) - 2025-9-17 =
* Update: Added link to the company onboard wizard in the WP admin sidebar conditionally displayed Company menu section.

= 2.4.0 (Core) - 2025-9-17 =
* Update: Added new Launch Company Onboard Wizard button to the company WP list table.
* Fix: Fixed broken logo image link in the set up wizard.
* Update: Added link to the company onboard wizard in the WP admin sidebar menu.
* Update: Added link to the company onboard wizard in the plugin settings help section.
* Feature: Added new company onboard wizard.

= 2.3.0 (Pro) - 2025-8-29 =
* Update: All core updates.

= 2.3.0 (Core) - 2025-8-29 =
* Update: Renamed the settings Documentation page to "Help," along with associated slugs and function names, to account for additional information and resources.
* Update: Added link to the initial setup wizard on the settings Documentation page.
* Fix: Corrected typo in several settings page function names.
* Feature: Created new initial set up wizard to improve usability at plugin activation.
* Fix: Fixed typo in label, in the company add new primary user form.
* Update: Updated the admin company client page select styling to improve the UI.
* Update: Updated the admin assign company select styling to improve the UI.
* Update: Updated the Primary user column data in the Company WP list table to display a notice if no primary user is assigned.
* Update: Added hyperlink to the Primary user column data in the Company WP list table.

= 2.2.0 (Pro) - 2025-7-18 =
* Update: Updated links within the plugin item in the WP plugin list, to point to the new constellationclientportal.com site.
* Update: Updated the API URL in the license files to point to the new constellationclientportal.com site.

= 2.2.0 (Core) - 2025-7-18 =
* Update: Updated links within the plugin item in the WP plugin list, to point to the new constellationclientportal.com site.
* Update: Updated the documentation links, within the plugin settings, to point to the new constellationclientportal.com site.
* Update: Updated all links in the readme document to point to the new constellationclientportal.com site.

= 2.1.1 (Pro) - 2025-6-25 =
* Update: All core updates.

= 2.1.1 (Core) - 2025-6-25 =
* Fix: Fixed issue from preventing the title from being displayed in the accp_my_company_page shortcode output.

= 2.1.0 (Pro) - 2025-6-2 =
* Update: Added warning to data management settings that delete file or data when enabled.
* Update: Updated new post audience select element to pull from a new defined audiences function to allow for easily extending note audience options in the future.
* Update: Updated the saved note UI within posts to include visibility meta, along with an "Edit Note" link to allow note content to be easily edited.
* Update: Added new metabox section in the note post type to display data about the post that the note is assigned to, and other related data.
* Update: Added new columns to the post note WP list table to present more/better information when viewing the post list.

= 2.1.0 (Core) - 2025-6-2 =
* Update: Made minor code formatting update to the i18n class.

= 2.0.0 (Pro) - 2025-5-6 =
* Feature: Created new functionality that allows users to better control what data is deleted when file, invoice, and global file posts are deleted.
* Feature: Created new functionality that allows users to better control what data is deleted when a company is deleted.
* Feature: Created new functionality and settings to allow users control over what data is removed when the plugin is uninstalled.
* Feature: Created new data management settings page and functionality to allow users better control over how data is handled.
* Fix: Fixed typo in post note meta box message.
* Fix: Fixed issue with undefined post__in array key in the company menu shortcode that surfaced in certain instances.
* Update: Updated the company menu shortcode to explicitly exit if is_admin to prevent conflict in WP Admin in certain environments.
* Feature: Added functionality to allow post notes (accp_post_note post type) to be conditionally displayed in the WP Admin menu for easier management and administration.
* Fix: Fixed undefined variable warning in pro admin functions.
* Compatibility: Tested the plugin with WP 6.8.

= 2.0.0 (Core) - 2025-5-6 =
* Update: Updated the file delete notice on the file, invoice, and global file WP list table trash pages.
* Update: Deprecated the accp_delete_file_attachment_on_post_permanent_delete, accp_delete_file_attachment_on_bulk_post_permanent_delete, accp_delete_file_attachment_on_post_empty_trash AJAX functions in favor of the WP before_delete_post hook.
* Update: Added new core data management class.
* Fix: Fixed issue where PHP null value warning could be thrown in the global file WP list table excluded companies column in cases where a company was deleted, but still saved to the excluded companies global file post meta.
* Compatibility: Tested the plugin with WP 6.8.

= 1.11.1 (Pro) - 2025-4-1 =
* Update: All core updates.

= 1.11.1 (Core) - 2025-4-1 =
* Update: Updates to the readme file.
* Fix: Fixed incorrect text domain in the client page list table column names.
* Fix: Fixed incorrect text domain in the company list table column names.

= 1.11.0 (Pro) - 2025-3-3 =
* Improvement: Updated the accp_company_menu shortcode to allow ALL global client pages to be displayed in company menus.
* Update: Updated the accp_company_menu shortcode non multi company nav menu functionality to allow global client pages to be displayed for cases in which a company has a global page set as the home page.
* Fix: Fixed issue preventing the Global Page label from being properly displayed in the Client Page WP list table Company column for pages set as global pages.
* Update: Cleared minor PHPCS code formatting warnings.

= 1.11.0 (Core) - 2025-3-3 =
* Update: Truncated the changelog in the readme file, and added a link to the full changelog for better organization.
* Update: Cleared minor PHPCS code formatting warnings.

= 1.10.3 (Pro) - 2025-2-3 =
* Update: All core updates.

= 1.10.3 (Core) - 2025-2-3 =
* Update: Updated the settings -> site info -> theme thumbnail list to only display in the core version, as these are only needed for core and legacy shortcode implementations.

[View full changelog](https://constellationclientportal.com/change-log-constellation-client-portal-pro/).
