5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | **Require attention to configuration options?** | **yes** |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Warn users who lack PHP-Intl extension (Work Towards
29 [dev/translation#48](https://lab.civicrm.org/dev/translation/-/issues/48):
30 [17668](https://github.com/civicrm/civicrm-core/pull/17668), [17728](https://github.com/civicrm/civicrm-core/pull/17728))**
32 A system check warning will now appear on sites that lack the PHP
33 Internationalization extension. This is in preparation for changes that will
34 appear in CiviCRM 5.28 and require the extension.
36 - **Advanced Search - Allow searching by first/last name; pass values from
37 quicksearch ([dev/core#1722](https://lab.civicrm.org/dev/core/-/issues/1722):
38 [17118](https://github.com/civicrm/civicrm-core/pull/17118))**
40 This makes separate First Name and Last Name fields available on the Advanced
41 Search form, and it ensures quick search filters are passed to the appropriate
44 - **Add more search options
45 ([17372](https://github.com/civicrm/civicrm-core/pull/17372))**
47 Improves the search form for individuals in contact reference fields by adding
48 fields for Employer Name, First Name, Last Name, and Nick Name.
50 - **End of life planning for MySQL server 5.0 - 5.6
51 ([dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681):
52 [17518](https://github.com/civicrm/civicrm-core/pull/17518) and
53 [17496](https://github.com/civicrm/civicrm-core/pull/17496))**
55 Sites running MySQL 5.5 and below will have a pre-upgrade message and a system
56 check warning to say that CiviCRM 5.28 will require MySQL 5.6 or MariaDB 10.1.
58 - **APIv4 - Improve pseudoconstant suffix support
59 ([17368](https://github.com/civicrm/civicrm-core/pull/17368) and
60 [17482](https://github.com/civicrm/civicrm-core/pull/17482))**
62 APIv4 allows pseudoconstant fields to be specified with the pseudoconstant
63 name followed by a suffix, such as `activity_type_id:label`. This now works
64 for retrieval and sort.
66 - **APIv4 - Support custom entity joins
67 ([17394](https://github.com/civicrm/civicrm-core/pull/17394))**
69 Improves APIv4 so that it supports implicit and explicit joins onto custom
72 - **Make reCAPTCHA settings clearer
73 ([17426](https://github.com/civicrm/civicrm-core/pull/17426))**
75 The help text for reCAPTCHA settings now specifies the type of reCAPTCHA
78 - **Configurable logfile size and hashing
79 ([17192](https://github.com/civicrm/civicrm-core/pull/17192))**
81 Allows a system administrator to give logs a predictable name, allowing them
82 to be more easily ingested into other tools, and be handled by external log
85 - **Allow for installation on Symfony 4.4
86 ([17380](https://github.com/civicrm/civicrm-core/pull/17380))**
88 Makes it so CiviCRM plays nicely with Symfony 4.4.
90 - **Add domain tokens to the Message Template admin interface
91 ([17388](https://github.com/civicrm/civicrm-core/pull/17388))**
93 This adds the domain tokens (the domain organization name, address, email, and
94 phone) to the available listed tokens for editing message templates.
96 - **Hide icon elements from screen readers and add handling for
97 screen-reader-only text
98 ([17318](https://github.com/civicrm/civicrm-core/pull/17318),
99 [17293](https://github.com/civicrm/civicrm-core/pull/17293),
100 [17294](https://github.com/civicrm/civicrm-core/pull/17294), and
101 [17310](https://github.com/civicrm/civicrm-core/pull/17310))**
103 CiviCRM uses empty `<i>` elements to provide most icons. Screen readers,
104 which won't render the visual icon anyway, will either skip over an empty
105 element or announce it in a way that would be confusing. This makes it
106 explicit that screen readers and other ARIA devices should skip them.
108 Meanwhile, if the icon is the only way a piece of information is displayed, a
109 screen reader user won't get that information. This adds a `sr-only` class
110 that makes the element invisible on screen without being ignored by a screen
113 Screen reader text is added for the field option wrench icons, relationship
114 permissions, and membership auto-renew status.
116 - **Add icon helper functions and remove most uses of check.gif
117 ([17279](https://github.com/civicrm/civicrm-core/pull/17279) and
118 [17289](https://github.com/civicrm/civicrm-core/pull/17289))**
120 This adds helper functions in PHP and Smarty to render consistent icons with a
121 minimum of code. It also replaces most instances of the green checkmark image
122 with a checkmark icon.
124 - **Separate icon markup from labels and add JS icon helper
125 ([17319](https://github.com/civicrm/civicrm-core/pull/17319) and
126 [17285](https://github.com/civicrm/civicrm-core/pull/17285))**
128 These changes improve `CRM_Core_Action::formLink()`, `hook_civicrm_links`, and
129 certain listing pages so that HTML icon markup is added at the point of
130 display rather than during the processing of values.
132 It also adds a helper function in Javascript similar to those in PHP and
133 Smarty to render icons.
135 - **crmButton: Support icon=0 for no icon
136 ([17303](https://github.com/civicrm/civicrm-core/pull/17303))**
138 Makes it possible to create a button without an icon using {crmButton}.
140 - **Replace stop-icon.png with fa-ban over a relevant icon for privacy
141 ([17283](https://github.com/civicrm/civicrm-core/pull/17283) and
142 [17307](https://github.com/civicrm/civicrm-core/pull/17307))**
144 The communication preference icons are standardized and more specific than the
147 - **Replace image icons with Font Awesome icons
148 ([17296]([17280](https://github.com/civicrm/civicrm-core/pull/17280),
149 [17281](https://github.com/civicrm/civicrm-core/pull/17281),
150 [17282](https://github.com/civicrm/civicrm-core/pull/17282),
151 [17295](https://github.com/civicrm/civicrm-core/pull/17295),
152 https://github.com/civicrm/civicrm-core/pull/17296),
153 [17297](https://github.com/civicrm/civicrm-core/pull/17297))**
155 Nearly all image icons have been replaced with the corresponding icons from
156 the Font Awesome library.
158 - **Simplify admin console and remove superfluous icons
159 ([17284](https://github.com/civicrm/civicrm-core/pull/17284))**
161 The Administration console has been redesigned to have a simpler layout,
162 display more information, dynamically include all enabled components, display
163 responsively on small screens, and remove a slew of 15-year-old image icons.
165 - **Dedupe performance - hard-remove financial_item from list of dymnamic refs
167 ([17567](https://github.com/civicrm/civicrm-core/pull/17567))**
169 This improves performance when deduping by no longer querying the financial
172 - **Trigger fatalErrorHandler for PEAR errors and for logs with severity ERROR
173 or higher ([17277](https://github.com/civicrm/civicrm-core/pull/17277))**
175 This allows extensions that implement `$config->fatalErrorHandler` to react to
176 a wider variety of errors that CiviCRM may generate.
180 - **Wrap separators in price field in spans with classes
181 ([dev/user-interface#18](https://lab.civicrm.org/dev/user-interface/-/issues/18):
182 [17078](https://github.com/civicrm/civicrm-core/pull/17078))**
184 Colons separating pre- and post-field help text from price fields are now
185 wrapped in `<span>` elements.
187 - **Allow to search on contribution ID
188 ([dev/core#1580](https://lab.civicrm.org/dev/core/-/issues/1580):
189 [16484](https://github.com/civicrm/civicrm-core/pull/16484))**
191 This improves the "Find Contributions" search form by adding a field to search
194 - **APIv4 - Add "Price"-related entities
195 ([17363](https://github.com/civicrm/civicrm-core/pull/17363))**
197 Priceset, PriceField, and PriceOption entities are added to APIv4.
199 - **APIv4 - Add ContributionRecur entity
200 ([17299](https://github.com/civicrm/civicrm-core/pull/17299))**
202 Adds Contribution Recur to APIv4.
206 - **Allow click-through and open tracking to be enabled/disabled by default
207 ([17291](https://github.com/civicrm/civicrm-core/pull/17291))**
209 Adds a setting to CiviMail which allows for setting the click-through and open
212 - **Extend content array of hook_civicrm_alterMailContent
213 ([dev/core#1620](https://lab.civicrm.org/dev/core/-/issues/1620):
214 [16629](https://github.com/civicrm/civicrm-core/pull/16629))**
216 Adds campaign_id to template for `alterMailContent` hook.
218 - **Migrate CiviMail "extern" scripts to conventional routes
219 ([17312](https://github.com/civicrm/civicrm-core/pull/17312))**
221 Updates CiviMail's default behavior to replace `extern/open.php` and
222 `extern/url.php` with `civicrm/mailing/open` and `civicrm/mailing/url`.
224 - **Make `is_archived` work as a url-search parameter
225 ([17328](https://github.com/civicrm/civicrm-core/pull/17328))**
227 The Find Mailings URL can now have `is_archived` as a parameter to only find
232 - **Add MembershipType to Api4
233 ([17448](https://github.com/civicrm/civicrm-core/pull/17448))**
235 Adds a Membership Type entity to APIv4.
237 ### Drupal Integration
239 - **CiviCRM menu toggle "adjust menu position" customisable
240 ([dev/core#1757](https://lab.civicrm.org/dev/core/-/issues/1757):
241 [17362](https://github.com/civicrm/civicrm-core/pull/17362))**
243 This hides the "adjust menu position" icon in the CiviCRM Menu for non admin
244 users to avoid confusion for users who do not have access to the Drupal admin
247 - **Provide "Calendar" module with an end-date when a duration is provided
248 ([601](https://github.com/civicrm/civicrm-drupal/pull/601))**
250 Improves display of activities in calendar views.
252 ## <a name="bugs"></a>Bugs resolved
256 - **CRM_Utils_Time::setTime and getTime() and their use in unit tests
257 ([dev/core#1781](https://lab.civicrm.org/dev/core/-/issues/1781):
258 [17414](https://github.com/civicrm/civicrm-core/pull/17414))**
260 This allows the CRM_Utils_Time functions used in unit tests to use TIME_FUNC
261 to better isolate timing bugs.
263 - **Confusing popups when importing activities
264 ([dev/user-interface#17](https://lab.civicrm.org/dev/user-interface/-/issues/17):
265 [17067](https://github.com/civicrm/civicrm-core/pull/17067))**
267 This fixes a bug where the confirmation popup would appear when hitting the
268 back/cancel buttons, not just the import button, on most import forms.
270 - **Installing CiviCRM in another language, with civicrm-setup
271 ([dev/translation#39](https://lab.civicrm.org/dev/translation/-/issues/39):
272 [17244](https://github.com/civicrm/civicrm-core/pull/17244))**
274 Fixes a bug when installing CiviCRM in another language with civicrm-setup.
276 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
277 ([dev/core#560](https://lab.civicrm.org/dev/core/-/issues/560):
278 [17421](https://github.com/civicrm/civicrm-core/pull/17421),
279 [17343](https://github.com/civicrm/civicrm-core/pull/17343),
280 [17336](https://github.com/civicrm/civicrm-core/pull/17336) and
281 [17341](https://github.com/civicrm/civicrm-core/pull/17341))**
283 - **CiviCRM 5.13.4 - smart groups with contact subtypes: subtype is not in
284 Contact Type field on edit criteria mode
285 ([dev/core#991](https://lab.civicrm.org/dev/core/-/issues/991):
286 [16541](https://github.com/civicrm/civicrm-core/pull/16541))**
288 Fixes contact subtypes not being carried over when editing a smart group
289 created in Advanced Search.
291 - **Unable to import relationship
292 ([dev/core#1731](https://lab.civicrm.org/dev/core/-/issues/1731):
293 [17163](https://github.com/civicrm/civicrm-core/pull/17163))**
295 Ensures that importing relationships works as expected when the same field is
296 to be imported for the main imported contact and a related contact.
298 - **Apostrophes in richtext fields don't get exported properly in CiviReport
299 ([dev/core#1743](https://lab.civicrm.org/dev/core/-/issues/1743):
300 [17260](https://github.com/civicrm/civicrm-core/pull/17260))**
302 - **Statically added members of a smart group are not found
303 ([dev/core#1745](https://lab.civicrm.org/dev/core/-/issues/1745):
304 [17419](https://github.com/civicrm/civicrm-core/pull/17419))**
306 - **Deleting an activity with attachments doesn't delete the file or entries in
307 civicrm_file/civicrm_entity_file
308 ([dev/core#1753](https://lab.civicrm.org/dev/core/-/issues/1753):
309 [17298](https://github.com/civicrm/civicrm-core/pull/17298))**
311 - **Deselected checkbox settings are not saved
312 ([dev/core#1794](https://lab.civicrm.org/dev/core/-/issues/1794):
313 [17493](https://github.com/civicrm/civicrm-core/pull/17493))**
315 Ensures deselected values are saved on custom field settings forms.
317 - **Added activity types don't appear in the type dropdown on New Activity
318 ([dev/core#1822](https://lab.civicrm.org/dev/core/-/issues/1822):
319 [17625](https://github.com/civicrm/civicrm-core/pull/17625))**
321 - **API doesn't allow passing option values by label
322 ([dev/core#1816](https://lab.civicrm.org/dev/core/-/issues/1816):
323 [17628](https://github.com/civicrm/civicrm-core/pull/17628))**
325 Updates APIv4 so that it matches based on label if name is not found.
327 - **APIv4 - Improve custom field spec gathering
328 ([17471](https://github.com/civicrm/civicrm-core/pull/17471))**
330 - **APIv4 - Remove implicit multi joins & add explicit joins
331 ([17332](https://github.com/civicrm/civicrm-core/pull/17332))**
333 - **APIv4 - Fix entity name on custom groups in schemaMapper
334 ([17425](https://github.com/civicrm/civicrm-core/pull/17425))**
336 - **APIv4 - fix returning custom field values with API4
337 ([17399](https://github.com/civicrm/civicrm-core/pull/17399))**
339 - **Attempting to access Multi-Record Custom Field import results
341 ([dev/core#1841](https://lab.civicrm.org/dev/core/-/issues/1841):
342 [17713](https://github.com/civicrm/civicrm-core/pull/17713))**
344 - **Fix issue with building smart groups when $contactQueries is empty
345 ([17622](https://github.com/civicrm/civicrm-core/pull/17622))**
347 If a clause of a contact query used to build a smart group is empty, it would
348 result in a database error.
350 - **Replace deprecated `money_format()` fn to support PHP 7.4
351 (Work Towards [dev/core#1494](https://lab.civicrm.org/dev/core/-/issues/1494):
352 [17577](https://github.com/civicrm/civicrm-core/pull/17577), [17730](https://github.com/civicrm/civicrm-core/pull/17730))**
354 Adds a deprecation notice and a status check for a money value format
355 configuration other than the default.
357 - **QueueTest - Be more forgiving about slow execution
358 ([17532](https://github.com/civicrm/civicrm-core/pull/17532))**
360 - **CommunityMessages - Define more consistent behavior in the face of slow
361 execution ([17529](https://github.com/civicrm/civicrm-core/pull/17529))**
363 This helps avoid test failures on broadcast messages when the system is
366 - **Scheduled Reminders - Set boolean fields to false if not set.
367 ([17494](https://github.com/civicrm/civicrm-core/pull/17494))**
369 - **Allow bidirectional assignment of relationships from search results
370 ([17413](https://github.com/civicrm/civicrm-core/pull/17413))**
372 Previously relationships could only be created from search results where the
373 contacts would be valid in the "A" side of the relationship type.
375 - **Navigation menu - Fix translation of new-subtype entries
376 ([17451](https://github.com/civicrm/civicrm-core/pull/17451))**
378 The "New" in menu items for creating a new contact of a subtype was not
381 - **utf8mb4 - If strict mode enabled query will fail if KEY_BLOCK_SIZE is not 0
382 ([17253](https://github.com/civicrm/civicrm-core/pull/17253))**
384 - **Update DAO and l10n schema file
385 ([17395](https://github.com/civicrm/civicrm-core/pull/17395))**
387 Price option name and value are now required in the database.
389 - **Fix adding languages in multilingual
390 ([17228](https://github.com/civicrm/civicrm-core/pull/17228))**
392 This resolves a database error when adding or removing a language on a
395 - **Don't exclude deleted contacts from ACL cache when user has permission
396 ([17379](https://github.com/civicrm/civicrm-core/pull/17379))**
398 - **SMTP page appears broken when language is French (JS issue)
399 ([dev/core#1760](https://lab.civicrm.org/dev/core/-/issues/1760):
400 [17317](https://github.com/civicrm/civicrm-core/pull/17317))**
402 Javascript strings that appear in Smarty are now escaped more thoroughly to
403 avoid markup problems.
405 - **Add serialize column to civicrm_custom_field, remove "Multi-Select" html
406 type ([16992](https://github.com/civicrm/civicrm-core/pull/16992), [17722](https://github.com/civicrm/civicrm-core/pull/17722))**
408 Work towards making custom select and multi-select fields more similar to
409 core select/multi-select fields.
411 - **Respect file fields that have been configured as view only in profiles
412 ([17079](https://github.com/civicrm/civicrm-core/pull/17079))**
414 - **Tag create - Respect created_date and created_id params
415 ([17257](https://github.com/civicrm/civicrm-core/pull/17257))**
417 - **Public status messages should show correct class/icon like error
418 ([17376](https://github.com/civicrm/civicrm-core/pull/17376))**
420 - **Decorative chevrons should be icons not angle quotes
421 ([17245](https://github.com/civicrm/civicrm-core/pull/17245))**
423 - **A/B Test - Icon should be Erlenmeyer flask, not bar chart
424 ([17316](https://github.com/civicrm/civicrm-core/pull/17316))**
426 - **Proceeding to confirmation page should be a "next" button not a check
427 ([17246](https://github.com/civicrm/civicrm-core/pull/17246))**
431 - **Case Activity: Follow-up activity assignee does not receive email
432 ([dev/core#1721](https://lab.civicrm.org/dev/core/-/issues/1721):
433 [17116](https://github.com/civicrm/civicrm-core/pull/17116))**
435 Ensures when a follow up case activity is created the assignee is sent an
440 - **Custom fields disappear on page refresh
441 ([dev/core#1728](https://lab.civicrm.org/dev/core/-/issues/1728):
442 [17301](https://github.com/civicrm/civicrm-core/pull/17301))**
444 This ensures that financial type specific custom fields are displayed on the
445 backend contribution form when it is refreshed.
447 - **Fix pricefield pseudoconstant.
448 ([17364](https://github.com/civicrm/civicrm-core/pull/17364))**
450 Fixes `PriceField` entity to build options for the `price_set_id`
451 pseudoconstant field.
453 - **Nuance cancel options for processors
454 ([17430](https://github.com/civicrm/civicrm-core/pull/17430))**
456 This allows payment processors to specify the way they allow cancellation of
457 recurring contributions.
459 - **[regression] Contribution amount choices don't appear for anonymous users
460 ([dev/core#1823](https://lab.civicrm.org/dev/core/-/issues/1823):
461 [17619](https://github.com/civicrm/civicrm-core/pull/17619))**
463 - **Import Contribution of custom fields only accepts "Numeric Value" rather
464 than "Label" ([dev/core#1806](https://lab.civicrm.org/dev/core/-/issues/1806):
465 [17632](https://github.com/civicrm/civicrm-core/pull/17632))**
467 - **"Financial Type" listed twice in contribution export
468 ([dev/core#1650](https://lab.civicrm.org/dev/core/-/issues/1650):
469 [17147](https://github.com/civicrm/civicrm-core/pull/17147))**
471 - **Record Payment does not update check_number & trxn id on main contribution.
472 ([dev/core#1758](https://lab.civicrm.org/dev/core/-/issues/1758):
473 [17314](https://github.com/civicrm/civicrm-core/pull/17314))**
475 - **civicrm_financial_trxn.fee_amount reversals mixed up
476 ([dev/core#1775](https://lab.civicrm.org/dev/core/-/issues/1775):
477 [17386](https://github.com/civicrm/civicrm-core/pull/17386))**
479 - **jquery validation type error on the credit card field
480 ([dev/core#1797](https://lab.civicrm.org/dev/core/-/issues/1797):
481 [17497](https://github.com/civicrm/civicrm-core/pull/17497))**
483 Fixes a jQuery error when submitting a front end contribution form with a
486 - **Fix payment instrument bug by using correct payment instrument
487 ([17607](https://github.com/civicrm/civicrm-core/pull/17607))**
489 When a backend payment form records a payment it now will use a
490 processor-specific default payment instrument rather than the site-wide
491 default if it is set.
493 - **Payment PropertyBag - Fix setAmount
494 ([17505](https://github.com/civicrm/civicrm-core/pull/17505))**
496 Ensures "Amount" is set correctly on PropertyBag.
498 - **Fixed hide show of start date
499 ([17446](https://github.com/civicrm/civicrm-core/pull/17446))**
501 Fix hide/show of receive date for recurring contributions.
503 - **Don't allow Contribution.repeattransaction to be used without a recurring
504 contribution ([17447](https://github.com/civicrm/civicrm-core/pull/17447))**
506 - **Add actual field name for processor_id to getSubscriptionDetails
507 ([17466](https://github.com/civicrm/civicrm-core/pull/17466))**
509 - **Make 'Pending' the default status for Contribution.repeattransaction
510 ([17432](https://github.com/civicrm/civicrm-core/pull/17432))**
512 - **Fetch line items from correct contribution when repeating a contribution
513 ([17220](https://github.com/civicrm/civicrm-core/pull/17220))**
515 - **Support order_reference param in API3 Payment.create
516 ([17278](https://github.com/civicrm/civicrm-core/pull/17278))**
518 - **E_WARNINGS when viewing list of pledge payments
519 ([dev/core#1791](https://lab.civicrm.org/dev/core/-/issues/1791):
520 [17434](https://github.com/civicrm/civicrm-core/pull/17434))**
522 - **Add propertyBag handling for getEmail when incoming uses email-5
523 ([17267](https://github.com/civicrm/civicrm-core/pull/17267))**
525 Payment processors can now retrieve billing email using the `propertyBag`
530 - **Don't log subscription_history
531 ([dev/core#1762](https://lab.civicrm.org/dev/core/-/issues/1762):
532 [17323](https://github.com/civicrm/civicrm-core/pull/17323))**
534 The `civicrm_subscription_history` table is effectively a log of contacts
535 being added to and removed from groups. Rows do not change value; each change
536 in group subscription results in a new row. Consequently, there is no reason
537 to attach detailed logging to this table.
539 - **Unsubscribe generates 500 server error responses, logs say "missing
540 parameters" ([dev/core#1773](https://lab.civicrm.org/dev/core/-/issues/1773):
541 [17402](https://github.com/civicrm/civicrm-core/pull/17402))**
543 Ensures the unsubscribe form can only be submitted once.
547 - **Recurring contribution fails with "ipn_payment_callback_exception", for
548 membership auto-renewal via PayPalPro.
549 ([dev/core#1608](https://lab.civicrm.org/dev/core/-/issues/1608):
550 [17355](https://github.com/civicrm/civicrm-core/pull/17355))**
552 - **Don't hide disabled memberships from the contact membership tab
553 ([dev/membership#24](https://lab.civicrm.org/dev/membership/-/issues/24):
554 [17143](https://github.com/civicrm/civicrm-core/pull/17143) and
555 [17435](https://github.com/civicrm/civicrm-core/pull/17435))**
557 This resolves a problem where memberships of disabled membership types would
558 not appear on the membership tab but would throw a duplicate membership
559 warning when creating a new membership with the same membership organization.
560 This also adds a unit test to lock in the correct behavior.
562 - **Update MembershipType.name to be a required field
563 ([17463](https://github.com/civicrm/civicrm-core/pull/17463))**
565 - **Fix PHP notice when is_override is not set
566 ([17273](https://github.com/civicrm/civicrm-core/pull/17273))**
568 ### Joomla Integration
570 - **Upgrade from 5.26.2 to 5.27 RC Fails
571 ([dev/joomla/#28](https://lab.civicrm.org/dev/joomla/-/issues/28):
572 [17710](https://github.com/civicrm/civicrm-core/pull/17710))**
574 ### WordPress Integration
576 - **Styling issues after upgrade to WordPress 5.3
577 ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/-/issues/46):
578 [16967](https://github.com/civicrm/civicrm-core/pull/16967))**
580 - **WP - Change definitions of `cms.root`, `civicrm.root`
581 ([17360](https://github.com/civicrm/civicrm-core/pull/17360))**
583 The base logic for computing path/URL defaults is in Civi/Core/Paths.php.
585 For CiviCRM on WordPress, certain variables (which are easier to compute via
586 WordPress APIs) are overridden in `CRM_Utils_System_WordPress`.
588 On WordPress, the path/URL logic for has been split: there is one code path
589 for normal CiviCRM pages which is based on WordPress APIs, and there is
590 another for older, standalone scripts in the `extern` folder which is based on
591 the same logic as before.
593 - **Declare minimum WP and PHP versions required for installation
594 ([201](https://github.com/civicrm/civicrm-wordpress/pull/201))**
596 - **wp-rest - Adjust extern URL. Be more defensive about 'query' part.
597 ([192](https://github.com/civicrm/civicrm-wordpress/pull/192))**
599 This resolves issues with tracking URLs via the `wp-rest` endpoint that are
600 then modified with `hook_civicrm_alterExternUrl`.
602 ## <a name="misc"></a>Miscellany
604 - **Handle less common dynamic reference cases
605 ([17653](https://github.com/civicrm/civicrm-core/pull/17653))**
607 - **Use apiv4, cache infra for basicTypes
608 ([17387](https://github.com/civicrm/civicrm-core/pull/17387))**
610 - **Cleanup PriceFieldValue BAO
611 ([17306](https://github.com/civicrm/civicrm-core/pull/17306))**
613 - **Clarify definition of amount field in civicrm_contribution_recur table.
614 ([17311](https://github.com/civicrm/civicrm-core/pull/17311))**
616 - **Call completeOrder directly from contribute status update form
617 ([17347](https://github.com/civicrm/civicrm-core/pull/17347))**
619 - **Switch docblock code to use markdown syntax.
620 ([17304](https://github.com/civicrm/civicrm-core/pull/17304))**
622 - **Preliminary cleanup on form
623 ([17345](https://github.com/civicrm/civicrm-core/pull/17345))**
625 - **Add getBAOClassName utiltiy function
626 ([17268](https://github.com/civicrm/civicrm-core/pull/17268))**
628 - **CRM/Logging - Remove obsolete cache static clear in test
629 ([17269](https://github.com/civicrm/civicrm-core/pull/17269))**
631 - **Remove incorrect retrievals of tax-term setting
632 ([17183](https://github.com/civicrm/civicrm-core/pull/17183))**
634 - **CiviEvent Dashboard and Manage Events: clean up disused url template vars
635 ([17378](https://github.com/civicrm/civicrm-core/pull/17378))**
637 - **Set default using spec for activity_date_time
638 ([17390](https://github.com/civicrm/civicrm-core/pull/17390))**
640 - **Convert remaining Authorize.net test to use guzzle
641 ([17473](https://github.com/civicrm/civicrm-core/pull/17473))**
643 - **Various BAO create/add cleanups to use writeRecord()
644 ([17308](https://github.com/civicrm/civicrm-core/pull/17308))**
646 - **Remove instantiation of transaction from payment express ipn class
647 ([17348](https://github.com/civicrm/civicrm-core/pull/17348))**
650 ([17381](https://github.com/civicrm/civicrm-core/pull/17381))**
652 - **Remove validation bypass
653 ([17384](https://github.com/civicrm/civicrm-core/pull/17384))**
655 - **Simplify recurring contribution template inheritance
656 ([17178](https://github.com/civicrm/civicrm-core/pull/17178))**
658 - **Remove $_REQUEST passed into CRM_Utils_Request::retrieve NFC
659 ([17377](https://github.com/civicrm/civicrm-core/pull/17377))**
661 - **Use now instead of date for activity API3 spec
662 ([17411](https://github.com/civicrm/civicrm-core/pull/17411))**
664 - **Typo Fix ([17409](https://github.com/civicrm/civicrm-core/pull/17409))**
666 - **Fix logic for job log cleanup and make SQL safer
667 ([17203](https://github.com/civicrm/civicrm-core/pull/17203))**
669 - **Remove always-true if block.
670 ([17415](https://github.com/civicrm/civicrm-core/pull/17415))**
672 - **Remove No longer required HTTP_Request Package
673 ([293](https://github.com/civicrm/civicrm-packages/pull/293))**
675 - **Remove code that still seems unnecessary.
676 ([17342](https://github.com/civicrm/civicrm-core/pull/17342))**
678 - **Undo variable variable.
679 ([17371](https://github.com/civicrm/civicrm-core/pull/17371))**
681 - **Use non-deprecated method
682 ([17370](https://github.com/civicrm/civicrm-core/pull/17370))**
684 - **Remove last reference to Payment->_processorName in core & remove from
685 processors ([17474](https://github.com/civicrm/civicrm-core/pull/17474))**
687 - **Remove unused singleton from core payment processors
688 ([17468](https://github.com/civicrm/civicrm-core/pull/17468))**
690 - **Test fixes to support apiv4 add of MembershipType
691 ([17488](https://github.com/civicrm/civicrm-core/pull/17488))**
693 - **Merge code - remove UPDATE IGNORE+Delete & just use reliable update
694 ([17072](https://github.com/civicrm/civicrm-core/pull/17072))**
696 - **Remove unneeded parameters in {ts} on membership form
697 ([17326](https://github.com/civicrm/civicrm-core/pull/17326))**
699 - **Remove unused 'reset' param, other NFC tidy up:
700 ([17392](https://github.com/civicrm/civicrm-core/pull/17392))**
702 - **Fix setLanguage docblock, other nfc changes
703 ([17356](https://github.com/civicrm/civicrm-core/pull/17356))**
705 - **[REF] Simplify contributionIDs code
706 ([17441](https://github.com/civicrm/civicrm-core/pull/17441))**
708 - **[REF] Extract getAttachments
709 ([17405](https://github.com/civicrm/civicrm-core/pull/17405))**
711 - **[REF] Preliminary cleanup for #17339
712 ([17417](https://github.com/civicrm/civicrm-core/pull/17417))**
714 - **[REF] Remove unreachable block.
715 ([17407](https://github.com/civicrm/civicrm-core/pull/17407))**
717 - **[REF] Pass an array of correct params to the function to create a recurring
718 contribution. ([17398](https://github.com/civicrm/civicrm-core/pull/17398))**
720 - **[REF] Code simplification & unit test on suppressed emails in task
721 ([17393](https://github.com/civicrm/civicrm-core/pull/17393))**
723 - **[REF] duplicate function.
724 ([17400](https://github.com/civicrm/civicrm-core/pull/17400))**
726 - **[REF] Pass params not-by-reference
727 ([17406](https://github.com/civicrm/civicrm-core/pull/17406))**
729 - **[REF] Refactor to switch from pear HTTP Request class to using Guzzle
730 ([17420](https://github.com/civicrm/civicrm-core/pull/17420))**
732 - **[REF] [Reports] Ensure that all contribution pages including disabled ones
733 are return… ([17357](https://github.com/civicrm/civicrm-core/pull/17357))**
735 - **[REF] Cleanup and extract string functions specific to entity names.
736 ([17330](https://github.com/civicrm/civicrm-core/pull/17330))**
738 - **[REF] Stop passing by reference.
739 ([17349](https://github.com/civicrm/civicrm-core/pull/17349))**
741 - **[REF] Simplify subject code.
742 ([17436](https://github.com/civicrm/civicrm-core/pull/17436))**
744 - **[REF] Implement required fields database changes that have occured du…
745 ([17465](https://github.com/civicrm/civicrm-core/pull/17465), [17725](https://github.com/civicrm/civicrm-core/pull/17725))**
747 - **[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drup…
748 ([17460](https://github.com/civicrm/civicrm-core/pull/17460))**
750 - **[REF] Convert one of the http calls in Authorize.net class to use guzzle.
751 ([17449](https://github.com/civicrm/civicrm-core/pull/17449))**
753 - **[REF] Minor simplification
754 ([17443](https://github.com/civicrm/civicrm-core/pull/17443))**
756 - **[REF] Grant BAO cleanup
757 ([17264](https://github.com/civicrm/civicrm-core/pull/17264))**
759 - **[REF] CRM_Core_DAO_AllCoreTables::getBriefName to accept BAO name
760 ([17331](https://github.com/civicrm/civicrm-core/pull/17331))**
762 - **[REF] Missing semicolon on smtp settings page, code cleanup in file-on-case,
763 add test ([17335](https://github.com/civicrm/civicrm-core/pull/17335))**
765 - **[REF] Extract createFollowUpActivities
766 ([17481](https://github.com/civicrm/civicrm-core/pull/17481))**
768 - **[REF] Switch to an api call to get the contact details.
769 ([17442](https://github.com/civicrm/civicrm-core/pull/17442))**
771 - **[REF] Minor code simplification
772 ([17373](https://github.com/civicrm/civicrm-core/pull/17373))**
774 - **[REF] Call completeOrder directly from event status update form
775 ([17346](https://github.com/civicrm/civicrm-core/pull/17346))**
777 - **[REF] Remove never-passed params from function signature
778 ([17464](https://github.com/civicrm/civicrm-core/pull/17464))**
780 - **[REF] Fix serialized membership field handling in RelationshipTest
781 ([17469](https://github.com/civicrm/civicrm-core/pull/17469))**
783 - **[REF] Minor tidy up
784 ([17302](https://github.com/civicrm/civicrm-core/pull/17302))**
786 - **[REF] Remove always NULL param modified_id
787 ([17489](https://github.com/civicrm/civicrm-core/pull/17489))**
789 - **[REF] Add contribution_id field to search using metadata instead of h…
790 ([17286](https://github.com/civicrm/civicrm-core/pull/17286))**
792 - **[REF] Fix unit test failures on MySQL 5.6 due to Custom Field table being
793 created without Dynamic Row Format
794 ([17586](https://github.com/civicrm/civicrm-core/pull/17586))**
796 - **[REF] Start to convert Dummy processor to use PropertyBag
797 ([17452](https://github.com/civicrm/civicrm-core/pull/17452))**
799 - **[Ref] remove calls to, and deprecate, pending function
800 ([17490](https://github.com/civicrm/civicrm-core/pull/17490))**
802 - **[REF] Cleanup MailingAB BAO
803 ([17309](https://github.com/civicrm/civicrm-core/pull/17309))**
805 - **[TEST] Update test to support for 8.0.19 change
806 ([17354](https://github.com/civicrm/civicrm-core/pull/17354))**
808 - **[TEST] Fix test failure on Drupal 8 E2E PrevNextTest by only includin…
809 ([17358](https://github.com/civicrm/civicrm-core/pull/17358))**
811 - **[TEST] dev/core#1766 - Remove flakiness from testGetFromTo tests
812 ([dev/core#1766](https://lab.civicrm.org/dev/core/-/issues/1766):
813 [17338](https://github.com/civicrm/civicrm-core/pull/17338))**
815 - **[NFC/TEST] dev/core#1784 - Unit tests for contact delete/restore
816 ([dev/core#1784](https://lab.civicrm.org/dev/core/-/issues/1784):
817 [17437](https://github.com/civicrm/civicrm-core/pull/17437))**
819 - **NFC - Change array() to short syntax []
820 ([17470](https://github.com/civicrm/civicrm-core/pull/17470))**
822 - **[NFC] Update Karma to be latest version
823 ([17439](https://github.com/civicrm/civicrm-core/pull/17439))**
825 - **(NFC) CRM_Utils_Url - Fix declared type
826 ([17320](https://github.com/civicrm/civicrm-core/pull/17320))**
828 - **[NFC] Remove some more of the old cvs blocks
829 ([17383](https://github.com/civicrm/civicrm-core/pull/17383))**
831 - **NFC Add a bit more clarity to createEmailActivity function
832 ([17391](https://github.com/civicrm/civicrm-core/pull/17391))**
834 - **[NFC] Add comment that deprecated code is actually still reachable
835 ([17340](https://github.com/civicrm/civicrm-core/pull/17340))**
837 - **(NFC) Remove some cvs docblock help
838 ([17322](https://github.com/civicrm/civicrm-core/pull/17322))**
840 - **[NFC] Add comment regarding lower case for Polish states
841 ([17327](https://github.com/civicrm/civicrm-core/pull/17327))**
843 - **(NFC) RegionTest - Small cleanups
844 ([17270](https://github.com/civicrm/civicrm-core/pull/17270))**
846 - **[NFC] Add sr-only class for content only for screen readers
847 ([17255](https://github.com/civicrm/civicrm-core/pull/17255))**
849 - **NFC Change hardcoded ID to constant
850 ([17275](https://github.com/civicrm/civicrm-core/pull/17275))**
852 - **[NFC] Fix use of single quotes, strict operator
853 ([17492](https://github.com/civicrm/civicrm-core/pull/17492))**
855 ## <a name="credits"></a>Credits
857 This release was developed by the following code authors:
859 a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
860 Frumin, Andie Hunt; Andrei Mondoc; British Humanist Association - Andrew West;
861 Caltha - Tomasz Pietrzkowski; Christian Wach; Circle Interactive - Pradeep
862 Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
863 CompuCorp - René Olivo; Coop SymbioTIC - Mathieu Lutfy; Dave D; Dominic Hargreaves;
864 Electronic Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den
865 Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick
866 Figel; JMA Consulting - Edsel Lopez, Seamus Lee; John Kingsnorth; Joinery -
867 Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian
868 Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey
869 O'Toole; MJW Consulting - Matthew Wire; Palante Technology Cooperative - Morgan
870 Robinson; Semper IT - Karin Gerritsen; Tadpole Collective - Kevin Cristiano;
871 Wikimedia Foundation - Eileen McNaughton
873 Most authors also reviewed code for this release; in addition, the following
874 reviewers contributed their comments:
876 Agileware - Justin Freeman; Artful Robot - Rich Lott; Betty Dolfing; CiviCoop -
877 Jaap Jansma; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb; Kartik
878 Kathuria; Korlon - Stuart Gaston; Megaphone Technology Consulting - Dennis P.
879 Osorio; Squiffle Consulting - Aidan Saunders
881 ## <a name="feedback"></a>Feedback
883 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
884 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm