See CHANGELOG.md for recent entries.

v5.5.3 - 26 January 2023
-------------------------
* Fixed: CRM no longer breaks WordPress sites running on PHP 7.2
* Fixed: HTML escaped code in contact list filters for segments

v5.5.2 - 25 January 2023
-------------------------
* Fixed: Custom profile images are now shown in the Latest Contacts dashboard
* Fixed: Potential XSS in the Custom Fields setting page
* Fixed: Custom profile pictures are no longer removed when updating contacts
* Fixed: Potential XSS in invoices with manual input references
* Fixed: Code snippet was removed from the top of the Forms new/edit page
* Fixed: Remove HTML code in the "Bundle holder" notification when uploading files to a contact
* Fixed: HTML escaped code in contact list filters for segments
* Fixed: Improved security regarding filenames for uploaded files
* Fixed: The creation date for contacts is updated on any WooCommerce subscription event
* Improved: Added translation for contact fields when exporting contacts
* Improved: Added Invoice Status to PDF Invoice template
* Added: Export Segments to .CSV
* Added: WooCommerce order status mapping to transaction status
* Added: WooCommerce order status mapping to invoice status

v5.5.1 - 16 December 2022
-------------------------
* Fixed: Inline field editing no longer prevents listings from being displayed
* Improved: Security around phone numbers viewing
* Improved: Added a migration to remove outdated AKA lines

v5.5.0 - 13 December 2022  (MailPoet Sync)
-------------------------
* Fixed: negative and zero-balance invoices now show tax subtotals when applicable
* Fixed: Bug where core field conditions Status and Email didn't translate well between Advanced Segments and core Segments.
* Fixed: WooSync removing contact fields while syncing
* Fixed: Empty index.html files are now being added to contacts folders to prevent directory listing
* Fixed: Date and datetime picker issue in Segmentation
* Fixed: Incorrect total value shown for contacts when invoices were deleted
* Fixed: Added missing custom fields in WooCommerce's My Account when using WooSync
* Fixed: Segment editor bugs around some Advanced Segment conditions
* Fixed: Properly delete associated aka (aliases) when deleting contact
* Fixed: Security improvement to prevent XSS attacks escaping output HTML
* Fixed: Reference error which was blocking custom date field editing.
* Fixed: Bug where by some migrations were not finishing
* Fixed: "Your tasks" link now properly filters to your tasks
* Improved: caught PHP warning when creating a new contact with navigation mode enabled
* Improved: one can select "none" for shipping tax rate when editing transactions
* Improved: Refactored date and datetime picker logic to be more robust
* Improved: Segment conditions now have proper positioning and categorisation
* Improved: Styling in Segment editor with the recent addition of lots of new conditions
* Improved: Files for companies, invoices, and quotes are now stored in separate folders
* Improved: Security around Email viewing
* Improved: contact profile activity timeline properly renders newlines
* Improved: custom date fields now have additional _DATETIME_STR and _DATE_STR placeholders
* Improved: default fonts are now bundled with the core plugin
* Improved: Hardened security around CRM client portal account privileges
* Improved: Hardened security against admin-side file uploading
* Improved: Migration system now has multi-load-point potential.
* Improved: cleaned up incorrect/broken learn links
* Added: MailPoet Sync module (Import MailPoet Subscribers into CRM Contacts)
* Added: Export CRM Segment to MailPoet Subscriber list functionality
* Added: MailPoet Contact List View Filter
* Added: Autologging of MailPoet Subscriber changes on contact
* Added: MailPoet Contact View information tab
* Added: Custom profile pictures for contacts now use a new field
* Added: Migration to correct incorrect errors for custom field based Segment Conditions

v5.4.4 - 14 November 2022
-------------------------
* Fixed: prevent edge case where folder creation may overwrite file
* Fixed: cleaned up unneeded files in plugin zip
* Fixed: System Status sometimes didn't detect default font as installed
* Improved: extra fonts now persist between updates
* Improved: consistent menu order between menu modes
* Improved: allow style attributes on more HTML elements in quote templates
* Improved: Segment condition inputs are now type-aware

v5.4.3 - 10 November 2022
-------------------------
* Fixed: uploaded files could not be accessed when using Apache
* Fixed: 500 error visiting Client Portal invoices page if logged out and easy-access disabled
* Fixed: transaction date fields properly show timezone offsets
* Improved: custom WP date and time formats no longer cause errors when editing transactions
* Improved: redirect to Client Portal login instead of error if accessing an invoice object URL when logged out and easy-access disabled
* Improved: hardened security
* Added: File listing tab in the contact's page now shows information about who an when a file was uploaded
* Added: transaction paid and completed date fields now allow manual adjustment of time data
* Added: transaction editor now uses native browser date and time inputs

v5.4.2 - 2 November 2022
-------------------------
* Fixed: Bug in 5.4 which was giving PDF generation a hiccup
* Fixed: Bug in WooSync where customer notes were not being added
* Fixed: Added a workaround for varying encryption cipher support
* Improved: HTML in contact logs now displays properly in the contact single view Activity Log
* Improved: Allow more common-sense HTML elements in Quote Templating

