Projectopia

Version 5.1.25.2

For documentation and help, please visit -

https://projectopia.io

= 5.1.25.2 =
Release Date: April 29, 2026
* Fixed: Client file uploads failing on sites with page caching (Cloudflare, Cloudways, LiteSpeed, etc.) due to stale nonces — uploads now use a custom AJAX handler with nonce refresh instead of async-upload.php
* Fixed: Avatar photo upload on client settings page stuck on "Uploading..." with no error feedback — added missing error callback
* Fixed: Admin list tables (teams, clients, projects, quotes, invoices, leads, tickets, tasks, bugs, lead forms, FAQs) detaching from page flow — stretching full-width and floating on scroll — due to third-party plugins/themes defining a global `.fixed` utility class that collided with WordPress core's `.fixed` table-layout class
* Fixed: Broken image placeholder after avatar upload when site's thumbnail size is not 150x150 or the uploaded file is not an image — server now returns the actual thumbnail URL instead of having JS guess a filename
* Improved: Upload error messages now show the specific reason for failure (e.g. disallowed file type, authentication expired) instead of a generic error
* Added: Every file upload input now displays a hint beneath it showing the allowed extensions and the server's effective max upload size (min of upload_max_filesize and post_max_size)
* Added: Live upload progress counter — shows percentage and bytes transferred (e.g. "Uploading... 42% (4.2 MB / 10.0 MB)") during file uploads, so users get visual feedback on large files instead of a frozen "Uploading..." badge. Switches to "Processing on server..." once the bytes are transferred and the server is finishing up (thumbnail generation etc.)
* Added: Profile picture / avatar uploads are now restricted to image formats only (jpg, jpeg, png, gif, webp, avif, bmp, ico) — prevents users from accidentally uploading PDFs, videos or archives as profile photos. The file picker dialog also pre-filters to image files via the native `accept` attribute.
* Added: Company Logo, Dashboard Logo, Invoice Logo and Login/Register Background Image inputs on the Projectopia settings page now also restrict to image types via the `accept` attribute.
* Added: Progress overlay for settings-page image uploads (Company Logo, Dashboard Logo, Invoice Logo, Login/Register Background). When the form is saved with a file attached, a modal overlay shows live upload percentage and bytes transferred, then switches to "Processing on server..." while WordPress finalises the save.
* Updated: Settings-page image validators (Company Logo, Dashboard Logo, Login/Register Background, Invoice Logo) now accept modern raster formats (webp, avif, bmp) in addition to jpg/jpeg/png/gif. Validation is centralised in a single pto_is_allowed_logo_image() helper that checks the filename extension as the source of truth and cross-checks the reported MIME type. SVG and ICO are intentionally excluded (SVG for XSS safety, ICO as not useful for logos).
* Fixed: Client Files and Task Files not showing in the client dashboard after "Submit Files" was clicked — on PHP 8+, assigning to an array key on the fe_files meta (which starts life as an empty string) silently no-op'd, so files were never flagged as visible. fe_files is now initialised to an array when missing. Also added clean_post_cache() after the direct SQL post_parent update so attachments appear immediately on page reload without a stale-cache delay.
* Fixed: Upload hint and server-side extension validator could show an empty "Allowed file types" list (and reject every upload with "Permitted types:" followed by nothing) when the cqpim_allowed_extensions option was saved as an empty string. Added pto_get_allowed_extensions() helper that falls back to the hard-coded default whenever the option is missing or empty; the v5.1.25 migration now also self-heals the option if it's currently empty.
* Added: Client-side pre-flight validation before starting an upload — if the selected file's extension is not in the allowed list, or the file is larger than the server's max upload size, the user sees the error immediately without any bytes being transferred. Saves time on large disallowed files.
* Fixed: Long allowed-extensions text overflowing narrow upload containers — added overflow-wrap/word-break CSS to .pto-upload-hint and the .cqpim-alert family across admin and frontend stylesheets so the comma-separated list wraps cleanly inside its container instead of pushing past the right edge.
* Added: changes.txt lists the newly-introduced files (pto-admin-styles.css, upload_hint.js, logo_upload_progress.js).
* Updated: Allowed file extensions expanded to include jpeg, ico, webp, avif, bmp, odt, ppt, pptx, pps, ppsx, psd, mp3, m4a, ogg, wav, flac, mp4, m4v, mov, wmv, avi, mpg, ogv, 3gp, 3g2, gz, rar
* Updated: Existing installs automatically receive the new allowed extensions on upgrade (merged with any custom extensions)

