Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-01-06T05:03:25Zhttps://lab.civicrm.org/dev/core/-/issues/3355Error when using cart and Stipe payment processor2024-01-06T05:03:25Zjorich_2000Error when using cart and Stipe payment processorCompleting transaction from the cart with Stripe causes the following error:
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details a...Completing transaction from the cart with Stripe causes the following error:
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
Attemted to setCurrency with a value that was not an ISO 3166-1 alpha 3 currency code
Th payment has been processed by Stripe and a stripe receipt issued
The same event with the cart disabled and all the same personal details works okhttps://lab.civicrm.org/dev/core/-/issues/3353No way to empty the cart procedurally or via a URL2024-01-05T05:03:31ZTomAndersonNo way to empty the cart procedurally or via a URLHow do we get rid of anything in the cart? For example, if it's after 1 hour, we may want to dump the entire cart.
For example, could I do an AJAX call like this? `{crmURL p='civicrm/event/empty_cart' q="reset=1" fb=1}`
I'm not seeing ...How do we get rid of anything in the cart? For example, if it's after 1 hour, we may want to dump the entire cart.
For example, could I do an AJAX call like this? `{crmURL p='civicrm/event/empty_cart' q="reset=1" fb=1}`
I'm not seeing anything to this effect.
Alternately, how can we do this procedurally (in PHP).https://lab.civicrm.org/dev/core/-/issues/3351Remove scriptFee & scriptArray params2022-04-22T16:21:18Zmattwiremjw@mjwconsult.co.ukRemove scriptFee & scriptArray paramsThese parameters are not used and should be removed from CiviCRM codeThese parameters are not used and should be removed from CiviCRM code5.20.0https://lab.civicrm.org/dev/core/-/issues/3350Event registration form has inconsistent labelling2022-04-22T16:21:16ZJonGoldEvent registration form has inconsistent labellingFollowing on from core#1613 - [PR 16651](https://github.com/civicrm/civicrm-core/pull/16651) updated the button text but nor corresponding instructions.
Hat tip to Bryan for discovering this and [posting on Stack Exchange](https://civic...Following on from core#1613 - [PR 16651](https://github.com/civicrm/civicrm-core/pull/16651) updated the button text but nor corresponding instructions.
Hat tip to Bryan for discovering this and [posting on Stack Exchange](https://civicrm.stackexchange.com/questions/35964/misleading-instructions-in-civievent-registration-template-for-multiple-particip).
https://github.com/civicrm/civicrm-core/pull/176955.29.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3349Creating an event clears the cache2022-04-22T16:21:15ZjaapjansmaCreating an event clears the cacheWhen creating a new event or updating an existing the system will clear all caches in the background.
The line causing this is in the CRM_Event_BAO_Event::add
```php
public static function add(&$params) {
CRM_Utils_System::flush...When creating a new event or updating an existing the system will clear all caches in the background.
The line causing this is in the CRM_Event_BAO_Event::add
```php
public static function add(&$params) {
CRM_Utils_System::flushCache();
```
see: https://github.com/civicrm/civicrm-core/blame/master/CRM/Event/BAO/Event.php#L86
My question is why the caches need to be cleared when adding or updating an event? And if there is no reason is it safe to remove this line?
5.18.0https://lab.civicrm.org/dev/core/-/issues/3348Event Information page, Price Set, Field Label is hidden if only 1 price opti...2022-04-22T16:21:14Zjustinfreeman (Agileware)Event Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is setEvent Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is set. This is counter-intuitive and problematic because the Field Label is expected to be alway...Event Information page, Price Set, Field Label is hidden if only 1 price option is set for the field, but shown if more than 1 price option is set. This is counter-intuitive and problematic because the Field Label is expected to be always shown. Not to have conditional logic which determines when it is shown. There is no guidance given in the user interface for this behaviour.
Recommend that the logic here be removed, https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Page/EventInfo.php#L132
**Price set, 2 price options - field label shown.**
Price set, field label
![chrome_Bkc47oIGbW](/uploads/1f3d6ddd3f94b30ddd15a76c168cb33e/chrome_Bkc47oIGbW.png)
Shown on the page like this
![chrome_L7m5Yd6CEY](/uploads/42810caf7891584a7e5f651b44794dd5/chrome_L7m5Yd6CEY.png)
**Price set, 1 price option - no field label shown.**
Price set, field label
![chrome_OoefRWUI9q](/uploads/b79d8c06cfd3dbea36b8e6de50feac30/chrome_OoefRWUI9q.png)
Shown on the page like this
![chrome_Vx0EOvDtDZ](/uploads/7b1739adb16783fddaefb2a76c8554da/chrome_Vx0EOvDtDZ.png)
Agileware Ref: CIVICRM-1366https://lab.civicrm.org/dev/core/-/issues/3347API4: Inconsistent behavior on Role ID2022-04-22T16:21:12ZJonGoldAPI4: Inconsistent behavior on Role IDTo replicate:
* Create a participant record with two different roles, say, "Attendee" and "Volunteer".
* With API4, search for that participant ID with "role_id = Attendee".
* Do the same with API3.
Expected result:
The results should b...To replicate:
* Create a participant record with two different roles, say, "Attendee" and "Volunteer".
* With API4, search for that participant ID with "role_id = Attendee".
* Do the same with API3.
Expected result:
The results should be consistent with API3 and API4, and the participant record should be returned.
Actual result:
API3 behaves as expected. API4 does not show the record because "role_id" doesn't match Attendee exactly, there are two role IDs in an array.https://lab.civicrm.org/dev/core/-/issues/3346Captcha not working when registering multiple particpants online from same pr...2022-04-22T16:21:11ZMartinCaptcha not working when registering multiple particpants online from same profile (Jira CRM-21824)I'm having this issue (on civi 5.14.1) and found it on Jira but not here... So I'm restarting it. :)
Original: https://issues.civicrm.org/jira/browse/CRM-21824
Copied description:
* When creating an event and allowing contacts to regi...I'm having this issue (on civi 5.14.1) and found it on Jira but not here... So I'm restarting it. :)
Original: https://issues.civicrm.org/jira/browse/CRM-21824
Copied description:
* When creating an event and allowing contacts to register multiple participants online.
* And where the profile for the reigistration has cpatcha enabled
* And where the additional participants are registered using the same profile as the initial contact.
* Online registration is failing with a message that the cpatcha hasn't been completed.
In earlier versions if multiple participants where booked via this method. The first participant record was shown the captcha and this held for subsequent booked participants. This bug was noticed after a client moved from 4.6 to 4.7 versions. Answer at the moment is to not allow multiple participants, or to create a new profile without captcha for recording additional participants.https://lab.civicrm.org/dev/core/-/issues/3345Selections information not visible when editing participant record from find ...2024-01-05T05:03:30ZanilSelections information not visible when editing participant record from find participants searchReproduced on https://dmaster.demo.civicrm.org on 1st March 2021 - Version 5.36.alpha1
To reproduce, register a contact for an event with a fee.
Search for this participant via a find participant search and click on edit from the searc...Reproduced on https://dmaster.demo.civicrm.org on 1st March 2021 - Version 5.36.alpha1
To reproduce, register a contact for an event with a fee.
Search for this participant via a find participant search and click on edit from the search results –
![participant_bug](/uploads/95b9fddc4f3f8f97e77274603361d8a4/participant_bug.png)
Correct info appears when you edit directly from the events tab from the contact record.
![participant_bug2](/uploads/3117ada4a296ec9badc687e951a64f7e/participant_bug2.png)https://lab.civicrm.org/dev/core/-/issues/3344Recurring membership term is incorrect when using price sets2024-02-06T05:47:22ZJonGoldRecurring membership term is incorrect when using price setsWhen using membership price sets, the recurring contribution created doesn't match the term of the membership selected, it matches the term of the first membership in the price set. The issue is mentioned in passing on the [gocardless](...When using membership price sets, the recurring contribution created doesn't match the term of the membership selected, it matches the term of the first membership in the price set. The issue is mentioned in passing on the [gocardless](https://lab.civicrm.org/extensions/gocardless/-/issues/112) issue queue but doesn't have its own issue.
### Steps to replicate
* Create two memberships, one with a term of 1 year, one with a term of 1 month. Make auto-renew required.
* Create a membership price set with radio buttons, allowing the user to choose between the two memberships.
* Create a contribution page for the price set.
* Register for the second membership (term of 1 month).
* View the recurring contribution record.
### Expected result
Recurring contribution record is 1 month.
### Actual result
Recurring contribution record is 1 year.
I am away from home this week and don't have a working XDebug config, but I'll take a shot at this next week.5.69.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3343Canceled pending memberships are considered "lifetime" memberships2024-01-04T05:03:21ZJonGoldCanceled pending memberships are considered "lifetime" memberships`CRM_Member_BAO_Membership::getAllContactMembership()` with `$onlyLifeTime` set to `TRUE` searches for all of a contact's memberships, and will return a non-empty array if a membership exists that a) has no end date, b) status is not `Pe...`CRM_Member_BAO_Membership::getAllContactMembership()` with `$onlyLifeTime` set to `TRUE` searches for all of a contact's memberships, and will return a non-empty array if a membership exists that a) has no end date, b) status is not `Pending`.
Today, I came across a scenario where a pending membership was canceled. Since status was `Canceled` and not `Pending` it was returned as a "lifetime" membership and prevented the user from signing up online for a new membership.
This is a bit of an edge case - but I wonder if there's a better definition of a lifetime membership? If I exclude `Canceled` memberships that would exclude lifetime canceled memberships (another edge case). Is there anything I can do short of querying the `civicrm_membership_log` to see if the membership was ever anything but pending or canceled?JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3342Memberships of disabled membership types do not appear on the membership tab ...2024-01-04T05:03:20ZalicefruminMemberships of disabled membership types do not appear on the membership tab BUT do throw duplicate Membership WarningIf a contact has a Membership of the Membership Type "Student"
and the membership type "Student" gets disabled
On the contacts membership tab you will see no memberships but when you try and create a new membership for this contact a "D...If a contact has a Membership of the Membership Type "Student"
and the membership type "Student" gets disabled
On the contacts membership tab you will see no memberships but when you try and create a new membership for this contact a "Duplicate Membership" warning will appear.
To some extent this makes sense because if one were to re enable the disabled student membership type and a user had created a new membership that could be problematic. However from a UI perspective it seems like it would be useful for disabled memberships to be listed.https://lab.civicrm.org/dev/core/-/issues/3341Prevent Duplicate memberships2024-01-03T05:03:26ZprdufresnePrevent Duplicate membershipsThere needs to be a mechanism to prevent duplicate memberships for the same user. There are legitimate circumstances for there to be multiple memberships, but there needs to be a way to prevent it as well.
I propose two options:
1. A ...There needs to be a mechanism to prevent duplicate memberships for the same user. There are legitimate circumstances for there to be multiple memberships, but there needs to be a way to prevent it as well.
I propose two options:
1. A checkbox in the Contribution Page settings Memberships tab to "Prevent duplicate memberships"
2. A checkbox in the Membership Types page that "Allows duplicate membership of this type"
In either case, the verification logic should be specific to that membership type.https://lab.civicrm.org/dev/core/-/issues/3340Additional Memberships added via Contribution Pages overwrite existing member...2022-04-22T16:17:47ZalanpuccinelliAdditional Memberships added via Contribution Pages overwrite existing membershipsVerified on current demo install of ver 5.0
To Reproduce:
1. Create an inherited membership for an individual by assigning the membership to a related organization.
2. Create a Pending membership via a contribution page and select "Pay ...Verified on current demo install of ver 5.0
To Reproduce:
1. Create an inherited membership for an individual by assigning the membership to a related organization.
2. Create a Pending membership via a contribution page and select "Pay Later/by check"
3. Notice that Pending membership is not created for contribution page membership
4. Receive payment for the pending membership contribution. (Membership should switch to active at this point)
5. Because there is no pending membership it appears that the system will overwrite the existing inherited membership and extend the end date by whatever the new membership period is.https://lab.civicrm.org/dev/core/-/issues/3339Wrong frequency when purchasing a membership2024-01-05T03:42:45ZsudomanWrong frequency when purchasing a membershipWe patched a bug in CiviCRM core that has been around for a while now. When buying an annual membership, sometimes donors are charged the annual price, but on a monthly basis. (We offer both annual and monthly memberships on the same mem...We patched a bug in CiviCRM core that has been around for a while now. When buying an annual membership, sometimes donors are charged the annual price, but on a monthly basis. (We offer both annual and monthly memberships on the same membership page). This patch is a hack that works for us, but may have some hard coded values for our instance.
One way to check if your server has this problem is to use a payment processor like PayPal, which lets you see the recurring contrib details before you actually pay. This issue comes up somewhat randomly, so you might have to try a few times.
Thanks! : )
```
diff --git a/CRM/Contribute/Form/ContributionBase.php b/CRM/Contribute/Form/ContributionBase.php
index 41fcb7da3e..075d29ab20 100644
--- a/CRM/Contribute/Form/ContributionBase.php
+++ b/CRM/Contribute/Form/ContributionBase.php
@@ -1371,7 +1371,14 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
$this->_params['is_recur'] = $this->_values['is_recur'] = 1;
// check if price set is not quick config
if (!empty($this->_params['priceSetId']) && !CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_params['priceSetId'], 'is_quick_config')) {
- list($this->_params['frequency_interval'], $this->_params['frequency_unit']) = CRM_Price_BAO_PriceSet::getRecurDetails($this->_params['priceSetId']);
+
+ // Extract the ids for all of the line items that have been chosen.
+ $priceFieldValueIds = array_keys($this->_lineItem[$this->_params['priceSetId']])[0];
+ if (empty($priceFieldValueIds))
+ $priceFieldValueIds = array_keys($this->_params['price_126'])[0];
+ list($this->_params['frequency_interval'], $this->_params['frequency_unit']) = CRM_Price_BAO_PriceSet::getRecurDetails($this->_params['priceSetId'], $priceFieldValueIds);
}
else {
// FIXME: set interval and unit based on selected membership type
diff --git a/CRM/Price/BAO/PriceSet.php b/CRM/Price/BAO/PriceSet.php
index 91118ecd97..0277bdbaed 100644
--- a/CRM/Price/BAO/PriceSet.php
+++ b/CRM/Price/BAO/PriceSet.php
@@ -1332,13 +1332,14 @@ GROUP BY mt.member_of_contact_id ";
* @return array
* associate array of frequency interval and unit
*/
- public static function getRecurDetails($priceSetId) {
+ public static function getRecurDetails($priceSetId, $priceFieldValueIds) {
$query = 'SELECT mt.duration_interval, mt.duration_unit
FROM civicrm_price_field_value pfv
INNER JOIN civicrm_membership_type mt ON pfv.membership_type_id = mt.id
INNER JOIN civicrm_price_field pf ON pfv.price_field_id = pf.id
- WHERE pf.price_set_id = %1 LIMIT 1';
+ WHERE pf.price_set_id = %1 AND pfv.id = '
+ . $priceFieldValueIds . ' LIMIT 1';
$params = [1 => [$priceSetId, 'Integer']];
$dao = CRM_Core_DAO::executeQuery($query, $params);
```5.69.0https://lab.civicrm.org/dev/core/-/issues/3338Add 'membership start date' as an option when creating Scheduled Reminder bas...2022-04-22T16:17:42ZjitendraAdd 'membership start date' as an option when creating Scheduled Reminder based on MembershipThis is what we get as options
![image](/uploads/022c3bd1a4f8dbb12a4b6f034de33c55/image.png)
This ticket aims to add membership start date to the option list.
@eileen @totten I don't see any logical reason for not including it before....This is what we get as options
![image](/uploads/022c3bd1a4f8dbb12a4b6f034de33c55/image.png)
This ticket aims to add membership start date to the option list.
@eileen @totten I don't see any logical reason for not including it before. Have I missed something? Do you see any downsides on adding start date as an option?jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/3337Unable to change membership after upgrading to 5.342022-04-22T16:17:38ZedvanleeuwenUnable to change membership after upgrading to 5.34I am not able to change a membership after upgrading from 5.33.2 to 5.34.0.
Steps to reproduce:
1. Edit a membership
1. Change e.g. the end date
1. Save the membership.
A popup message appears saying the membership change has been carr...I am not able to change a membership after upgrading from 5.33.2 to 5.34.0.
Steps to reproduce:
1. Edit a membership
1. Change e.g. the end date
1. Save the membership.
A popup message appears saying the membership change has been carried out with the date given. However, the change is not recorded.
This happens with every change.
![image](/uploads/d04ebaeeda1d124059eb6358d76e0c27/image.png)
Workaround: Use the Renew option and change the number of renewal periods.https://lab.civicrm.org/dev/core/-/issues/3335Proposal on Membership Renewal form re 'fixMembershipBeforeRenew'2022-04-22T16:17:33ZeileenProposal on Membership Renewal form re 'fixMembershipBeforeRenew'When a membership is renewed via the backoffice form one step in the process is to call
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew
This does a couple of things
1) it checks what the correct status is as of the current d...When a membership is renewed via the backoffice form one step in the process is to call
CRM_Member_BAO_Membership::fixMembershipStatusBeforeRenew
This does a couple of things
1) it checks what the correct status is as of the current date
2) if it is not 'correct' it
- changes the status
- adds a membership log
- adds an activity
- updates a parameter which tells the calling function if the membership is now current.
My belief is that this last parameter is useful to the calling function and the other steps are byproducts of shared code that may not be that relevant.
I propose we either
1) say that it is not necessary/ helpful to change the status & add the various entries in this flow OR
2) if it is useful (probably because the scheduled job didn't run) then we do it in the preProcess function rather than the post process
@andrewhunt @justinfreeman @mattwire @KarinG any opinions on ^^
(note there are some related issues that might come up - please try to add separate issues if you want to raise points outside this specific proposal)5.31.0https://lab.civicrm.org/dev/core/-/issues/3334Option to update expired memberships as part of the job.process_membership2022-04-22T16:17:32ZMichael McAndrewOption to update expired memberships as part of the job.process_membershipIt looks like *expired* memberships are excluded from job.process_membership for performance reasons.
There are (edge) cases where this is problematic. For example, lets say that I increased the grace membership period from 3 to 6 month...It looks like *expired* memberships are excluded from job.process_membership for performance reasons.
There are (edge) cases where this is problematic. For example, lets say that I increased the grace membership period from 3 to 6 months. People whose membership ended 4 months ago will not have their membership status updated from expired to grace.
The other three membership statuses that are excluded from membership updates are 'Deceased', 'Pending' and 'Cancelled'.
Not sure if there is a use case for also re-calculating these but interested in people's thoughts.
Proposed solution: add an option to process normally excluded membership statuses (maybe just expired) from job.process_membership.5.29.0https://lab.civicrm.org/dev/core/-/issues/3333I'm unable to create a new member2022-04-22T16:17:30ZbriandefferdingI'm unable to create a new memberI'm attempting to create a new member for the state party, and I am getting and error, informing me this task cannot be done at this time. I have a screenshot attached.![Screen_shot_2019-06-22_at_10.34.41_PM](/uploads/b7e0a143eba8cc582f3...I'm attempting to create a new member for the state party, and I am getting and error, informing me this task cannot be done at this time. I have a screenshot attached.![Screen_shot_2019-06-22_at_10.34.41_PM](/uploads/b7e0a143eba8cc582f3bd26740281003/Screen_shot_2019-06-22_at_10.34.41_PM.png)