v5.4.1 - 27 October 2022
-------------------------
* Fixed: catch migration error when using PHP 8
* Fixed: catch migration error when using non-default table prefixes

v5.4.0 - 26 October 2022
-------------------------
* Fixed: Bug in tax table management where duplications could be added
* Fixed: Bug where WooSync would not make new invoices for orders where order id and Invoice id collided
* Fixed: Bug where by WooSync duplicate customer note logs
* Fixed: Error when accessing Client Portal settings when Client Portal is disabled
* Fixed: transaction type is properly imported with WooSync
* Fixed: error if using old database servers when searching contacts
* Fixed: caught PHP notices when checking for existing object metadata
* Fixed: transactions excluded from calculated totals now show a zero value in invoice partials
* Fixed: one can again regenerate API credentials when using PHP 8
* Fixed: allowed some previously-translatable text to be translated again
* Fixed: calculated tax works with negative invoice line items
* Fixed: Email file attachments (invoices) don't work with Gmail sender method
* Fixed: Style glitch for Payment rows in Invoice Totals table (PDF)
* Fixed: database index tried to add twice on new installs
* Fixed: Segment conditions for custom fields now respect the custom field type when using Advanced Segments
* Fixed: Bug in segmentation logic which effected Advanced Segments 'date added' condition.
* Improved: WooSync now follows WooCommerce tax code usage
* Improved: Database access layer around the storage of log metadata
* Improved: Segment preview audiences are now linked to profiles
* Improved: CSV filenames are now hashed during import for better security
* Improved: numeric custom fields now allow negatives
* Improved: better backend support when uploading files to contacts
* Improved: Updated PDF generation library to latest version
* Improved: Hardened PDF generation routine against local file exposure
* Improved: Segment previews now show randomised contacts.
* Improved: Hardened file checks in CSV Importer
* Improved: Segment condition 'Date range' has been split into 'Date range' and 'Datetime range'
* Improved: wrap more strings for translation
* Added: Ability to Pin and Unpin important logs from a contact
* Added: Segment editor now supports condition categories and descriptions.
* Added: New feature: Totals tables to contact list view
* Added: new "jpcrm_client_portal_after_save_details" hook
* Added: Segment condition type: Variable date windows (e.g. within the past _ days, or in the next _ days)
* Added: Segment condition type: Numeric >=
* Added: Segment condition type: Numeric <=
* Added: Segment condition type: String "Does not contain (!*)"
* Added: Segment condition type: Date >=
* Added: Segment condition type: Date <=

v5.3.1 - 29 September 2022
-------------------------
* Fixed: PHP notice in WooSync syncing
* Fixed: zbs_end_emails_ui hook sometimes fired twice
* Fixed: error when listing contact or company files
* Improved: Increased reliability of lost-connection notifications in WooSync

v5.3.0 - 28 September 2022
-------------------------
* Fixed: WooSync properly maps the "On hold" transaction status
* Fixed: custom date fields now work correctly under WooCommerce My Account
* Fixed: Client Portal is now properly aligned when using the Twenty Twenty theme
* Fixed: catch an edge-case API error when no results are found
* Fixed: invoice exports no longer give PHP errors
* Fixed: "Powered by" messaging now consistently respects its setting
* Fixed: "Older than X days" filter works again
* Fixed: reCaptcha form settings are no longer reset
* Fixed: "Select All" button on export page now works
* Fixed: sort by total value sometimes gave an error
* Fixed: uploaded files could not be accessed when using Apache
* Fixed: "My Invoices" link in WooCommerce My Account no longer triggers an error
* Fixed: plain permalinks can now be used with the Client Portal
* Fixed: "Thank You" page from Client Portal is now accessible when using easy-access links
* Fixed: escape translated apostrophes in client portal metabox
* Fixed: PHP notice on task manager when not an admin
* Fixed: segment editor shows correct match type
* Fixed: quotes and invoices in the Client Portal now respect theme colors
* Fixed: custom permalinks no longer break the Client Portal
* Fixed: various security fixes
* Improved: better handling of HTML-encoded content on export
* Improved: Refined the way we protect sensitive data storage
* Improved: removed unused legacy API files
* Improved: renamed undocumented "api_status" endpoint to "status"
* Improved: better handling of relative date output
* Improved: show correct dates in invoices despite timezone variations
* Improved: consolidated various "Powered by" settings into two general settings
* Improved: deleted contacts no longer generate PHP notices in email manager
* Improved: better performance on large sites
* Improved: better API error handling
* Improved: prevent exporting an object type if there are no objects to export
* Improved: API secret is now hashed upon generation for better security
* Improved: new API credentials have "jpcrm_" prefix
* Improved: CRM-only menu choice during welcome wizard no longer enables full WP override setting
* Improved: better messaging when generating a WP user fails
* Improved: prevent saving an invalid email to a contact
* Improved: tweaks to list view settings UX
* Improved: refined messaging on WooSync hub page around paused sites
* Improved: performance boosts to WooSync for large sites
* Improved: removed JS error from console when on the dashboard
* Improved: replaced outdated feedback page with CRM Resources page
* Improved: contacts created via WooSync are now assigned to a company if specified
* Added: custom date fields now show on the Client Portal
* Added: get CRM version info with the "status" endpoint
* Added: invoice list view now has "date" and "due date" columns
* Added: new backend webhook system via API
* Added: new setting to disable WooSync order status mapping
* Added: optional transaction status column in the Client Portal
* Added: "jpcrm_after_contact_update" and "jpcrm_after_contact_insert" hooks