= 5.1.24 =
Release Date: March 20, 2026
* Fixed: Replaced deprecated FILTER_SANITIZE_STRING (removed in PHP 8.2) with sanitize_text_field() + wp_unslash() across quote_functions.php, ticket_functions.php, and initial-settings.php
* Fixed: File uploads now work correctly for client users on async-upload.php via user_has_cap filter
* Fixed: Stripe SDK duplicate class collision (E_COMPILE_ERROR) when pto-subscriptions addon is active
* Fixed: CPT rewrite rules now auto-flush when addons are activated, resolving 404 errors on support ticket, quote, and invoice URLs
* Fixed: Quote email now shows specific error when client record has no email address, instead of generic settings message
* Fixed: Days until launch shows 0 instead of misleading countdown for completed/closed projects
* Fixed: foreach() warning - added is_array() guard on json_decode() result in invoice_cd.php, fe/invoice.php, and client-dashboard/client-settings.php to prevent "argument must be of type array|object, string given" errors
* Fixed: foreach() warning - fixed $weights fallback from empty string to array() in template_functions.php
* Fixed: foreach() warning - added is_array() guard on $quote_elements in quote_functions.php
* Fixed: foreach() warning - added is_array() guard on $field->values for checkbox-group, radio-group, and select field types in invoice_cd.php
* Tested and confirmed compatible with PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4

= 5.1.23 =
Release Date: February 09, 2026
* Fixed: Email sanitization - Fixed error that was causing blocking sending Quote Emails
* Fixed: Invoice Project details - Fixed PHP 8 compatibility, cannot access offset of type string for empty project details on invoice edit page
* New feature: Payment history added to invoices - Added toggle to enable payment history in invoices is available in invoice settings
* New feature: Projectopia Admin dashboard icon - Added toggle to hide or display for (all/admin/non-admin) users in admin dashboard settings
* New feature: Projectopia Admin dashboard notices - Added toggle to h or display for (all/admin/non-admin) users in admin dashboard settings
* New feature: Projectopia Admin dashboard screen options - Added toggle to hide or display for (all/admin/non-admin) users in admin dashboard settings

= 5.1.22 =
Release Date: December 16, 2025
* Fixed: PHP 8 compatibility for settings page

= 5.1.21 =
Release Date: December 15, 2025
* Fixed: Freemius SDK 2.1.30 file error.

= 5.1.20 =
Release Date: December 12, 2025
* Fixed: Security improvements - Fixed the CVE-2025-12876 vulnerability.Stricter checks for file deletion
* Fixed: Security improvements - Improved the sanitization checks for the register_setting() function
* Fixed: Removed deprecated load_plugin_textdomain action hook. This is now handled by WordPress as of version 4.6
* Updated: Freemius SDK to v2.13.0 (version updated December 2025)

= 5.1.19 =
Release Date: September 12, 2025
* Fixed: Mark as Signed Off button's undefined array error

= 5.1.18 =
Release Date: May 12, 2025
* Fixed:Security Improvements

= 5.1.17 =
Release Date: April 30, 2025
* Fixed:Security Improvements

= 5.1.16 =
Release Date: March 4, 2025
* Fixed: Invoice PDF download issue, refactored hardcoded URLs, oversized logo on the contract page, and deprecated automatic conversion of "false" to an array.

= 5.1.15 =
Release Date: January 30, 2025
* Fixed: Freemius SDK file refactored.

