Skip to content

Feature: Add organizer setting to hide the checkout "Copy my details to attendees" control#1218

Open
giuliosmall wants to merge 1 commit into
HiEventsDev:developfrom
giuliosmall:feature/dashboard-toggle-copy-attendee-details
Open

Feature: Add organizer setting to hide the checkout "Copy my details to attendees" control#1218
giuliosmall wants to merge 1 commit into
HiEventsDev:developfrom
giuliosmall:feature/dashboard-toggle-copy-attendee-details

Conversation

@giuliosmall
Copy link
Copy Markdown

@giuliosmall giuliosmall commented Jun 4, 2026

What changes I've made

This adds a new per event boolean setting allow_copy_details_to_all_attendees (default true). At checkout, when there are several attendees, buyers see a "Copy my details to:" control with None, First attendee and All attendees. When an organizer turns this setting off, only the "All attendees" option is removed: buyers can still copy their details to the first attendee, but cannot bulk copy them onto everyone, so the remaining attendees have to be filled in individually. The None and First attendee options, and the single attendee "Copy details to first attendee" checkbox, are unaffected.

Screenshot 2026-06-04 at 20 12 03 Screenshot 2026-06-04 at 20 35 16

The change follows the existing show_marketing_opt_in and allow_attendee_self_edit settings end to end: a migration on event_settings, the generated domain object, the request validation rule, the UpdateEventSettingsDTO (constructor default and createWithDefaults), the full and partial update handlers, the admin and public EventSettingsResource, the frontend EventSettings type, a Switch in the Checkout Settings section, and the checkout CollectInformation component. The public resource exposes the flag so the checkout can read it, with a ?? true fallback so an absent value keeps the current behaviour.

One small follow up: the two new translation strings still need npm run messages:extract && npm run messages:compile to land in the locale catalogs, which I left out since it rewrites all locale files.

Why I've made these changes

Some organizers find that buyers click "All attendees" out of convenience and end up with duplicated or placeholder attendee data that then needs manual cleanup, and some events need every attendee to enter their own real name and email. Copying to just the first attendee is usually fine, since the buyer is normally the first attendee, so this keeps that convenience while letting an organizer switch off the bulk copy. It defaults to true and existing rows are backfilled to true, so every existing event keeps the current behaviour until an organizer opts out. Resolves #1217.

How I've tested these changes

I added backend unit tests covering the validation rule, that the full handler persists the value, that the partial handler keeps the existing value when a PATCH omits the key, and that the public resource exposes the field. I ran the full tests/Unit suite locally on PHP 8.4 and it passes (397 tests, 1079 assertions, 0 failures). The migration mirrors the existing allow_attendee_self_edit one, so the column is added with a true default and existing rows are backfilled on the add column step.

Checklist

  • I have read the contributing guidelines.
  • My code follows the coding standards of the project.
  • I have tested my changes, and they work as expected.
  • I understand that this PR will be closed if I do not follow the contributor guidelines and if this PR template is left unedited.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@giuliosmall
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@giuliosmall giuliosmall force-pushed the feature/dashboard-toggle-copy-attendee-details branch from 228a0a6 to f404eba Compare June 4, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🌟 Make the "Copy my details to attendees" checkout control toggleable per event from the dashboard

1 participant