# give/4.18.0/src/EventTickets/Actions/AddEventTicketsToDonationConfirmationPageEventTicketDetails.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 48 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/src/EventTickets/Actions/AddEventTicketsToDonationConfirmationPageEventTicketDetails.php
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/src/EventTickets/Actions/AddEventTicketsToDonationConfirmationPageEventTicketDetails.php
- Modified: 2024-03-13T21:54:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.18.0/code/src/EventTickets/Actions/AddEventTicketsToDonationConfirmationPageEventTicketDetails.php#L10-L20`.

```php
<?php

namespace Give\EventTickets\Actions;

use Give\EventTickets\Repositories\EventTicketRepository;
use Give\Framework\Receipts\DonationReceipt;
use Give\Framework\Receipts\Properties\ReceiptDetail;

/**
 * @since 3.6.0
 */
class AddEventTicketsToDonationConfirmationPageEventTicketDetails
{
    /**
     * @since 3.6.0
     */
    public function __invoke(DonationReceipt $receipt): void
    {
        $eventTickets = give(EventTicketRepository::class)->queryByDonationId($receipt->donation->id)->getAll();

        if (empty($eventTickets)) {
            return;
        }

        $event = $eventTickets[0]->event()->get();
        $ticketTypes = [];

        foreach ($eventTickets as $eventTicket) {
            $ticketType = $eventTicket->ticketType()->get();
            $ticketTypeId = $ticketType->id;

            if (isset($ticketTypes[$ticketTypeId])) {
                $ticketTypes[$ticketTypeId]['quantity'] += 1;
            } else {
                $ticketTypes[$ticketTypeId] = [
                    'title' => $ticketType->title,
                    'quantity' => 1,
                ];
            }
        }

        foreach ($ticketTypes as $ticketType) {
            $detailString = sprintf(__('%s - %s', 'give'), $event->title, $ticketType['title']);
            $receipt->eventTicketsDetails->addDetail(new ReceiptDetail($detailString, $ticketType['quantity']));
        }
    }
}

```