= 5.1.14 =
Release Date: January 29, 2025
* Fixed: Freemius SDK file missing issue.

= 5.1.13 =
Release Date: January 27, 2025
* Fixed: Update Freemius SDK to patch the XSS vulnerability.

= 5.1.12 =
Release Date: January 15, 2025
* Fixed: Broken team member column in task list.

= 5.1.11 =
Release Date: December 27, 2024
* Fixed: Fatal errors occur when adding a second contact for a client.

= 5.1.10 =
Release Date: December 12, 2024
* Fixed: Fatal error in Stripe SDK implementation

= 5.1.9 =
Release Date: December 02, 2024
* Fixed: Stripe is enabled, but the client’s address is empty.

= 5.1.8 =
Release Date: November 10, 2024
* Fixed: Resolve security patch in ajax request 'pto_reset_password'

= 5.1.7 =
Release Date: October 15, 2024
* Fixed: Resolve 'admin_body_class' filter issue


= 5.1.6 =
Release Date: February 7, 2024
* Fixed: Speed up the product to be more “snappy”
* New:   Allow for creation of multiple kanban boards.
* Compatible with WordPress v6.4.

= 5.1.5 =
Release Date: July 5, 2023

* Fixed: Undefined variable issue `$post_currency`.
* Fixed: Outstanding Invoice Widget not working.
* Fixed: Income by Month Widget issues.
* Fixed: Remove Convert to CQPIM Team Member from Users List page.
* Fixed: Show language in Projectopia Client dashboard base on user setting.
* Fixed: Multiple Selection Issue in Quote Form Builder.
* Fixed: Google reCaptcha was not showing on frontend in some cases.
* Added: A new action `pto_after_update_summary_details`.
* Updated: Freemius SDK to v2.5.10.

= 5.1.4 =
Release Date: April 13, 2023

* Fixed: Column sorting issue for invoice.
* Tweak: Change instawp domain extention.
* Updated: Freemius SDK to v2.5.6.
* Compatible with WordPress v6.2.

= 5.1.3 =
Release Date: December 15, 2022

* Fixed: Fatal error when uploading file in manually created lead.
* Updated: Freemius SDK to v2.5.3.
* Compatible with WordPress v6.1.
* PHP 8.1 Compatibility.

= 5.1.2 =
Release Date: September 9, 2022

* Added: Kanban Board Permission Support.
* Updated: Freemius SDK to v2.4.5.

= 5.1.1 =
Release Date: July 27, 2022

* Added: Info to indicate a quote is converted to a project.
* Improved: Login and Register page display style.
* Improved: Make some un-translable stings translable.
* Fixed: Issue where Ticket status is not displaying properly if there is custom status key is set.
* Tweak: Restricted the ability to change support ticket status key only for in-built statueses.
* Fixed: Notification count issues.
* Fixed: License related logic.
* Fixed: Cannot delete notification when in Kanban view.
* Fixed: Add-on not showing up after activation.
* Fixed: Client Contact issue.
* Fixed: Add Team Member popup CSS issue.
* Fixed: Fatal Error when uploading file to a task.
* Fixed: Calendar links within Edit Team Member is not working.
* Fixed: Edit Quote UI and CSS issue.
* Fixed: Wrong tooltips.
* Fixed: Some Typos.
* Updated: Freemius SDK to v2.4.4.

= 5.1.0 =
Release Date: May 24, 2022

* Fixed: Unchecking the Option `Automatically recalculate task dates` was not working.
* Fixed: Fatal Error on Project edit.
* Fixed: Project Files upload 500 error.
* Fixed: Wrong notification count on project list page.
* Fixed: Unable to sort Project using Title filter.
* Fixed: Notification counter number was not dynamically updated.
* Fixed: Notification counter number was not dynamically updated.
* Fixed: Email Password setting to change to input type password.
* Fixed: Wrong message count showing in Project List Page.
* Compatible with WordPress v6.0.

