Answers.Body: <p>It's buried in the comments, but I wanted to put a conclusion here -- in the end it was some forgotten custom PHP code that was the culprit.  Thank you Pradeep for the suggestion, sorry I couldn't give you the bounty!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-03-03T12:33:53.573Z
Answers.LastActivityDate: 2024-03-03T12:33:53.573Z
Answers.UserDisplayName: minbori
Answers.Body: <p>Attempted to replicate on dmaster.</p>
  <p><a href="https://dmaster.demo.civicrm.org/civicrm/contact/view/participant?reset=1&amp;action=update&amp;id=42&amp;cid=77" rel="nofollow noreferrer">https://dmaster.demo.civicrm.org/civicrm/contact/view/participant?reset=1&amp;action=update&amp;id=42&amp;cid=77</a></p>
  <p><a href="https://i.sstatic.net/jcqjf.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/jcqjf.png" alt="enter image description here" /></a></p>
  <p>Click through to change selection gives me this url</p>
  <p><a href="https://dmaster.demo.civicrm.org/civicrm/event/participant/feeselection?reset=1&amp;id=42&amp;cid=77&amp;action=update" rel="nofollow noreferrer">https://dmaster.demo.civicrm.org/civicrm/event/participant/feeselection?reset=1&amp;id=42&amp;cid=77&amp;action=update</a></p>
  <p>and this screen</p>
  <p><a href="https://i.sstatic.net/9czfv.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/9czfv.png" alt="enter image description here" /></a></p>
  <p>is there anything about what I have done that is incorrect, as currently it seems like it does deliver the expected outcome</p>
  <p>if the problem on your site cannot be replicated on eg dmaster or one of the other demo sites then perhaps worth using Inspect to see if you can see any console errors</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T08:25:13.943Z