v5.2.0 - 11 August 2022
-------------------------
* Fixed: bug in Segments which would sometimes block multi-field querying of the same field
* Fixed: Custom CRM Header link was resulting in a broken link
* Fixed: error while sending e-mails when the Client Portal module is disabled
* Fixed: external source record lines are now properly removed on object deletion
* Fixed: invoices updated by WooSync retain their logo
* Fixed: listviews wouldn't load if tags had improperly-encoded characters
* Fixed: local Woo order hooks are ignored if local connection is not active
* Fixed: WooCommerce order linetime prices were incorrectly mapped to the CRM invoice in some cases
* Fixed: WooCommerce order updates didn't always update the associated CRM invoice
* Fixed: WooSync and GiveWP no longer overwrite the WP user ID link in the database
* Fixed: WooSync now properly sets the contact status
* Fixed: Zapier logic was not loaded properly
* Improved: better PHP 8 compatibility
* Improved: if a GiveWP donation has a date available the CRM will import a transaction using that date
* Improved: invoices missing easy-access hashes will regenerate one when saving in the invoice editor
* Improved: menus items should now load in a consistent order no matter the menu mode
* Improved: refactor of Client Portal backend code
* Improved: refinements to mail delivery setup wizard
* Improved: removed old dompdf library
* Improved: switching between tabs in the System Assistant page now updates the URL
* Improved: visual tweaks and refinements
* Improved: WooSync now connects to external stores via authentication dialog, rather than credentials (simplified)
* Added: increased minimum PHP version to 7.2
* Added: CRM settings are now found in the Jetpack CRM menu
* Added: Gmail via API as a mail delivery method
* Added: OAuth 2.0 Connection support for Google
* Added: Package Installer to support sideloading of larger dependencies
* Added: WooSync can now synchronise data from multiple WooCommerce stores into one CRM instance
* Added: WooSync now has 'pause sync' mode per store connection

v5.1.0 - 30 June 2022
-------------------------
* Fixed: unpaid/uncompleted transactions imported from Woo now show a blank completed/paid date
* Fixed: orders could be skipped if they didn't exist during partial order page retrieval
* Fixed: domain field in WooSync settings no longer shows 0 if blank
* Fixed: WooSync connection settings did not toggle visibility properly in some cases
* Fixed: WooSync now correctly reports partial percentage of pages completed
* Fixed: second address custom fields can now be used as columns in a list view
* Fixed: second address label is now properly used throughout the CRM
* Fixed: orders from external sites were sometimes not synced
* Fixed: data imported from GiveWP now adds to existing tags instead of replacing them
* Fixed: the Client Portal page can now be set as the homepage
* Improved: transaction statuses imported from Woo are now properly shown when editing a transaction
* Improved: 0% tax rates are now possible
* Improved: better translation support on tax settings page
* Improved: ensures the zbs_end_emails_ui action fires on the single email page
* Improved: WooSync hub now syncs latest data on load
* Improved: better translation support for second address fields
* Improved: catch a PHP notice when processing a Jetpack contact form
* Improved: WooSync Hub stats automatically update during AJAX sync
* Improved: The transaction listing in the Client Portal now shows the transaction status
* Added: WooSync Hub now supports syncing orders that have a custom number structure
* Added: new _DATETIME_STR and _DATE_STR placeholders based on unix timestamp values

v5.0.1 - 5 June 2022
-------------------------
* Fixed: emails properly send when a quote is accepted
* Fixed: catch Woo API headers when server maps them to lowercase keys
* Fixed: catch division by zero error in Woo edge cases
* Improved: removal of legacy code
* Improved: contact placeholders can now be used in system email templates
* Improved: update link to Woo learn content
* Improved: better handling of larger numbers in WooSync hub