= 5.0.9 =
Release Date: April 27, 2022

* Fixed: Partial Invoices issue.
* Fixed: Fatal Error on Invoice Creation and Save.
* Fixed: Updated Metabox Loading Order.
* Fixed: Client Dashboard default font.

= 5.0.8 =
Release Date: April 20, 2022

* Added: Option under Projectopia Settings > Client Dashboard to change Login / Register Page Backgorund Color.
* Fixed: Mixed up in password reset and create account forms.
* Fixed: No Role showing up on team member list if multiple roles were assigned.
* Fixed: Client Details not showing on Project list.
* Fixed: Custom Fields not showing up if quotes were present on field label.
* Fixed: Milestone dates are different after importing milestone template.
* Fixed: Customer name and Customer billing email address is not recorded in Stripe account.
* Fixed: Calendar translation issue.
* Fixed: CSS Issues.
* Updated: Stripe SDK to make this plugin fully compatible with PHP v8.0.

= 5.0.7 =
Release Date: February 25, 2022

* Fixed: Cannot set team member as project manager if there is only one team member.
* Fixed: HTML is FAQ Answer are not working.
* Fixed: Task time entry note not showing properly.
* Fixed: Hide time entries in client dashboard checkbox issue.
* Fixed: Company email in contract is having http prefix.
* Fixed: HTML markup which causes Metaboxes hidden on Edit Client.
* Fixed: PHP errors on Project Updates metabox on Projectopia Dashboard.
* Fixed: Quotes showing wrong email link.

= 5.0.6 =
Release Date: February 9, 2022

* Added: Option to Customize Projectopia Client Dashboard Theme Font Family and Theming.
* Added: Turkish Lara Currency Support.
* Fixed: Fatal Error on Ticket update metabox.
* Fixed: Missing credit card number input in Stripe subscription.
* Fixed: Invoice Footer address showing HTML br tag instead of comma.
* Fixed: Hide time entries in client dashboard checkbox issue.
* Fixed: Form Builder checkbox group Enable "Other" is not working.
* Fixed: Overlapping of contents in columns in Projects view.
* Fixed: Clear notification "Mark as Read" button not removing count.
* Fixed: Invoice line item column sizes to make Description field bigger.
* Fixed: Issue with assigning team member as Project Manager.

= 5.0.5 =
Release Date: January 20, 2022

* Fix Broken Form Builder Layout.
* Kanban Board Integration.
* Several Bug Fixes.

= 5.0.4 =
Release Date: December 29, 2021

* Added Upgrade Link.
* Bug Fixes.

= 5.0.3 =
Release Date: December 28, 2021

* Fixed default settings import process.
* Addons Compatibility.
* Bug Fixes.

= 5.0.2 =
Release Date: December 21, 2021

* Bug Fixes.

= 5.0.1 =
Release Date: December 20, 2021

* Make Code Compatible with WPCS.
* Fixed issue with Duplicate Page creation on activation.

= 5.0.0 =
Release Date: October 22, 2021

* Inital Release on WordPress.org.

= 4.3.13 (03 June, 2021) =
Bug: Fixed the issue of some PHP Undefined Variables.
Bug: Fixed the issue of Client name not appearing in quote.
Bug: Fixed the issue of Duplicate Div element.
Bug: Fixed the issue of Task disappear after sorting.
Bug: Fixed the issue of Some string not translatable.
Enhancement: Added condition to fix the Notification of payment on Invoice send to Sales and Accounts email issue of subscription addon.
Enhancement: Added hook or integrate the client area addon.

= 4.3.12 (03 Mar, 2021) =
Bug : Fixed the issue of invoice being sent incorrectly after Project marked as sign off.
Bug: Fixed translation issue with some texts.
Bug: Fixed PHP notice while creating WordPress post or page.
Bug: Fixed inability  to uncheck Activate Milestones, tasks and Invoicing in support ticket.
Bug: Fixed various issues with WordPress 5.6.
Bug: Fixed incorrect Quote URL parameter inside email notification.
Bug: Fixed fatal error while uploading Project file in PHP 8.
Feature : Added roadmap page and embed the public roadmap.

