PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.21.0
GiveWP – Donation Plugin and Fundraising Platform v3.21.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / EventTickets / Actions / ConvertEventTicketsBlockToFieldsApi.php
give / src / EventTickets / Actions Last commit date
AddEventTicketsToDonationConfirmationPageDonationTotal.php 1 year ago AddEventTicketsToDonationConfirmationPageEventTicketDetails.php 2 years ago AttachAttendeeDataToTicketData.php 2 years ago ConvertEventTicketsBlockToFieldsApi.php 1 year ago EnqueueDonationFormScripts.php 2 years ago EnqueueEventDetailsScripts.php 2 years ago EnqueueFormBuilderScripts.php 1 year ago EnqueueListTableScripts.php 2 years ago GenerateTicketsFromPurchaseData.php 1 year ago RegisterEventsMenuItem.php 2 years ago RenderDonationFormBlock.php 2 years ago UpdateDonationConfirmationPageReceiptDonationAmount.php 2 years ago
ConvertEventTicketsBlockToFieldsApi.php
61 lines
1 <?php
2
3 namespace Give\EventTickets\Actions;
4
5 use Give\Donations\Models\Donation;
6 use Give\EventTickets\DataTransferObjects\EventTicketTypeData;
7 use Give\EventTickets\DataTransferObjects\TicketPurchaseData;
8 use Give\EventTickets\Fields\EventTickets;
9 use Give\EventTickets\Repositories\EventRepository;
10 use Give\Framework\Blocks\BlockModel;
11 use Give\Framework\FieldsAPI\Exceptions\EmptyNameException;
12 use Give\Framework\Support\ValueObjects\Money;
13
14 class ConvertEventTicketsBlockToFieldsApi
15 {
16 /**
17 * @since 3.20.0 Set event end date and time.
18 * @since 3.12.2 Remove event ID from field name
19 * @since 3.6.0
20 *
21 * @throws EmptyNameException
22 */
23 public function __invoke(BlockModel $block, int $formId)
24 {
25 return EventTickets::make($block->getShortName())
26 ->tap(function (EventTickets $eventTicketsField) use ($block, $formId) {
27 $eventId = $block->getAttribute('eventId');
28 $event = give(EventRepository::class)->getById($eventId);
29 $ticketTypes = array_map(function ($ticketType) {
30 return EventTicketTypeData::make($ticketType)->toArray();
31 }, $event->ticketTypes()->getAll() ?? []);
32
33 $eventTicketsField
34 ->title($event->title)
35 ->startDateTime($event->startDateTime->format('Y-m-d H:i:s'))
36 ->endDateTime($event->endDateTime->format('Y-m-d H:i:s'))
37 ->description($event->description)
38 ->ticketTypes($ticketTypes);
39
40 $eventTicketsField->scope(function (EventTickets $field, $value, Donation $donation) {
41
42 $ticketPurchaseData = array_map(function ($data) {
43 return TicketPurchaseData::fromFieldValueObject($data);
44 }, json_decode($value));
45
46 array_walk($ticketPurchaseData, new GenerateTicketsFromPurchaseData($donation));
47
48 $donation->amount = array_reduce($ticketPurchaseData, function (Money $carry, TicketPurchaseData $purchaseData) {
49 return $carry->add(
50 $purchaseData->ticketType->price->multiply($purchaseData->quantity)
51 );
52 }, $donation->amount);
53
54 $donation->save();
55 });
56
57 return $eventTicketsField;
58 });
59 }
60 }
61