v5.0.0 - 25 May 2022
-------------------------
* Fixed: Contact/company creation logs now show more useful data when created from external source.
* Fixed: Bug where in some external site syncing situations external sources were duplicated in WooSync
* Fixed: Segment date range outputs correctly when editing
* Fixed: WooCommerce Bookings from the current day are now correctly listed.
* Fixed: Database query filter bug around external source retrieval
* Fixed: Contact names now show on company list view when contact image mode is set to none
* Fixed: Caught PHP notice when regenerating API keys
* Improved: External source system now records 'origin' (Domain) for external sources.
* Improved: WooSync now records domain origins for Synced orders and customers.
* Improved: Expanded DAL to allow additive tagging.
* Improved: External source system now displays grouped by source, with clearer UI.
* Improved: Added support so that Advanced Segments can segment by External Source
* Improved: WooSync now stores Order ID above Post ID.
* Improved: Refined query engine surrounding setting retrievals
* Improved: WooCommerce integration performance
* Improved: Cleanup of white label code
* Improved: Refund transaction support improved throughout.
* Improved: Increases the interval of the WooSync cron job
* Improved: Increases the number of Woo orders retrieved per page
* Improved: Local WooCommerce order trashing and deleting are now caught by WooSync Sync.
* Improved: Add a notice to not allow to reactivate WooSync extension in Jetpack CRM v5+
* Improved: Reduced amount of migrations, unified, simplified, optimised!
* Improved: Brought base data model up to date with v3.0 DAL for fresh installs
* Improved: Core CRM modules now have autoloading.
* Added: WooSync module is now bundled in the core!
* Added: WooSync module can now be enabled in welcome wizard
* Added: Two new segment conditions, "Is WooCommerce Customer" and "WooCommerce Order Count".
* Added: Added filter bar button "Woo Customer".
* Added: System Assistant steps for the Woo module
* Added: Automatic switching routine to let WooSync core module seamlessly replace the Extension variant.
* Added: Update link to go to Woo hub from first use dashboard
* Added: Support for new WooCommerce related Advanced Segments
* Added: Support for WooCommerce Checkout Field Editor fields in WooSync
* Added: Support for WooCommerce Checkout Add-Ons in WooSync
* Added: Support for Checkout Field Editor (Checkout Manager) for WooCommerce
* Added: New Quick Filter: Invoice from WooCommerce
* Added: New Quick Filter: Transaction from WooCommerce
* Added: Email and name changes made on WooCommerce My Account are now reflected against attached contacts.
* Added: Email and name changes made on WordPress profile edits are now reflected against attached contacts.
* Added: Support for WooCommerce refunds

v4.11.0 - 21 April 2022
-------------------------
* Fixed: WP users are now consistently created if "Generate WP User" is selected
* Fixed: Client Portal width in the Twenty Twenty-Two theme
* Fixed: Broken link on activating CRM API
* Fixed: Invoice labels now display properly on PDFs and on portal invoices
* Fixed: one can again send an invoice to the email of choice
* Fixed: DB migration collision
* Improved: prevent upload folder directory listing on misconfigured web servers
* Improved: learn menu code tweaks
* Improved: set the transaction paid completed" dates to match transaction date if not specified in the transaction editor
* Improved: redirect CRM contacts to client portal after login at /wp-admin/
* Improved: better client portal password reset flow
* Improved: better Zapier search support
* Improved: dashboard revenue chart is fully based on transaction date instead of transaction date paid
* Improved: wrapped a few more strings for translation
* Improved: prevent WP button text from being changed in edge cases
* Added: new "api_status" API endpoint to verify credentials
* Added: You can now display Invoice custom fields on invoice PDFs and portal invoices.
* Added: You can now display Contact/Company custom fields on invoice PDFs and portal invoices.
* Added: Preparations for v5.0 major release

v4.10.3 - 30 March 2022
-------------------------
* Fixed: transaction list doesn't work on sites with unexpected table prefixes.
* Fixed: Issue installing the plugin via XML-RPC request.
* Improved: move welcome tour behind first use dashboard modal.

v4.10.2 - 28 March 2022
-------------------------
* Fixed: issue installing the plugin via WP-CLI command line
* Fixed: updates now show consistently
* Fixed: some menus did not load on white label installs

v4.10.1 - 25 March 2022
-------------------------
* Fixed: Error on new first use dashboard
* Fixed: Incompatibility with PHP versions prior to 7.3
* Improved: better compatibility with block-based themes

v4.10.0 - 24 March 2022
-------------------------
* Fixed: quotes can now be accepted in block-based themes
* Fixed: prevent a JS error when TinyMCE is used by another plugin
* Fixed: edit user-created logs when created in another language
* Improved: Styling around admin notices on various pages
* Improved: support addition of tags via Jetpack contact form block's checkbox group
* Improved: removed references to non-existent asset maps
* Improved: Refactored learn menu system
* Improved: Updated Noto fonts to provide more global character support
* Improved: Added new settings page: Locale
* Improved: string cleanup
* Improved: extension update detection code
* Improved: handle null transaction names
* Improved: better WP user creation logic
* Improved: catch PHP notice when creating a contact from Jetpack Forms
* Improved: caught PHP notice that sometimes occurred within built-in forms
* Improved: catch PHP notices when saving logs
* Added: Transaction list can now show External Source column
* Added: Include external source ID when searching transactions
* Added: Ability to install region-specific fonts for PDFs
* Added: New first-use dashboard to better welcome new users
* Added: WooCommerce variant of first use dashboard
* Added: Content to learn menus, including video guides

v4.9.1 - 22 February 2022
-------------------------
* Improved: Better compatibility with Jetpack plugin