Answers.Text: Yes, that is exactly the procedure I use on my instance. This one used to in the past but somehow doesn't now. Clicking through the change selection button gives me the expected URL (https://DOMAIN.org/administrator/?option=com_civicrm&task=civicrm/event/participant/feeselection&reset=1&id=3499&cid=315&action=update), but the page that is delivered is just missing the middle section (there aren't even any empty HTML tags marking its absense).  I'm just not even sure where to start troublehshooting this -- no errors in console, nothing in logs.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T08:25:36.713Z
Answers.Text: FYI I've also tried to reproduce on the Joomla demo, but it seems to be currently offline.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T08:49:29.450Z
Answers.Text: Further analysis:  I've tested this on another Joomla instance I manage and it's working fine. And I've been able to compare the HTML produced for both screens.  In the broken version, the HTML element fieldset#priceset.priceset-group that should exist between the table.form-layout containing the Participant block and the fieldset#email-receipt block simply isn't there.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T08:52:20.497Z
Answers.Text: I thought it might be a permissions issue, but I'm testing this with the super admin and ALL CiviCRM CMS permissions are granted. There aren't any Civi ACL permissions.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T09:12:39.763Z
Answers.Text: Replace the file /administrator/components/com_civicrm/civicrm/templates/CRM/Event/Form/ParticipantFeeSelection.tpl in your non-working installation with the same file from the working installation.
Answers.UserDisplayName: Guitarman
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T10:40:11.250Z
Answers.Text: Great idea Guitarman....unfortunately same behavior with the ParticipantFeeSelection.tpl from the working install :-( It seems that template is just not being called.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T12:19:03.657Z
Answers.Text: Ok, then the .tpl-file should be complete. Then I'd propose to replace the following files with the ones from your working installation:  /administrator/componente/com_civicrm/civicrm/CRM/Event/Form/ParticipantFeeSelection.php and under the same path the file Participant.php
  If this still doesn't help, the block could be hidden via custom CSS?!
Answers.UserDisplayName: Guitarman
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T19:20:32.343Z
Answers.Text: have any changes been made to the price set used for the event since they booked?
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-22T08:31:54.690Z
Answers.Text: Ah good question petednz, yes I think that's possible -- but I believe items have only been disabled. Would that have an effect?
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-22T08:42:44.350Z
Answers.Text: Ah I think I see where you're going with this -- line 112 of ParticipantFeeSelection.tpl tests {if $priceSet.fields} to determine if the fieldset#priceset block is displayed.  And obviously that test is failing, but why?
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-22T08:52:52.923Z
Answers.Text: There is definitely a price set assigned to the event, the same price set it's had since the beginning of registration.
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-22T12:33:32.157Z
Answers.Text: So I enabled debugging on the broken system and a working one and compared the Smarty Debug output for the request https://domain.org/administrator/?option=com_civicrm&task=civicrm/event/participant/feeselection&reset=1&id=xx&cid=xx&action=update.  Sure enough, the $priceSet variable exists in the working system output, but is absent in the broken one.  Any ideas why is it being excluded?
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-22T13:00:51.873Z
Answers.Text: UPDATE: it seems this functionality is essentially broken in this install.  I created a brand new event and a brand new price set, and the Change Selections function STILL excludes the $priceSet.fields.  So it doesn't seem to be a price-set specific issue.  Any ideas where to look now?
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-26T08:03:33.450Z
Answers.Text: Did you replace the files /administrator/components/com_civicrm/civicrm/CRM/Event/Form/ParticipantFeeSelection.php and Participant.php with the ones from the working installation as suggested?
Answers.UserDisplayName: Guitarman
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-26T08:09:38.707Z
Answers.Text: I didn't, Guitarman, as I was able to find the answer in some old custom PHP code that had not been removed.  But thank you for your help!
Answers.UserDisplayName: minbori
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-26T18:40:22.527Z
Answers.Text: "it seems this functionality is essentially broken in this install" - are you saying this can be replicated on one of the 'master' sites, eg dmaster.demo.civicrm.org
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-21T02:39:39.500Z
Answers.LastActivityDate: 2024-02-21T02:39:39.500Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>we've just set up our first event in a year and I've just realized it's not possible to change the selections of any participant in the admin backend.</p>
  <p>The registration process itself works fine. Participants register through a CiviEvent online registration form in the frontend. But making backend changes to existing registrations isn't possible.</p>
  <p>I can view or edit the participant record, and there is a &quot;Change selections&quot; button where I expect it. But when the &quot;Change Selections&quot; is clicked, the &quot;Change Registration Selections&quot; window opens as expected, but there simply is no list of other options shown.  So there are no options to change or select.  The window shows the current selections, then goes right to &quot;Payment Confirmation&quot; section. See below:</p>
  <p><a href="https://i.sstatic.net/Q8EDY.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/Q8EDY.png" alt="enter image description here" /></a></p>
  <p>There are no errors in the browser console, and no errors in the ConfigDebug log.  The functionality simply isn't there.</p>
  <p>As it's been a while since our last event, and I have made several upgrades since last time, I have no idea when this functionality disappeared; it was working for our event in March 2023. I was hoping this was a version issue, so I've just upgraded to Civi 5.70.0.  But the issue still persists.</p>
  <p>System info:
  Joomla 3.10
  CiviCRM both 5.66.1 and 5.70.0</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-20T21:51:06.490Z
Comments.Text: Can you reproduce the problem on https://dmaster.demo.civicrm.org/ ?
Comments.UserDisplayName: Aidan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-21T08:27:00.347Z
Comments.Text: No, that works fine as petednz mentions below.  I wanted to try on the Joomla demo but that seems to be offline :-(
Comments.UserDisplayName: minbori
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-23T15:12:27.363Z
Comments.Text: Do you have custom tpl or php override or any extension related to priceset/lineitem/participants etc?
Comments.UserDisplayName: Pradeep Nayak
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-24T15:45:23.237Z
Comments.Text: PRADEEP! I think you may have just saved my life.  I had thought about the extensions and had tested with them deactivated.  But I had forgotten about some old custom PHP code.  Removed it, and it seems things are working again!!!!  Would you like to put this in the form of an answer so I can give you the bounty?
Comments.UserDisplayName: minbori
Tags: <civievent><participants>
Title: unable to change selections for participant registrations
ThreadText: # unable to change selections for participant registrations
  
  (Asked by: username_0 on 2024-02-20)
  
  we've just set up our first event in a year and I've just realized it's not possible to change the selections of any participant in the admin backend.
  
  The registration process itself works fine. Participants register through a CiviEvent online registration form in the frontend. But making backend changes to existing registrations isn't possible.
  
  I can view or edit the participant record, and there is a "Change selections" button where I expect it. But when the "Change Selections" is clicked, the "Change Registration Selections" window opens as expected, but there simply is no list of other options shown. So there are no options to change or select. The window shows the current selections, then goes right to "Payment Confirmation" section. See below:
  
  [![enter image description here](https://i.sstatic.net/Q8EDY.png)](https://i.sstatic.net/Q8EDY.png)
  
  There are no errors in the browser console, and no errors in the ConfigDebug log. The functionality simply isn't there.
  
  As it's been a while since our last event, and I have made several upgrades since last time, I have no idea when this functionality disappeared; it was working for our event in March 2023. I was hoping this was a version issue, so I've just upgraded to Civi 5.70.0. But the issue still persists.
  
  System info:
  Joomla 3.10
  CiviCRM both 5.66.1 and 5.70.0
  
  **Tags:** civievent, participants
  
  > **Comments:**
  > **username_1**: Can you reproduce the problem on https://dmaster.demo.civicrm.org/ ?  
  > **username_0**: No, that works fine as petednz mentions below.  I wanted to try on the Joomla demo but that seems to be offline :-(  
  > **username_2**: Do you have custom tpl or php override or any extension related to priceset/lineitem/participants etc?  
  > **username_0**: PRADEEP! I think you may have just saved my life.  I had thought about the extensions and had tested with them deactivated.  But I had forgotten about some old custom PHP code.  Removed it, and it seems things are working again!!!!  Would you like to put this in the form of an answer so I can give you the bounty?  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_0 on 2024-03-03. Score: 2 | Accepted answer
  
  It's buried in the comments, but I wanted to put a conclusion here -- in the end it was some forgotten custom PHP code that was the culprit. Thank you Pradeep for the suggestion, sorry I couldn't give you the bounty!
  
  
  ---
  
  ### Answer by username_3 on 2024-02-21. Score: 1
  
  Attempted to replicate on dmaster.
  
  <https://dmaster.demo.civicrm.org/civicrm/contact/view/participant?reset=1&action=update&id=42&cid=77>
  
  [![enter image description here](https://i.sstatic.net/jcqjf.png)](https://i.sstatic.net/jcqjf.png)
  
  Click through to change selection gives me this url
  
  <https://dmaster.demo.civicrm.org/civicrm/event/participant/feeselection?reset=1&id=42&cid=77&action=update>
  
  and this screen
  
  [![enter image description here](https://i.sstatic.net/9czfv.png)](https://i.sstatic.net/9czfv.png)
  
  is there anything about what I have done that is incorrect, as currently it seems like it does deliver the expected outcome
  
  if the problem on your site cannot be replicated on eg dmaster or one of the other demo sites then perhaps worth using Inspect to see if you can see any console errors
  
  > **Comments:**
  > **username_0**: Yes, that is exactly the procedure I use on my instance. This one used to in the past but somehow doesn't now. Clicking through the change selection button gives me the expected URL (https://DOMAIN.org/administrator/?option=com_civicrm&task=civicrm/event/participant/feeselection&reset=1&id=3499&cid=315&action=update), but the page that is delivered is just missing the middle section (there aren't even any empty HTML tags marking its absense).  I'm just not even sure where to start troublehshooting this -- no errors in console, nothing in logs.  
  > **username_0**: FYI I've also tried to reproduce on the Joomla demo, but it seems to be currently offline.  
  > **username_0**: Further analysis:  I've tested this on another Joomla instance I manage and it's working fine. And I've been able to compare the HTML produced for both screens.  In the broken version, the HTML element fieldset#priceset.priceset-group that should exist between the table.form-layout containing the Participant block and the fieldset#email-receipt block simply isn't there.  
  > **username_0**: I thought it might be a permissions issue, but I'm testing this with the super admin and ALL CiviCRM CMS permissions are granted. There aren't any Civi ACL permissions.  
  > **username_4**: Replace the file /administrator/components/com_civicrm/civicrm/templates/CRM/Event/Form/ParticipantFeeSelection.tpl in your non-working installation with the same file from the working installation.  
  > **username_0**: Great idea username_4....unfortunately same behavior with the ParticipantFeeSelection.tpl from the working install :-( It seems that template is just not being called.  
  > **username_4**: Ok, then the .tpl-file should be complete. Then I'd propose to replace the following files with the ones from your working installation:  /administrator/componente/com_civicrm/civicrm/CRM/Event/Form/ParticipantFeeSelection.php and under the same path the file Participant.php If this still doesn't help, the block could be hidden via custom CSS?!  
  > **username_3**: have any changes been made to the price set used for the event since they booked?  
  > **username_0**: Ah good question petednz, yes I think that's possible -- but I believe items have only been disabled. Would that have an effect?  
  > **username_0**: Ah I think I see where you're going with this -- line 112 of ParticipantFeeSelection.tpl tests {if $priceSet.fields} to determine if the fieldset#priceset block is displayed.  And obviously that test is failing, but why?  
  > **username_0**: There is definitely a price set assigned to the event, the same price set it's had since the beginning of registration.  
  > **username_0**: So I enabled debugging on the broken system and a working one and compared the Smarty Debug output for the request https://domain.org/administrator/?option=com_civicrm&task=civicrm/event/participant/feeselection&reset=1&id=xx&cid=xx&action=update.  Sure enough, the $priceSet variable exists in the working system output, but is absent in the broken one.  Any ideas why is it being excluded?  
  > **username_0**: UPDATE: it seems this functionality is essentially broken in this install.  I created a brand new event and a brand new price set, and the Change Selections function STILL excludes the $priceSet.fields.  So it doesn't seem to be a price-set specific issue.  Any ideas where to look now?  
  > **username_4**: Did you replace the files /administrator/components/com_civicrm/civicrm/CRM/Event/Form/ParticipantFeeSelection.php and Participant.php with the ones from the working installation as suggested?  
  > **username_0**: I didn't, username_4, as I was able to find the answer in some old custom PHP code that had not been removed.  But thank you for your help!  
  > **username_3**: "it seems this functionality is essentially broken in this install" - are you saying this can be replicated on one of the 'master' sites, eg dmaster.demo.civicrm.org  
  
  ---
  
  