Online contribution flow - fix for php8.x, notices, smarty3
This is an oversight issue for fixing up the online contribution form in php8.x with a view to
- resolving all the smarty & php layer notices, including in the message templateb
- fixing the places where it doesn't work with Smarty3 (in the online membership receipt & I think I fixed one in Confirm.tpl maybe)
- fixing it to work with php8.2 (no undeclared properties)
- fixing the underlying line item handling mess (we have multiple different ways of setting & retrieving the line itesm + a whole lot of code that does stuff to the line items but ultimately alters variables that get discarded. The impact of that I found tax bugs as soon as I started looking at the code.
- fixing the online membership receipt such that it is previewable in MessageAdmin Ui, and does not require complex code to call it & have it render correctly (ie.
composeMessageArray
& the form layer both do a lot of assigning that should be unnecessary)
Much of this work has been done in small steps with a few in 5.68 & the bulk in 5.69. The goal is to try to resolve all the most important parts in 5.69 & then not do any more & encourage lots of rc testing on 5.69.
Areas to think about when testing
- data input with different currency separators
- non deductible amount with tax
- checking tax in separate payment & non separate payment scenarios (this actually has modest test cover but should be extended)
- checking the receipts
- checking the contribution recur amount is correct - when there is an autorenew membership + a contribution & it is not separate payment the amount should be equal to the tax-inclusive amount for the membership part of the contribution
Issues
Must fix regressions
-
Form layer issue on other amount js - probably regression in rc or master #4795 (closed) -
Disabled options showing up https://github.com/civicrm/civicrm-core/pull/28356 -
Membership type not selected as a default https://github.com/civicrm/civicrm-core/pull/28361 -
Is something weird happening with pledge? I couldn't figure out how to enable & disable & see it there & not there - UPDATE - I think this is a demo site data issue - https://github.com/civicrm/civicrm-core/pull/28497 -
Is the other Amount js right when there is NOT a membership? Need to compare to an older version... This might also be a demo site data issue per ^^
Regression?Improvement?
-
Change in line items for membership + contribution #4814 (closed)
Extension issues
-
A couple of extensions are interacting with the no-longer-in-use _lineItem
undeclared property. This undeclared property also causes php8 fails. Declaring it would give a false sense of security but an alternative is to add a magic__GET
&__SET
. In my digging so far taxcalculator would need some small changes to adapt to this as the undeclared property is passed-by-reference but other extensions are likely to be OK with it. PR to add magic methods https://github.com/civicrm/civicrm-core/pull/28276 PR on taxcalculator extensions/taxcalculator!9 (closed)
Pre-existing issues
These are not necessarily going to be fixed but the process of verifying them provides a goodly amount of rc testing. In some cases they are suspected fully or partially fixed already
Tax
-
Long term issue on tax not applying to separate membership payments, in my testing pre-cleanup the tax-not-applied seemed to go beyond separate payments. This needs re-testing & a list of issues confirmed financial#154 (closed) -
Aha - here is the general tax issue I hit #4524 (closed) - needs verification -
How should tax apply to 'Other amount' - is the amount entered inclusive? #4806 -
possible bug - needs verification financial#182 -
Now that we have standardised on publicly supported getLineItems()
&setLineItems()
how is our hook support #2796
Localisation
-
Non-English currency formatting messes with other amount field #4802 (closed)
Page flow
-
Membership amount + contribution issues (erm what did I mean when I wrote this?) -
Data issue when email fails #4540 -
Data issue on payment fail https://github.com/civicrm/civicrm-core/pull/26120 -
ContributionRecurID not always passed to payment processor #4019 -
The stretch goal - create order before adding payment financial#76 -
Also the stretch goal financial#53 -
Another meta issue of unknown status #928
Validation
-
Contribution + membership + quick config #3314
On Behalf
-
Profile bug?? financial#124 -
Onbehalf hide for orgs #4725
Presentation issues
-
Notices on form - undefined property #4760 (closed) -
Currency incorrect on thank you / confirm pages #3381 (closed) -
Probably the same #3917 -
Probably the same #411 -
Problems at form layer with auto-renew handling #3963 (closed) -
Frequency units translation issues translation#53 -
On behalf confusing #2266 -
PCP notices drupal#159 (closed) -
Translation missin ghttps://lab.civicrm.org/dev/translation/-/issues/27 -
Show hide billing doesn't work financial#129 -
Email appears twice #3858 -
Translation issue #4071 -
Possible bug #4293 -
Bug? replicable #4488 -
Upload image does not show #4817 -
Undefined array key "honoreeProfileFields" also "title" in ThankYou.tpl.php that appeared when payment incorrectly recorded as $0 #4863 (closed) -
Edit contribution has about a dozen undefined array keys for defaultContribution, displayLineItemFinancialType, getTaxDetails, pricesetFieldsCount, hookDiscount #4864 (closed)
Membership calculation
-
Membership term usage issue #3344 (closed) -
Probably the same thing #3810 (closed) -
Probably the same thing #3339 (closed) -
Autorenew deep dive financial#128 -
My read of the code suggests that if 2 membership types are configured to offer auto-renew it will only work for one
Premiums
-
notices on manage premiums #4793 (closed) -
need api support for premiums https://github.com/civicrm/civicrm-core/pull/28261 -
Smarty notices on premiums in Online form flow #4794 (closed) -
pre-existing brokenness on deductible amount #1083 -
More non-deductible amount issues #2414 -
non-deductible amount misconfiguration #3083 (note we could add a system check as a low-risk step)
Manage contribution pages
-
issue saving renew options https://github.com/civicrm/civicrm-core/pull/24997 -
Validation lacking #2846 -
Widget issue #20 (closed)
Membership receipts
- [x ] Remove text version of receipt - we are moving to relying on generated text version rather than maintaining both
-
Membership data wrong #2354 (closed) -
Credit card info sometimes missing #661 -
Receipt text inconsistently handled user-interface#13 -
Issue on upsell #4332 -
Proposal - remove trxn_id financial#217 -
Missing recur links financial#127
Contribution receipts
-
Somewhat obscure bug on on-behalf profiles (should be addressed if we get as far as moving the handling of that to the WorkflowMessage class) #4779 -
Remove text version of receipt - we are moving to relying on generated text version rather than maintaining both -
Duplicate of donor name #2021 -
Not sent for paypal express financial#13 -
PDF file name issue #3068 -
Broken links in contribution issue #1195 -
Likely fixed bug #4185 -
Checksum wiht on-behalf of #4265
Wordpress issue?
Feature request
-
Configurable confirm button - more than one request - like events - user-interface#10 #4324