v4.9.0 - 16 February 2022
-------------------------
* Fixed: Wording for Client Portal is now consistent
* Fixed: error when creating WooCommerce orders with PHP 8.x
* Fixed: catch PHP notice when adding a new contact
* Improved: contacts can now be unassigned
* Improved: discoverability of core CRM modules
* Improved: handle long file titles and descriptions
* Improved: fix import icon on contact menu
* Improved: prevent Jetpack "Add Contact Form" button from showing on quote pages
* Improved: Client Portal tab in contact view was moved to sidebar
* Improved: cleaned up client portal permissions code
* Added: "Assigned to Me" and "Not Assigned" filters for contacts
* Added: further support for Mail Campaigns imminent release
* Added: cron monitoring system to keep the cron jobs alive
* Added: better compatibility for installation via Jetpack

v4.8.1 - 20 January 2022
-------------------------
* Fixed segment compilation error if using a segment condition that was no longer available

v4.8.0 - 20 January 2022
-------------------------
* Fixed: bug when apostrophes are present in the business name while sending emails
* Fixed: contact ownership wasn't properly set when creating or updating a contact via the API
* Fixed: cron jobs were not being properly deleted on deactivation
* Fixed: Removed faulty character
* Fixed: setting deletion function
* Improved: better API error messaging
* Improved: newlines are preserved in new emails sent from the Email Manager
* Improved: summary boxes now show in the dashboard if there are no contacts
* Improved: prevent errors if there are duplicate meta keys for a contact
* Improved: transactions created via the API now have a transaction date
* Improved: messaging around Client Portal Pro contact files updated for several scenarios
* Improved: segment failsafes for code extensions such as Advanced Segments
* Improved: UI for the Client Portal is now responsive
* Improved: WP 5.9 compatibility


v4.7.0 - 16 December 2021
-------------------------
* Fixed: catch error if list view has no filter buttons
* Fixed: pagination didn't update when changing listview settings
* Fixed: second address fields in client portal now save properly
* Improved: show "access restricted" message when one has no access to said object
* Improved: using Safari to send email now works as expected
* Improved: legacy "Auto-draft Garbage Collection" no longer shows on System Status page
* Improved: User Profile page improvements
* Improved: contact edit layout now shows properly if addresses are show last
* Added: pagination and bulk actions now show at the top of listviews

v4.6.0 - 18 November 2021
-------------------------
* Fixed: non-hidden fields can be blanked from the Client Portal
* Fixed: hidden fields cannot be changed from the Client Portal
* Fixed: all placeholders now work if WP is set to another language
* Fixed: the client portal button placeholder works properly in manually-sent invoice and quote emails
* Fixed: white label sites no longer have a PHP error
* Improved: better cache-busting for JS/CSS files
* Improved: better handling of avatar settings
* Improved: Segment conditions are more reliably respected when building segment counts
* Improved: Support for placeholders in single send emails.
* Improved: better logging when a customer updates details from the Client Portal
* Improved: log types for disabled modules no longer show when adding logs
* Improved: HTML string cleanup
* Improved: placeholder replacement order in single-send emails
* Improved: show contact IDs when merging contact records
* Improved: more robust rewrite rule handling of invoices in the client portal
* Improved: clean up PHP debug code
* Added: check for mb_internal_encoding support

v4.5.0 - 20 October 2021
-------------------------
* Fixed: Resolves occasional error when sending emails via Email Manager
* Fixed: Sending emails sometimes had extra newlines
* Fixed: reCaptcha on built-in forms wasn't properly working
* Fixed: Custom field settings could overwrite themselves in rare cases
* Fixed: Bug where users could not clear tags against objects.
* Fixed: Updated some WooCommerce doc broken links.
* Fixed: Calendar shows the newer events first (with a 50000 limit)
* Improved: Email Manager messaging tweaks
* Improved: Custom field settings now hide when their module is disabled
* Improved: Cleaned up boxes on the dashboard
* Improved: Refinements to segment caching routines
* Improved: Added more translation support
* Improved: Refinements to single quote client portal page, and other refactoring around templates
* Improved: Moved main email template into templating system (can now be modified via theme file)
* Improved: Added security to templates directory to avoid any possible external indexing
* Improved: Welcome to Client Portal email now supports ##ASSIGNED-TO-EMAIL## etc.
* Added: Show assigned user on contact profile
* Added: New GiveWP core module
* Added: Support for file templates for Invoices, Quotes, and Statements (PDFs)

v4.4.0 - 24 September 2021
-------------------------
* Fixed: Bug where email template test emails were being sent blank
* Fixed: Cleaned up some PHP notices in the client portal
* Fixed: removed obscure and long-broken setting
* Fixed: Some steps in the welcome tour are not working well
* Fixed: Now Client Portal supports multi slug levels
* Improved: Better messaging on licensing page
* Improved: Add link to task list view on task edit page
* Improved: Wrapped some missed strings for translation
* Improved: Better compatibility with WordPress.com menus
* Improved: File cleanup
* Improved: More strings are available for translation
* Improved: Added better support to custom field creation to avoid key name collisions
* Improved: Better handling of form custom fields
* Improved: Small design tweaks
* Improved: backend translation updates
* Added: New system-wide placeholder system
* Added: New System Assistant page
* Added: Placeholder map reference page

v4.3.1 - 3 September 2021
-------------------------
* Improved: Some promo banners

