CiviCRM 5.28 Release

2020-08-06 05:00
Written by

CiviCRM version 5.28.0 is now out and ready to download. This is a regular monthly release.

Upgrade now for the most stable CiviCRM experience:

Users of the CiviCRM Extended Security Releases (ESR) do not need to upgrade, as there are no ESR-specific bugfixes or security issues at the moment.

Important announcements and reminders:

  • There will be a security release for 5.28.x on 2020-08-19 (usually towards the end of day). There will also be an ESR 5.27.x release at the same time. Please see security for more information.
  • As of CiviCRM 5.28, the minimum MySQL supported version is 5.6. MySQL 5.7 and MariaDB up to 10.4 are well tested. MySQL 8 works well too and has test coverage (related issue). More information in the official documentation about system requirements. CiviCRM 5.34 will require a minimum of MySQL 5.7 or MariaDB 10.0.2.
  • As of CiviCRM 5.25, the minimum supported version is PHP 7.1. The recommended PHP version is PHP 7.3.
  • WordPress/WooCommerce compatiblity: During testing of 5.27.beta, there were some reports that the web-based upgrader had a problematic interaction with a common plugin (woocommerce_civicrm). The 5.27.0 release includes some mitigations. However, if you are not able to navigate to the web-based upgrader, please visit on and
  • WordPress users: Support for the WP REST API has been added in CiviCRM 5.25. If you had installed the CiviCRM WP REST API Wrapper Plugin, please deactivate the plugin before you update.

What's new in CiviCRM 5.28

This version changes the database schema, has changes to the API, as well as the usual bugfixes and minor feature improvements.

  • Contributions: Add payment processor to details on list of recurring contributions (PR#17179)
  • Payment Processors supporting self-service updates can now tweak the label displayed to users, for more appropriate messaging (PR#17687)
  • Membership Status Admin: Improves the Membership Status administration page by adding columns for the start/end adjustment, making it easier to see if the statuses correctly follow each other (dev/core#1809)
  • Activity Search performance improvements (PR#17250)
  • Hooks: new customPre hook (dev/core#1716)
  • Hooks: postProcess hook improvement for Price Fields (PR#17639)
  • Implements the brick/money library to handle currency amounts formatting (dev/translation#48)
  • Ship Flexmailer extension with civicrm-core. Flexmailer aims to replace large parts of old code in the Mailing code; currently it is only used by default by Mosaico, but can be enabled to also replace "traditional" emails. A future update will enable this by default on new installs. (PR#17669)
  • Working torwards utf8mb4 support, CiviCRM will now connect using utf8mb4, if available (PR#17716)
  • New Smarty error event, helps with debugging Smarty templates (PR#16918)
  • Allow HEAD requests to generate a form key, reduces error logs from crawlers and bots (PR#17321)
  • Settings metadata: Allow adding datepicker to metadata based setting pages (PR#16610)
  • Fixes issues around broken Contact record images (dev/wordpress#62)
  • WordPress: A message will appear after an upgrade to 5.28.0 or later specifying the calculated and expected file upload locations. You can prepare to CiviCRM 5.29 by reading the version-specific upgrade tasks for 5.29. (PR#18011)
  • Multilingual: Ensures that the list of languages civicrm_domain.locales is the same for all domains in a multi-domain set up (dev/core#1852)
  • Export: fixes a regression where exporting file fields would cause a fatal error (dev/core#1787)
  • Relative date filter - End of yesterday not working properly (dev/core#1798)
  • Fix installing on PHP7.3 Ubuntu 20.04 and MariaDB 10.3 (dev/core#1860)
  • APIv3: Payment.create should not set contribution date to today (PR#17688)
  • Drupal8: Fix Error: Class 'CRM_Upgrade_Incremental_General' not found (dev/drupal#131)
  • Joomla: Ensure that when normal routing trackable urls and opens in Joomla go to the frontend not administrator site (PR#17760)
  • WordPress: prevent session from starting during WordPress pseudo cron procedures (dev/core#1889)

This is only a short overview. You can read the full release notes here (it includes all Gitlab and Github references, with much more information). Big thanks to Andrew Hunt and Alice Frumin from AGH Strategies for putting up together release notes.

This release was developed by the following code authors:

AGH Strategies - Alice Frumin, Andrew Hunt; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Dietermartens; ES-Progress - Sandor Semsey; Flinders University of South Australia - Tom Anderson; Fuzion - Jitendra Purohit; JMA Consulting - Seamus Lee; Lighthouse Consulting and Design- Brian Shaughnessy; Marcin Lewandowski; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton

Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:

a-n The Artists Information Company - William Mortada; Agileware - Francis Whittle, Justin Freeman; Andrew Thompson; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Luke Stewart, Peter Davis; JMA Consulting - Joe Murray; MJCO - Mikey O'Toole; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Third Sector Design: Eriol Fox; Timbsoft Technologies - Tunbola Ogunwande

Thanks to everyone for making this release happen!

Support CiviCRM

We are committed to keeping CiviCRM free and open, forever. We depend on your support to help make that happen.

Filed under