= 4.3.11 (12 Jan, 2021) =
Bug : Fixed Unable to activate Projectopia - Twilio Integration plugin
Bug : Fixed the issue of incorrect start and end date of project.
Bug : Fixed inability to edit task in Safari browser.
Bug : Fixed various time and date issues with reoccurring invoice.
Bug: Fixed recurring Invoice not sending on creation.
Bug: Fixed recurring invoice not sent according to time on next issue.
Bug: Fixed Invoice with manual add payment does not show up in Projectopia Client's dashboard.
Feature: Added option to add  a file to a task from the project edit page.

= 4.3.10 (28 December, 2020) =
Bug : Fixed the inability to create bug report while using bug tracker addon.
Bug:  Fixed the issue of new support  tickets created marked as resolved.
Bug : Fixed Partial payment for invoice is not working.
Bug : Fixed Support ticket table sorting issue in client dashboard.
Bug : Fixed creation of new project for un-linked WooCommerce product.
Bug : Fixed PHP warnings in Costs and Invoices for a project in Projectopia Client's user interface.
Bug : Fixed PHP notices in Project Updates on dashboard.
Enhancement : Made all tables remember the number of items to show.

= 4.3.9 (14 December, 2020) =
Bug : Fixed Missing number in "Show" dropdown in support ticket.
Bug : Fixed View invoice link from email notification not working.
Bug : Fixed Invoice with partial/increment manual payment not being marked as paid.
Bug : Fixed the inability to  remove text in ticket notes from a support ticket.
Bug : Fixed Ad Hoc task not showing up under my task or all tasks.
Bug : Fixed Task without Project not showing up under All Tasks or My Tasks.
Bug : Fixed incorrect recoding of  Start Time and End Time in task timer.
Bug : Fixed strange characters appearing in project brief while using Google recaptcha.
Bug : Fixed Invalid deadline check message.
Bug : Fixed missing email address for team member contact details.
Bug : Fixed Projectopia Client dashboard mobile menu bugs.
Bug : Fixed capturing of  Recaptcha response in submitted lead form content.
Bug : Fixed issue with deleting a project message.

= 4.3.8 (31 August, 2020) =
Bug : Fixed invoice payments while using PayPal sandbox.
Bug : Fixed issue where enter key deletes support ticket.
Bug : Fixed invoice item subtotal.
Bug : Fixed issue while emailing invoices to client.
Bug : Fixed php notices in custom support ticket status.
Bug : Fixed sending recurring invoice on creation.
Bug : Fixed client dashboard logo hidden issue when scrolling down and back up.
Enhancement : Added more details to time entries in a task.
Enhancement : Added ability to delete all logs in Project Updates metabox.

= 4.3.7 (15 August, 2020) =

Bug : Fixed compatibility issues with WordPress 5.5
Bug : Fixed FAQ section on client's dashboard.
Bug : Fixed duplicate footer issue in invoice.
Bug : Fixed issues while viewing resolved tickets in client's dashboard
Bug : Fixed issues with Paypal payment for subscriptions in client dashboard.
Bug : Added the Indonesian, Indian, and New Taiwan currency to the Supplier Currency list
Bug : Fixed php notices and warnings.
Feature : Added shortcode in FAQ answer.
Enhancement : Replace mail settings label with documentation link.