v4.3.0 - 25 August 2021
-------------------------
* Fixed: You are now able to load more than 100 calendar items per page load.
* Fixed: Contact edit link icon.
* Fixed: cleaned up PHP notice when exporting linked objects.
* Fixed: the company column in the contact list view is no longer truncated.
* Fixed: Tweaked previous invoice security fix code.
* Improved: use fallback text in invoices and transactions if contact has no name or email.
* Improved: subtotal column widths are now consistent.
* Improved: items can now be unassigned after a previous assignment.
* Improved: image alt attributes on the extensions page now show properly.
* Improved: Some welcome copy and pics.
* Improved: Removed some unused images.
* Improved: one can now set date custom fields more than 5 years in the future.
* Added: Tasks can now be viewed in a list view as well as calendar view.
* Added: Task bulk actions: add/remove tags, update status, delete.
* Added: Task quick filters: next 7 days, past 7 days, incomplete, complete, etc.
* Added: update contact status in bulk.
* Added: The changelog.txt file with the full release changes.
* Added: Track usage and CRM stats to help us develop features in the most used areas of the CRM.
* Added: the percent discount now shows on invoices when applicable.

v4.2.3 - 11 August 2021
-------------------------
* Fixed: Invoices and Invoice list not shown on my account unless assigned to you.

v4.2.2 - 9 August 2021
-------------------------
* Fixed: Hotfix for bug introduced in 4.2.0 with regards tag editing against contacts.

v4.2.1 - 5 August 2021
-------------------------
* Fixed: Invoices cannot be sent to the assignment contact email.

v4.2.0 - 4 August 2021
-------------------------
* Fixed: the welcome wizard respects which extensions were selected
* Fixed: invoice lineitem descriptions have newlines preserved
* Fixed: editing contacts assigned to another user is restricted if "Assign Ownership" setting is disabled
* Improved: Cleaned up HTML validation
* Improved: better handling of contacts with no name or email
* Improved: use default quote template values if quote field is empty
* Improved: active core extensions will remain active on refresh
* Improved: cleaned up PHP notice when creating forms
* Improved: cleaned up deprecated jQuery code
* Improved: datepickers now respect WP's "week starts on" setting
* Improved: better Client Portal support for the default Twenty Twenty-One theme
* Improved: Added client portal dialog to contacts without emails in contact view mode
* Improved: Linked object fields can now be exported for Contacts, Quotes, Invoices, and Transactions
* Improved: the "perpage" and "page" params are now available at all relevant API endpoints (customers, companies, transactions, invoices, quotes, customer_search, events)
* Improved: show transaction name on the contact profile page
* Improved: hide total value on contact and company profile when transactions and invoices are disabled
* Improved: DAL improvements allow passing of generic tag_input
* Improved: links are detected in custom text fields
* Added: quick links to create new items from the document tabs
* Added: navigation mode now applies to companies as well as contacts

v4.1.0 - 8 July 2021
-------------------------
* Fixed: Contact second address custom fields now show in View mode
* Fixed: Display second address if first address is empty
* Fixed: Company custom fields will now always show in View mode
* Fixed: Hide company settings when B2B mode is disabled
* Fixed: The jpcrm_quote_accepted hook works with the quote editor too and not only via Client Portal
* Fixed: The /events API endpoint returns events
* Fixed: Hide Companies section in non-Slimline menu layouts
* Fixed: Don't allow quote template builder to run if customer isn't selected
* Fixed: Contact logs could show doubled in some cases
* Fixed: The "show prefix" setting is now respected when editing contacts
* Fixed: Events now properly show in day and week view
* Improved: Cleaned up PHP warnings related to list view filters
* Improved: Text wrapping in contact and company fields
* Improved: Removed unneeded JS files
* Improved: Contact prefixes and countries can be unset
* Improved: better handling of very long tags
* Improved: CRM deprecation notices are now logged
* Improved: Wrapped some missed strings in __() for translation
* Improved: Blank custom fields now show correctly when viewing a contact profile
* Improved: Search by phone will ignore spaces and common punctuation
* Improved: Typeahead limit has been raised from 5 to 10

v4.0.17 - 24 June 2021
-------------------------
* Fixed: An internal variable naming for DAL version 2
* Fixed: No break lines in PDF quotes.
* Fixed: Country field is not showing on company address
* Improved: all pages should have titles now

v4.0.16 - 25 May 2021
-------------------------
* Fixed: Updated PDF library that fixes some issues with the pdf of quotes and invoices using PHP 8
* Improved: Some text banners and buttons

v4.0.15 - 9 April 2021
-------------------------
* Fixed: Invoice client portal was incorrectly saving the invoice total
* Fixed: Country field is not showing on contact cards
* Fixed: Item selector for invoicing, with long names have a UI issue
* Improved: A better alert message when a user tries to create an invoice with a duplicated reference
* Added: A notice block for announcements.

v4.0.14 - 12 March 2021
-------------------------
* Fixed: An issue with the set_time_limit in some shared hosts.
* Improved: The CRM dashboard view with date ranges.
* Tested: Tested with WordPress 5.7

