Automatic discounts not being applied to event registration forms
Overview
Following updates to PHP 7.3.29 and MySQL 5.7.34, we discovered that event registration forms are no longer having discounts automatically applied on public pages or back-end. The discount codes do work when applied manually. No errors are being logged.
Price sets appear to be a determining factor, as any price sets that were created before 2019 are still displaying discounts properly. If I copy or try to update an old price set, they then stop displaying the discount.
Other inquiries have been posted here: https://github.com/civicrm/org.civicrm.module.cividiscount/issues/266 https://civicrm.stackexchange.com/questions/40054/cividiscount-automatic-discounts-not-being-applied-after-server-updates
Reproduction steps
- Create new price set for an event registration
- Create new CiviDiscount or use an existing one with automatic discount for current members
- Set the price set in the fees tab for the event
- View the registration form
Current behaviour
When using a new or recently modified price set, the discount is not displayed on the registration form. If you submit the discount code manually, it does get applied and displayed on the form. The occurs on both our production and dev servers with the versions listed below.
Expected behaviour
The discount should be displayed on the form in the format: Conference Pass (Includes automatic member discount of: 10% ) - $ 135.00
Environment information
- CiviCRM 5.33.5
- Drupal 7.8.1.
- PHP 7.3.29
- MySQL 5.7.34
- CentOS 7.9
Dev server with same OS, PHP, and MySQL
- CiviCRM 5.39
- CiviDiscount 3.8.4
Comments
We have investigated for several days and not found any other clues.
I have tried disabling other relevant extensions without seeing any change.