Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-12-06T16:06:38Zhttps://lab.civicrm.org/dev/core/-/issues/4735Event Registration Error on Wordpress 6.3.1 Civi 5.63.4 "Could not find valid...2023-12-06T16:06:38Zdarren.woodsEvent Registration Error on Wordpress 6.3.1 Civi 5.63.4 "Could not find valid value for id"Overview
----------------------------------------
When registering for an event, users do not see the configured thank you messge, but instead are shown the error: "Could not find valid value for id"
https://civicrm.stackexchange.com/qu...Overview
----------------------------------------
When registering for an event, users do not see the configured thank you messge, but instead are shown the error: "Could not find valid value for id"
https://civicrm.stackexchange.com/questions/45729/event-registration-error-on-wordpress-6-3-1-civi-5-63-4-could-not-find-valid-va
Reproduction steps
----------------------------------------
1. Configure an event with free online registration and a thankyou message.
2. Register for the event from the event info page.
Current behaviour
----------------------------------------
Users are shown an error: "Could not find valid value for id"
Expected behaviour
----------------------------------------
Thank you message configured in the event should be shown.
Environment information
----------------------------------------
* __Browser: Browser independent.
* __CiviCRM: 5.63.4
* __PHP: 8.1
* __CMS: WordPress 6.3.1
* __Database: MariaDB
* __Web Server: Nginx
Comments
----------------------------------------
This only happens with registering for events using the Civi event info page. If you embed a shortcode for the specific event in a WordPress page then the error is not shown.https://lab.civicrm.org/dev/core/-/issues/4545Events - Self service and change options after initial registration2023-09-06T13:20:42ZtreseroEvents - Self service and change options after initial registrationThis is a common scenario, and I'm not sure why CiviEvents doesn't support it.
Scenario 1: Joe signs up for a multi-day event and pays for the registration. A month later, the event organizers add a golf tournament fundraiser option, Jo...This is a common scenario, and I'm not sure why CiviEvents doesn't support it.
Scenario 1: Joe signs up for a multi-day event and pays for the registration. A month later, the event organizers add a golf tournament fundraiser option, Joe wants to add this to his registration.
Scenario 2: Joe now realizes that he wants to add his wife.
Scenario 3: Joe's friend Jeff wants to go, and also play golf.
You get the idea.
As Events is now, there is no way to adjust your registration and it has to be done manually. That is not an option for 700 - 800 registrations run by all volunteers (i.e. we don't have any paid staff). Another issue is we can't make the payment required as it would have to be paid when there is a "new" change. Making it optional, well, you can see the problem.
My thinking would be to look up email, or something and populate the form etc. We already require them to create a wordpress account so that could also be used. It's just not there.
Also, we have 25,000+ constituents that were imported from a legacy system. They don't have any accounts, but it would be nice if there were a way to match emails (where possible, I know not all have updated/current emails), but this is a less important scenario.
I have coding skills, but as we are all volunteers, I don't have much time. There is some money to budget for a developer. All code will be added back to the public.
![image.png](/uploads/9e7d2100f9b61ee6b871d0467d58338d/image.png)
As you can see, this is an example. Of course, none is not an option. but if we added other additions, or they want to add another person, it has to be manually done.https://lab.civicrm.org/dev/core/-/issues/4541Membership renewal on Feb 29 of a leap year is calculated incorrectly2023-08-29T19:23:09ZlarsssandergreenMembership renewal on Feb 29 of a leap year is calculated incorrectlyOr it doesn't match what the test expects, anyways.
Basically, the [membership renewal here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/CRM/Member/BAO/MembershipType.php#L524) in CRM_Member_BAO...Or it doesn't match what the test expects, anyways.
Basically, the [membership renewal here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/CRM/Member/BAO/MembershipType.php#L524) in CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType() will renew a membership that expires on Feb 29 for one year and set the new expiry date to Feb 28. But the [test here](https://github.com/civicrm/civicrm-core/blob/bb49a5de4a1630e57e91e3618c370bc075a793b5/tests/phpunit/CRM/Member/BAO/MembershipTest.php#L518) in CRM_Member_BAO_MembershipTest::testRenewMembership() thinks the membership should expire on Mar 1, which is actually more reasonable.
The problem is the kind of funky add one day and then subtract it later after adding a membership period logic, which doesn't make sense in this case as Feb 29 exists one year, but not the next.https://lab.civicrm.org/dev/core/-/issues/4456Saving event with custom file field gives fatal error2024-02-07T19:47:09ZwouterhSaving event with custom file field gives fatal error1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on st...1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on string in include() (regel 59 van /var/www/html/web/sites/default/files/civicrm/templates_c/nl_NL/%%1D/1DB/1DB03A28%%CustomField.tpl.php).`
Using CiviCRM 5.62.0 & PHP 8. Doesn't happen in PHP 7.5.71.0https://lab.civicrm.org/dev/core/-/issues/4390Multiple Participant Event Registration Issue2024-02-12T09:17:09ZChiplehMultiple Participant Event Registration Issue1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields f...1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields from the profiles allowed us to successfully submit a payment for the event with Stripe.
4. We can confirm the registration was charged correctly.
5. Something with payment processing (core Paypal Website Payments Pro and Stripe extension) is not working properly when custom fields have been added to the CiviEvent registration form.
6. This happens both in WordPress and Drupal 7. In WordPress, this occurs whether the registration form is accessed directly or embedded in a page via shortcode.
Details (site 1):
WordPress 6.2.1
CiviCRM ESR 5.57.4
Stripe Extension: 6.7.14
https://lab.civicrm.org/extensions/stripe
Firewall Extension: 1.5.7
https://lab.civicrm.org/extensions/firewall
Paypal Website Payments Pro (core integration)
PHP 8.0
Details (site 2):
Drupal 7.98
CiviCRM ESR 5.57.4
Paypal Website Payments Pro (core integration)
PHP 8.0
To replicate:
1. Add a custom field group to the event registration form.
2. Go to /civicrm/event/register/?reset=1&action=preview&id=[event_id] and test with multiple participants (2 or more), dummy card # appropriate for the payment processor, any CVV, any date in future
2. Critical error after submitting at the end.
WordPress error from log:
[debug] $backTrace = #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(441): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(CRM_Core_Exception))
#2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:3))
#3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke()
#4 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP))
#5 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, (Array:1))
#6 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action((Array:1))
#7 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array("wp", (Array:1))
#8 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main("")
#9 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp()
#10 /home/XXXXXXXXXXX/www/www/index.php(17): require("/home/XXXXXXXXXXX/www/www/wp-blog-header.php")
#11 {main}
Could this be an issue with PHP 8?
After reviewing the error log, we see:
Warning: Array to string conversion in /wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php on line 655
Fatal error: Uncaught TypeError: preg_match(): Argument #2 ($subject) must be of type string, array given in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php:692 Stack trace: #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php(692): preg_match('/^custom_(\\d+)_...', Array, Array) #1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(655): CRM_Core_BAO_CustomField::getKeyID(Array) #2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(559): CRM_Contact_BAO_Query->buildParamsLookup() #3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(524): CRM_Contact_BAO_Query->initialize(NULL) #4 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/BAO/Event.php(1696): CRM_Contact_BAO_Query->__construct(Array, Array, Array) #5 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(1178): CRM_Event_BAO_Event::displayProfile(Array, '263', Array, Array, Array) #6 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(273): CRM_Event_Form_Registration_Confirm::assignProfiles(Object(CRM_Event_Form_Registration_Confirm)) #7 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(689): CRM_Event_Form_Registration_Confirm->buildQuickForm() #8 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(120): CRM_Core_Form->buildForm() #9 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(43): CRM_Core_StateMachine->perform(Object(CRM_Event_Form_Registration_Confirm), 'next', 'Next') #10 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Event_Form_Registration_Confirm), 'next') #11 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Event_Form_Registration_Confirm), 'next') #12 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle('next') #13 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Core_Controller->run(Array, NULL) #14 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array) #15 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array) #16 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke(Array) #17 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke() #18 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP)) #19 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array) #20 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #21 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array('wp', Array) #22 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main('') #23 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp() #24 /home/XXXXXXXXXXX/www/www/index.php(17): require('/home/harrisbur...') #25 {main} thrown in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php on line 692
There has been a critical error on this website.5.71.0https://lab.civicrm.org/dev/core/-/issues/4326Notice errors on backoffice event registration2023-06-09T23:38:52ZJoeMurrayNotice errors on backoffice event registrationOverview
----------------------------------------
_Register a participant in backoffice. See notice errors._
Reproduction steps
----------------------------------------
1. On dmaster, click on **Events -> Register Event Participant**.
1...Overview
----------------------------------------
_Register a participant in backoffice. See notice errors._
Reproduction steps
----------------------------------------
1. On dmaster, click on **Events -> Register Event Participant**.
1. Select a contact, event fall fundraiser dinner, click **Save**.
1. Get three copies for different line numbers of "Notice: Trying to get property '_id' of non-object in CRM_Event_Form_Participant::formRule()".
Current behaviour
----------------------------------------
![2023-05-31_12-59-37](/uploads/b2ec1cad1728b29ecc09742cd557d759/2023-05-31_12-59-37.png)
```
Notice: Trying to get property '_id' of non-object in CRM_Event_Form_Participant::formRule() (line 825 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Event/Form/Participant.php).
Notice: Trying to get property '_id' of non-object in CRM_Event_Form_Participant::formRule() (line 828 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Event/Form/Participant.php).
Notice: Trying to get property '_action' of non-object in CRM_Event_Form_Participant::formRule() (line 836 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Event/Form/Participant.php).
```
Note: happens when recording payment and when not recording payment.
Expected behaviour
----------------------------------------
_No notice errors_
Environment information
----------------------------------------
dmaster
Comments
----------------------------------------
_Anything else you would like the reviewer to note._5.63.0Monish DebMonish Debhttps://lab.civicrm.org/dev/wordpress/-/issues/140Event registration confirmation page no longer shown. Error: Could not find v...2023-12-07T09:30:02Zdarren.woodsEvent registration confirmation page no longer shown. Error: Could not find valid value for id.WordPress 6.2, Civi ESR 5.57.5.
The confirmation page after event registration is no longer shown (for both Test and Live links). Instead, the attached error is shown:-
![image](/uploads/602b80ebba49507af86158d362c9b164/image.png)
The ...WordPress 6.2, Civi ESR 5.57.5.
The confirmation page after event registration is no longer shown (for both Test and Live links). Instead, the attached error is shown:-
![image](/uploads/602b80ebba49507af86158d362c9b164/image.png)
The workaround is to embed the event registration page as a shortcode. However the confirmation page and confirmation emails show a link to the event info page, which then has the "Register" button taking people to the wrong page.
I'm wondering if this can be fixed, or if we need to override the confirmation and event info pages somehow to redirect users to the WordPress page (perhaps using a naming convention).
Thanks!https://lab.civicrm.org/dev/core/-/issues/4260CiviEvent: Submit button has wrong label in online registrations with multipl...2023-07-05T23:48:38ZAndreasandreas.howiller@civiservice.deCiviEvent: Submit button has wrong label in online registrations with multiple participants (on free events without confirmation screen)Overview
----------------------------------------
On a registration page for an event that allows multiple attendees, the submit button is labelled "Review" instead of "Register" though confirmation screen is disabled and event has no f...Overview
----------------------------------------
On a registration page for an event that allows multiple attendees, the submit button is labelled "Review" instead of "Register" though confirmation screen is disabled and event has no fees:
![grafik](/uploads/212957e4dfcbd9d321ff468009e9fce7/grafik.png)
Reproduction steps
----------------------------------------
1. Create a event free of charge with online registration
1. Enable checkbox "Register multiple participants?"
1. Try out registration page
Current behaviour
----------------------------------------
1. Button is labelled "Review" when option for multiple participants is enabled and drop down option is "1".
2. For dropdown "2" the label is "Continue" in the first step of the form. The last step then shows "Continue" again.
Expected behaviour
----------------------------------------
The "final submission button" should here always have the label "register" as it is the case when disabling "Register multiple participants".
Environment information
----------------------------------------
Reproduced on:
* __CiviCRM:__ _5.61.alpha1/5.60.0/5.58.1_
* __PHP:__ _8.1/7.4_https://lab.civicrm.org/dev/core/-/issues/4142Add Activity Target consistently2023-04-24T19:25:30ZSandor SemseyAdd Activity Target consistentlyOverview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have diffe...Overview
----------------------------------------
When creating related activities for other entities (e.g. Contribution, Participant (event registration), Membership) source and target contact IDs holds different contacts and have different meanings if a logged-in user added the entity or an anonymous user (through an online form).
This creates inconsistency and makes any downstream processing harder: searching, creating extensions & automations based on these activities.
Example use-case
----------------------------------------
If a contact get registered for an event by a logged-in user (someone showed interest in email and a backoffice user adding the registration to Civi) "Event Registration" activity's source (Added by) would be the CRM user and target (With) is the contact who wants to attend the event. This makes sense and the roles match the label: registration was *added by* the user and the *target* is the contact. Also works well as audit trails.
However, if the contact is using the online registration form source will be the contact and target will be empty.
Proposed behaviour
----------------------------------------
In my opinion best case would be: if there's no logged in user then source is the system user and target is the contact. This presents exactly what happened: a contact has registered and registration was added by the system, not by a real user manually.
If that's too much of a change or system user determination is hard across all CMS then just add contact to target (in this case source and target would be the same contact_id). This way also has the benefits of the same results for consumers.
In the latter case the downside is there would be redundancy in `civicrm_activity_contact` table (https://lab.civicrm.org/dev/core/-/issues/2450#note_55527). Regarding this, I argue that consistency worths more than disk space.
Comments
----------------------------------------
I've found some issues that mention this, but not as the main topic (https://lab.civicrm.org/dev/core/-/issues/2450) or hasn't any progress (https://lab.civicrm.org/dev/core/-/issues/2669). As it would be nice to change this through all of Civi.
PR at https://github.com/civicrm/civicrm-core/pull/256505.60.0https://lab.civicrm.org/dev/financial/-/issues/214Link to record payment from within participant change selections links it to ...2023-05-27T14:08:26ZDaveDLink to record payment from within participant change selections links it to wrong contribution, or crashes if that doesn't exist1. Register an event participant for a paid event.
2. In the record payment section of the registration, change the amount to less than the total so it's just a partial payment.
3. Save.
4. View/edit the participant record. Note the id i...1. Register an event participant for a paid event.
2. In the record payment section of the registration, change the amount to less than the total so it's just a partial payment.
3. Save.
4. View/edit the participant record. Note the id in the url.
5. Click Change Selections.
6. Click View Payments.
7. Click Record Payment. Note the id in the url. It's the participant id not the contribution id. If a contribution with that id doesn't exist then at this point it crashes.
8. If it does exist, note now at this point the balance owed displayed may be incorrect because it's from an unrelated contribution.
9. Fill it out and save.
10. Note it takes you to a different contact and has applied the payment to the unrelated contribution.
This is only from the Change Selections section. The other Record Payment link found at the bottom of the participant record when you expand the triangle is correct.
Can reproduce on dmaster. I doubt this is recent.5.63.0https://lab.civicrm.org/dev/core/-/issues/4119"Please enter a Title for the registration Confirmation Page" when saving eve...2023-02-16T21:31:27ZBobS"Please enter a Title for the registration Confirmation Page" when saving event with no confirmation pageOverview
----------------------------------------
When saving an event with the confirmation screen disabled, a popup appears saying "Please enter a Title for the registration Confirmation Page".
Reproduction steps
---------------------...Overview
----------------------------------------
When saving an event with the confirmation screen disabled, a popup appears saying "Please enter a Title for the registration Confirmation Page".
Reproduction steps
----------------------------------------
1. Create a new event with **Use a confirmation screen?** set to No and the confirmation page title empty.
1. click **Save**.
Current behaviour
----------------------------------------
Popup appears, event is not saved.
Expected behaviour
----------------------------------------
When **Use a confirmation screen?** is set to No, then there should be no requirement to set the non-blank confirmation page title.
Environment information
----------------------------------------
* __CiviCRM:__ _5.57.0_
Comments
----------------------------------------
* I believe this is a recent regression.
* Reproduced on dmaster.demo.civicrm on CiviCRM 5.60.alpha1. Must be tested by clicking **Save & Done**, rather than **Save**, due to https://lab.civicrm.org/dev/core/-/issues/38165.58.1https://lab.civicrm.org/dev/core/-/issues/4103Event price sets: Admin-only text field amount is shown in event registration...2023-05-05T15:52:20ZlarsssandergreenEvent price sets: Admin-only text field amount is shown in event registration test driveThis is a minor issue, but potentially confusing as it makes the event registration test drive page incorrect and different from the live registration page.
Steps to replicate:
1. Start with an event with a price set for registration o...This is a minor issue, but potentially confusing as it makes the event registration test drive page incorrect and different from the live registration page.
Steps to replicate:
1. Start with an event with a price set for registration options
2. Add a Text / Numeric Quantity field to the price set with Visibility = Admin.
3. Open Registration (Test Drive) in an Incognito / Private window.
4. Open Registration (Live) in an Incognito / Private window.
Note that the amount of the field is shown on a line on the test drive page, but not on the live page. The input field itself is not shown, just the amount. Nothing should be shown on the test drive page as this option is admin only.
This only happens with text fields, other field types are correctly not shown if set to admin only.
Tested on dmaster (5.59).
I will look into this when I have some time available.5.63.0https://lab.civicrm.org/dev/core/-/issues/4082Event participant role import inconsistency2023-06-30T14:06:52ZguitarmanEvent participant role import inconsistencyOverview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default val...Overview
----------------------------------------
Event participant role import doesn't respect submitted values.
Reproduction steps
----------------------------------------
1. Import a list of event participants, role = non-default value
2. Import runs through without showing any errors/warnings
3. Check DB-records, whatever has been submitted, the participant role value will always be set to "1" i.e. the default value set in the event configuration.
Current behaviour
----------------------------------------
Whatever is submitted, the participant role value will be set to "1" (default value).
Expected behaviour
----------------------------------------
The correct/submitted participant role value should be imported.https://lab.civicrm.org/dev/core/-/issues/4081API v.3 Event.create used for update will change Event Template to ordinary E...2023-01-16T15:26:05Zniels_erik_andersenAPI v.3 Event.create used for update will change Event Template to ordinary EventWhen API v.3 Event.create is used for update event template, it will set is_template to false so that the template is changed to an ordinary event.
To reproduce:
cv api Event.create id=nnn template_title="New Title"
Where nnn is id for...When API v.3 Event.create is used for update event template, it will set is_template to false so that the template is changed to an ordinary event.
To reproduce:
cv api Event.create id=nnn template_title="New Title"
Where nnn is id for Event Template
To fix:
In
CRM_Event_BAO_Event::create(&$params) {
$transaction = new CRM_Core_Transaction();
if (empty($params['is_template'])) {
$params['is_template'] = 0;
}
Change
if (empty($params['is_template'])) {
to:
if (empty($params['id']) && empty($params['is_template'])) {5.59.0https://lab.civicrm.org/dev/core/-/issues/3952Event badges, json may be broken (was CiviEvent - Date tokens may be misforma...2023-11-14T01:27:44ZtottenEvent badges, json may be broken (was CiviEvent - Date tokens may be misformatted)(*This is an offshoot from #3829. PR [24695](https://github.com/civicrm/civicrm-core/pull/24695) bundled in a partial fix for this date-token issue, but it looks to me like this is distinct from the barcode problem - and this still has s...(*This is an offshoot from #3829. PR [24695](https://github.com/civicrm/civicrm-core/pull/24695) bundled in a partial fix for this date-token issue, but it looks to me like this is distinct from the barcode problem - and this still has some TODOs.*)
v5.43 included an update for certain tokens. It recommended adding an explicit date filter:
* `{event.start_date}` => `{event.start_date|crmDate:"%B %E%f}`
* `{event.end_date}` => `{event.end_date|crmDate:"%B %E%f}`
Notably, the default content in `civicrm_print_label`.`data` has references to these tokens. It was updated by way of [873bfeb503caa413f17460](https://github.com/civicrm/civicrm-core/commit/873bfeb503caa413f17460dbe450b74fac3d6dbf#diff-b604dfcba0703a9cd5e9f1431451f657c2a580b1dfd8eb56e2c4e4a960c4b43c) (see `FiveFortyThree.php` and `civicrm_navigation.tpl`). However, the `data` field have special encoding requirements (JSON?), so it's not a simple string-substitution.
With [24695](https://github.com/civicrm/civicrm-core/pull/24695), it sounds like the escaping is fixed for new installs (5.54.1+). However, we probably need a cleanup/upgrade step for sites which either (a) installed 5.43-5.54 or (b) installed <5.43 and ran the upgrade.5.69.0https://lab.civicrm.org/dev/core/-/issues/3885Search results include participants with price set options they have been rem...2023-04-15T19:36:58ZlarsssandergreenSearch results include participants with price set options they have been removed fromIf a price set option / fee level quantity is 0 because a participant registration has been changed to remove that option, search results include participants with quantity 0. Search results should not include these participants with fee...If a price set option / fee level quantity is 0 because a participant registration has been changed to remove that option, search results include participants with quantity 0. Search results should not include these participants with fee level quantity 0 because they are not registered for that option.
More details in [PR #24650](https://github.com/civicrm/civicrm-core/pull/24650).https://lab.civicrm.org/dev/core/-/issues/3849Additional Participants are incorrectly added to group set in profile for pri...2022-10-11T16:07:59ZlarsssandergreenAdditional Participants are incorrectly added to group set in profile for primary participantOverview
----------------------------------------
For an event where additional participants are allowed, where there is a different profile selected for the additional participants than for the primary participant, and there is a group ...Overview
----------------------------------------
For an event where additional participants are allowed, where there is a different profile selected for the additional participants than for the primary participant, and there is a group set for "Add contacts to a group?" for the primary participant profile, any additional participants will be added to that group — even when the profile for additional participants is not set to add contacts to a group.
If the profile for additional participants is not set to add contacts to any group, the additional participants will be added to the group for the primary participant profile. If the additional participants profile is set to add contacts to a different group, the additional participants will be added to both groups. This also works the other way as well, so the primary participant will be added to any groups set in additional participant profiles.
This is a significant problem as it can result in contacts being subscribed to newsletters that they have not consented to receive.
Reproduction steps
----------------------------------------
1. Set up two profiles, A adds to a group, B does not add to a group.
2. Set up an event that allows additional participant registration, with profile A for the primary participant and profile B for additional participants.
3. Register two contacts for the event.
4. Only the first contact should be added to the group specified in profile A, but both contacts will be added to the group.
Tested on dmaster (5.54.alpha1) and 5.49.5.
Cause
----------------------------------------
It appears the issue is [here](https://github.com/civicrm/civicrm-core/blob/0a9f0c346038aebf7c2baaf0f3f83b635251dfb3/CRM/Event/Form/Registration/Confirm.php#L1067). For each contact, this checks every field in the form, regardless of which profile it is in, and adds the contact to any groups it finds in any of those fields.
Proposed fix
----------------------------------------
For each contact, check if registered_by_id exists in $params.
If no, this is the primary participant. Check $form for custom_pre_id and custom_post_id (array) to get a list of profiles used.
If yes, this is an additional participant. Check $form for additional_custom_pre_id and additional_custom_post_id (array, if exists) to get a list of profiles used.
For each profile, check the API for an add_to_group_id and add it to $addToGroups if one exists. $form does include all fields from all profiles with add_to_group_id for each, but it seems cleaner to look this up rather than checking though a potentially long list of fields, I think.https://lab.civicrm.org/dev/core/-/issues/3834"This line is not logically reachable", except...2024-03-15T20:42:01ZJonGold"This line is not logically reachable", except...This is a very minimal bug report because I don't have enough information, but because it's an unusual error message to see, I want to file it in case anyone else goes searching for it.
I got a warning `Deprecated function CRM_Event_For...This is a very minimal bug report because I don't have enough information, but because it's an unusual error message to see, I want to file it in case anyone else goes searching for it.
I got a warning `Deprecated function CRM_Event_Form_Registration_Confirm::postProcess, use This line is not logically reachable.`, followed immediately by a fatal error `Cannot find participant ID`.
* It looks like this person registered 3 participants.
* They were almost certainly using a link that included `cid=0` (aka "Not this person? Click here").
* Participant 2 has the correct `registered_by_id` and Participant 3 has no `registered_by_id`, which is where I suspect the error is creeping in.
It's the end of my day but I'll try to replicate more comprehensively tomorrow.
```
+------+------------+----------+-----------+---------+---------------------+------------------------------------------------+---------------------------------------------------------+---------+--------------+------------+------------------+-------------+--------------+-------------+-----------------+---------+-----------+---------------------------+
| id | contact_id | event_id | status_id | role_id | register_date | source | fee_level | is_test | is_pay_later | fee_amount | registered_by_id | discount_id | fee_currency | campaign_id | discount_amount | cart_id | must_wait | transferred_to_contact_id |
+------+------------+----------+-----------+---------+---------------------+------------------------------------------------+---------------------------------------------------------+---------+--------------+------------+------------------+-------------+--------------+-------------+-----------------+---------+-----------+---------------------------+
| 2386 | 1981 | 100 | 1 | 1 | 2022-09-01 14:55:05 | Online Event Registration: 2022 Annual Meeting | 1st, 2nd or 3rd Attendee - 1 (multiple participants) | 0 | 1 | 0.00 | NULL | NULL | USD | NULL | NULL | NULL | NULL | NULL |
| 2387 | 490 | 100 | 1 | 1 | 2022-09-01 14:55:05 | Online Event Registration: 2022 Annual Meeting | 1st, 2nd or 3rd Attendee - 1 | 0 | 1 | 0.00 | 2386 | NULL | USD | NULL | NULL | NULL | NULL | NULL |
| 2388 | 1926 | 100 | 1 | 1 | 2022-09-01 14:55:05 | Online Event Registration: 2022 Annual Meeting | 1st, 2nd or 3rd Attendee - 1 | 0 | 1 | 0.00 | NULL | NULL | USD | NULL | NULL | NULL | NULL | NULL |
+------+------------+----------+-----------+---------+---------------------+------------------------------------------------+---------------------------------------------------------+---------+--------------+------------+------------------+-------------+--------------+-------------+-----------------+---------+-----------+---------------------------+
```
```
Sep 01 14:55:05 [warning] Deprecated function CRM_Event_Form_Registration_Confirm::postProcess, use This line is not logically reachable..
CRM_Core_Error::deprecatedFunctionWarning
CRM_Event_Form_Registration_Confirm::postProcess
CRM_Core_Form::mainProcess
CRM_Core_StateMachine::perform
Array
(
[civi.tag] => deprecated
)
Sep 01 14:55:05 [error]
$Fatal Error Details = array:3 [
"message" => "Cannot find participant ID"
"code" => null
"exception" => CRM_Core_Exception {#9916
-errorData: array:1 [
"error_code" => 0
]
#cause: null
-_trace: null
#message: "Cannot find participant ID"
#code: 0
#file: "/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Event/BAO/Event.php"
#line: 1765
trace: {
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Event/BAO/Event.php:1765 {
› if (!$participantId) {
› throw new CRM_Core_Exception(ts('Cannot find participant ID'));
› }
}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php:788 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php:573 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php:144 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php:43 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php:203 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php:103 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php:355 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:319 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:69 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php:36 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/civicrm.php:1199 { …}
/var/www/www.mysite.org/web/wp-content/plugins/civicrm/includes/civicrm.basepage.php:380 { …}
/var/www/www.mysite.org/web/wp-includes/class-wp-hook.php:307 { …}
/var/www/www.mysite.org/web/wp-includes/class-wp-hook.php:331 { …}
/var/www/www.mysite.org/web/wp-includes/plugin.php:524 { …}
/var/www/www.mysite.org/web/wp-includes/class-wp.php:787 { …}
/var/www/www.mysite.org/web/wp-includes/functions.php:1330 { …}
/var/www/www.mysite.org/web/wp-blog-header.php:16 { …}
/var/www/www.mysite.org/web/index.php:17 { …}
}
}
]
```JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3829Barcodes in event badges missing data after updating to CiviCRM 5.45.72022-11-17T21:28:44ZLKuttnerBarcodes in event badges missing data after updating to CiviCRM 5.45.7When printing event badges from event participant search results and selecting _Name Badges - Print_ or clicking _Save and Preview_ in Event Name Badge Layouts, the barcodes in the PDFs created no longer include the contact_id and partic...When printing event badges from event participant search results and selecting _Name Badges - Print_ or clicking _Save and Preview_ in Event Name Badge Layouts, the barcodes in the PDFs created no longer include the contact_id and participant_id. The short barcode that is displayed only includes the hyphen that is usually in between, as specified in line 260 of Badge.php.
`$data['current_value'] = $formattedRow['values']['contact_id'] . '-' . $formattedRow['values']['participant_id'];`
The barcodes were printing fine until recently upgrading from CiviCRM 5.39.4. I see that there were [changes committed](https://github.com/civicrm/civicrm-core/commit/3fd42bb541eaa2861048f1c74b3da537887812b1#diff-b732ac83b0f3272ae759a9163725022788567c65717578b263d294e5ba1c3d7f) on Jan 16 that may be related.
We are on D7 with PHP 7.3.29. Thank you for any assistance you can offer in resolving this.5.54.1https://lab.civicrm.org/dev/core/-/issues/3785participant field group sort order does not reflect configured order2024-03-23T05:03:29Zmagnolia61participant field group sort order does not reflect configured orderOverview
----------------------------------------
We have several custom field groups for participants.
Some for a specific event type, some others for specific participant roles
Current behaviour
---------------------------------------...Overview
----------------------------------------
We have several custom field groups for participants.
Some for a specific event type, some others for specific participant roles
Current behaviour
----------------------------------------
Currently the order in which the custom field groups are displayed while editing of viewing does not reflect the sort order that we selected in the custom field group settings. There is even a difference between viewing and editing a participant the one is ascending, the other descending.
Proposed behaviour
----------------------------------------
The sort order of the custom field groups for participants follows the selected order of the custom field groups. They are not groupes by selector (event type, role, etc), but follow the order that is configured.
Comments
----------------------------------------
I have no clue where to find this, and I'm not really a coder. Probably this is a very small change if you know where to look for.