v4.0.13 - 25 February 2021
-------------------------
* Fixed: Added date column in the contact list is using UTC time.
* Fixed: Add a link to the contact ID column in the contact list.
* Fixed: WooCommerce <-> JPCRM conflict importing CSV file with products.
* Fixed: Fix an overflow in custom fields that use a textarea as type.
* Fixed: A collision between the slugs of Jetpack and Jetpack CRM extensions.
* Fixed: The dashboard contacts card, when it's empty, doesn't have padding.
* Improved: Now the transactions have available the hidden fields net, discount, fee.

v4.0.12 - 11 February 2021
-------------------------
* Fixed: The setting API menu is visible after activating the API core extension.
* Improved: Move the EUR symbol to the top of the currencies selector

v4.0.11 - 1 February 2021
-------------------------
* Fixed: Company activity log now shows the right time regardless of WP installation timezone
* Fixed: In some cases Invoice ID was lost when updating
* Fixed: Custom label for invoice ID now properly used throughout
* Fixed: Apostrophes in company and contact names now display properly throughout
* Fixed: Started work on PHP 8 support (fixed deprecation notices)
* Improved: Readme (.org description) improvements for readability, added more FAQs
* Improved: Settings now casted better, will overcome core extension loading issues for a handful of users on strict php installs
* Improved: Made menu adjustments for users using Jetpack and Jetpack CRM on the same install, for easier navigation

v4.0.10 - 17 December 2020
-------------------------
* Fixed: Duplicated title in the short description logs when creating quotes, invoices, transactions and tasks
* Fixed: Custom field with auto-number broken with empty prefix
* Fixed: PHP notice for some users from email tracking system
* Fixed: Labels now again fully respect locale
* Improved: Hardened output of contact list on dash
* Improved: Hardened parsing of CSV files
* Improved: Custom field types numeric and numeric (decimal) are now reliably sortable via list views

v4.0.9 - 10 December 2020
-------------------------
* Fixed: Migration issues where Jetpack CRM is installed with wp-cli
* Fixed: List views with 'Latest Contact' columns now load properly regardless of DB environment
* Fixed: PHP notice around quotes on contact view
* Fixed: Quote and Task auto-logging now working correctly
* Improved: Removed legacy country-check code
* Improved: Quote send via email now allows for optional attachment of quote as a pdf, or any associated files
* Improved: Hardened the security around the updating of activity logs
* Improved: Resolved a false-positive security flag in a security plugin (removed pclzip)
* Improved: Removed some logs from the Javascript console and some PHP notices
* Improved: Verified WordPress 5.6 support
* Added: New auto-log: Add an activity log to a contact on Quote Accepted
* Added: New hook jpcrm_quote_accepted

v4.0.8 - 25 November 2020
-------------------------
* Fixed: Company label setting now respected throughout (e.g. Organisation)
* Fixed: Typeahead contact->company assignment for new contacts now displays properly
* Fixed: You can now have many filters without the view blocking access to them
* Improved: Event notification email templating
* Improved: Event notification email template: Took translations out of template file
* Improved: .org description improvements
* Improved: B2B mode is now a core extension and enabled by default
* Improved: Company settings unified into one settings page
* Improved: Transaction settings unified into one settings page
* Improved: Language labels surrounding company and transaction settings
* Improved: Removed legacy file
* Improved: Better styling around large elements on list views
* Added: You can now use an auto-number sequence as reference in invoices (with prefix and suffix)
* Added: Ability to change the label of 'Reference' for invoices
* Added: Signposting to Company settings page
* Added: DAL functionality for retrieving events and event reminders based on reminder status
* Added: Migration to update event notification email template

v4.0.7 - 12 November 2020
-------------------------
* Fixed: Dompdf exception creating quotes with Preformatted option selected
* Fixed: Style bug when displaying multi-option custom fields on the contact and company view page
* Fixed: Bug where license system modal sometimes reloaded to an incorrect URL
* Fixed: Bug in permissions around verifying back end users
* Fixed: Removed internal PHP notice in Invoices section
* Fixed: Sorting contact list view by company now works properly
* Fixed: Bug where some logs were not showing under 'latest log' column (due to ownership)
* Fixed: Incorrectly referenced second address fields in DB Object model for companies
* Fixed: Total transaction column value on company list view
* Fixed: Several fields were not displaying properly in quote list view
* Fixed: A deep bug in address custom fields where those fields with hyphens in the key were unsortable
* Fixed: A bug where contact last contacted date was incorrectly showing as last updated value
* Improved: Support for checkbox and multi-select custom fields
* Improved: Keywords used for .org repository listing
* Improved: Settings now accessible directly from within module (e.g. Invoices) via learn bar button
* Improved: Corrected company name references
* Improved: License system modal notice language and UI
* Improved: License system update checks
* Improved: You can now search for Transactions, Quotes, Invoices, and Companies by ID
* Improved: Default sort order of DESC now reflects properly in list view sort icon
* Improved: Centralised definitions of "Contact" type logs
* Improved: Better formatting for 'added' date in company list view
* Added: Ability to sort contact list view by: Latest Log
* Added: Ability to sort contact list view by: Latest Contact Log
* Added: Ability to sort contact list view by: Has Quotes, Has Invoices, Has Transactions
* Added: Ability to sort contact list view by: Quote, Invoice, and Transaction count
* Added: Ability to sort company list view by: Name, Status, Email, and other standard fields
* Added: Ability to sort company list view by: Custom fields
* Added: Ability to sort company list view by: Number of contacts at company
* Added: Contact list view column "Has transactions"
* Added: Company list view columns: Has Invoices, Has transactions, Invoice Count, Transaction Count, Transaction Value, Total Value (and made them sortable)
* Added: Ability to sort quote list view by all columns
* Added: Ability to sort invoice list view by all columns
* Added: Ability to sort transaction list view by all columns
* Added: Ability to sort form list view by all columns
* Added: Last Updated column to contacts and companies