= 4.3.6 (03 August, 2020) =
* Enhancement: Added preview button when someone editing project/task.
* Enhancement: Added missing edit task icon and popup for tasks in a Project.
* Enhancement: Added option to list projects by last update time.
* Bug: Fixed Manual Date time entry and Reporting Addon issue.
* Bug: Fixed option for Currency to be Set Per Supplier.
* Bug: Fixed Resolved tickets showing up among other status.
* Bug: Fixed timezone issues by using WordPress Timezone option.
* Bug: Fixed missing Tasks/Sub Tasks when re-assigned to a different milestone.
* Bug: Fixed issue where deleting support ticket created via email piping does not delete it's attachment.
* Bug: Fixed issue where system accepts invalid deadline.
* Bug: Fixed issue where user is unable to apply milestone template to a support ticket.
* Bug: Fixed Support tickets table sorting issues.
* Bug: Fixed issue where Days Until Launch in Client's Projects table is wrong.

= 4.3.5 (12 May, 2020) =
* Feature: Added date option for manual time entries in the task.
* Feature: Added Google reCaptcha in client login and registration form.
* Feature: Added Indonesian Currency option.
* Enhancement: Avatar upload option in Current active WP theme client profile.
* Enhancement: Improve an Income/Expenditure by Month widget filter options.
* Enhancement: Redirect to quote list on clicking "Cancel Quote/Estimate".
* Enhancement: Improved envato register form design for Projectopia client dashboard theme.
* Bug: Fixed bell icon notification in project message for client.
* Bug: Fixed creation of duplicate client for new client registration.
* Bug: Fixed infinite loading issue on Resend Quote/Estimate.
* Bug: Fixed issues when creating a new project.
* Bug: Fixed team members/clients online status issue.
* Bug: Fixed notice/fatal errors on an edit of quote tasks.

= 4.3.4 (27 April, 2020) =
* Feature: Add Google reCaptcha in Lead and Quote forms.
* Feature: Add persistent cache option for project filter selection.
* Enhancement: Add quote email attachment as PDF version.
* Enhancement: Create support tickets from unknown email.
* Enhancement: Bulk delete for support tickets.
* Enhancement: Rename Test date option to an appropriate name.
* Bug: Remove autofill for billing email in client details page.
* Bug: Fix empty subject email support ticket of client.
* Bug: Fix creating of client from client page.
* Bug: Fix email notification of quote form.
* Bug: Fix quote new message email notification for client.

= 4.3.3 (30 March, 2020) =
* Feature: Ability to customize support ticket priorities
* Enhancement: Quote form edit page enhancements
* Enhancement: Saving settings page active tab
* Enhancement: Added Indian and New Taiwan Currency Options
* Bug: Supplier Addon - Fix table formatting proper
* Bug: Remove preview buttons from all CPT in backend.
* Bug: Project edit popup cancel button redirecting on dashboad
* Bug: Front-end quote form is not getting clean after submission

= 4.3.2 (12 March, 2020) =
* Feature: Introduce Setup Wizard
* Feature: New quote email notification.
* Enhancement: Add quote messaging in wp theme for client
* Enhancement: Automatically delete upload files when support ticket has been deleted
* Enhancement: Add Multiple Team members to project at once
* Bug: Editing recurring invoice
* Bug: ID shows up in task instead of assigned Client name when using current wp theme for PTO client dashboard
* Bug: Bug as duplicate team member assigned on same project
* Bug: Email sending issue
* Bug: Fix notice/warnings in mpdf library
* Bug: Projectopia admin does not get notification on support ticket replies from customer.

= 4.3.1 (2 March, 2020) =

* Bug: Extra slashes in javascript file URL
* Bug: Projectopia select box style
* Bug: Mobile Menu Icon
* Bug: Unable to delete milestone with missing ID
* Bug: Conflict with Third Party Plugin
* Bug: Uncaught Error: Call to undefined function imap_open()
* Feature: Add Custom CSS Tab in Settings
* Bug: Fix notice error in admin
* Bug: Adding a new user doesn't show up on Clients list
* Bug: Getting errors in client dashboard
* Feature: Messaging system for quote
* Feature: Task timer notes
* Bug: Error in time calculation for task
* Bug: Adding a new user doesn't show up on team member list
* Enhancement :Bulk operation for converting users to clients and team member
* Enhancement :Invoice is not in RTL layout when a RTL language is used in WordPress