v4.0.6 - 29 October 2020
-------------------------
* Fixed: Duplicated tag with international charactes when they are added to a contact
* Fixed: Style issue with Second Address block in the Client Portal
* Fixed: Invoice line items now able to be added to invoices (req invoicing pro v2.7.1)
* Fixed: Textarea custom field doesn't show new lines in view mode
* Fixed: Remove Advanced Search (can search from list view mode since v3.0)
* Fixed: JPCRM can not be installed if the API Connector plugin is already installed.
* Fixed: Style issue mapping the fields in the CSV Importer section

v4.0.5 - 15 October 2020
-------------------------
* Fixed: Deleted segment shows as filter contact list view
* Fixed: On export the contact or the transaction list, in the CSV file the owner ID was blank
* Fixed: Wrong menu link showing task tags in CRM only mode
* Fixed: Forms now track visits and conversions properly
* Improved: Better mapping of older extension names into extension system
* Added: Exporting objects owners now also exports owner username
* Added: Core Extensions List updated with latest extensions

v4.0.4 - 2 October 2020
-------------------------
* Fixed: Issue related to contact and company bulk action deletion
* Fixed: Old brand reference on CSV importer page
* Fixed: New Company placeholder more specific to a real business
* Fixed: Multi-value custom fields in client portal
* Fixed: JPCRM roles for contacts explicity deny WP role capabilities when activated
* Fixed: A user role still referenced the old brand
* Fixed: Create new invoices without selecting a due date was showing up as Invalid Date
* Fixed: Extension documentation links
* Fixed: In the single contact view, the Invoices Total and Quotes Total now show their correct values
* Fixed: Country field properly shows on contacts/companies
* Fixed: Disabled modules show in the sidebar for CRM-only and Full layouts
* Improved: Task scheduler now shows owner avatars
* Improved: Contact List view can now be sorted by Total value as well as Quotes, Invoices, and Transactions total values
* Improved: Form submission logs
* Improved: Addressed stray PHP notices
* Improved: Tweaked extensions detail page
* Improved: Updated error messaging
* Improved: Beginning of internal refactor of the API

v4.0.3 - 17 September 2020
-------------------------
* Fixed: API docs link was incorrect
* Fixed: Form widget now works as expected
* Fixed: Restored user filter for tasks
* Fixed: Custom field doesn't show up the dates previous to 1970
* Improved: Revenue chart on CRM Dash
* Improved: Added gender-neutral contact prefix
* Improved: Settings navigation styling
* Improved: More robust paid extension handling
* Improved: Tweaked list view columns
* Added: Mail activity log type

v4.0.2 - 4 September 2020
-------------------------
* Fixed: Dashboard Revenue Chart was missing some transactions
* Fixed: Customer pre-fill now pre-fills properly.
* Fixed: Date paid and date completed now always filled
* Fixed: Bulk selection not working in WP5.5+
* Fixed: WP5.5+ jQuery function support
* Fixed: Some learn buttons were appearing behind some other elements
* Fixed: Custom dates like Birthday were not allowing pre 1970 date entries
* Fixed: Logo hover icon for fullscreen now turned black from white on white
* Fixed: Author update to be Automattic
* Fixed: Task status labels now format the colour of the label
* Improved: Dashboard Revenue Chart now shows 12 months

v4.0.1 - 20 August 2020
-------------------------
* Fixed: AJAX.php file was being detected as a virus by some AV scanners
* Fixed: Removed unnecessary notification after plugin installation
* Fixed: the Jetpack Forms extension name
* Fixed: Edit profile avatar sometimes not aligning correcetly
* Fixed: Transaction creation prefill now works
* Fixed: View button on transaction (after assigning a contact) now takes you to view, not edit
* Fixed: Clicking a sent email was not loading email correctly
* Fixed: Date Paid field is now in correct format in transactions list view.
* Improved: Made links open in parent tab rather than new tab where it made sense to do so
* Improved: Store the name from a Jetpack contact form submission
* Improved: The Jetpack Forms extension will now be enabled by default when the settings are initialized or reset
* Added: Use the Jetpack contact form toggle setting to determine whether to save the contact
* Added: Ability to hide prefix field

v4.0 - 20 July 2020
-------------------------
* Jetpack CRM branding