File Editor
Directories:
.. (Back)
attendees
Files:
content.php
mini-cart.php
Create New File
Create
Edit File: content.php
<?php /** * This template renders the registration/purchase attendee fields * * Override this template in your own theme by creating a file at: * [your-theme]/tribe/tickets/registration-js/content.php * * @link https://evnt.is/1amp Help article for RSVP & Ticket template files. * * @since 4.11.0 * @since 4.11.3.1 Fix handling where $provider is an object. * @since 4.12.0 Prevent potential errors when $provider_obj is not valid. * @since 4.12.1 Set the notice as hidden by default. The JavaScript will show if needed. * @since 4.12.3 Update for getting ticket provider now returning instance or False. Remove duplicate array property. * Retrieve $is_meta_up_to_date in a manner consistent with other template variables. Moved `novalidate` from * div to form, as it used to be. Implement short array syntax. * @since 5.0.3 Add `event-tickets` class to the wrapper. * @since 5.0.4 Remove extraneous "Save and checkout" heading. * * @version 5.0.4 * * @var Tribe__Tickets__Attendee_Registration__View $this */ $provider = $this->get( 'provider' ) ?: tribe_get_request_var( tribe_tickets_get_provider_query_slug() ); $events = (array) $this->get( 'events' ); /** @var Tribe__Tickets_Plus__Meta $meta */ $meta = tribe( 'tickets-plus.meta' ); if ( empty( $provider ) ) { $event_keys = array_keys( $events ); $event_key = array_shift( $event_keys ); $provider_obj = Tribe__Tickets__Tickets::get_event_ticket_provider_object( $event_key ); $provider = $provider_obj->attendee_object; } elseif ( is_string( $provider ) ) { /** @var Tribe__Tickets__Attendee_Registration__View $reg_view */ $reg_view = tribe( 'tickets.attendee_registration.view' ); $provider_obj = $reg_view->get_cart_provider( $provider ); $provider = $provider_obj->attendee_object; } elseif ( $provider instanceof Tribe__Tickets__Tickets ) { $provider_obj = $provider; $provider = $provider_obj->attendee_object; } if ( method_exists( $provider_obj, 'get_checkout_url' ) ) { $checkout_url = $provider_obj->get_checkout_url(); } else { $checkout_url = ''; } $non_meta_count = 0; $provider_class = $this->get_form_class( $provider ); $all_tickets = []; $classes = [ 'tribe-common', 'event-tickets', 'tribe-tickets__registration', ]; ?> <div <?php tribe_classes( $classes ); ?> data-provider="<?php echo esc_attr( $provider ); ?>"> <?php /** * Before the output, whether $events is empty. * * @since 4.11.0 * * @param string $provider The 'provider' $_REQUEST var. * @param string $provider_class The class string or empty string if ticket provider is not found. * @param array $events The array of events, which might be empty. */ do_action( 'tribe_tickets_registration_content_before_all_events', $provider, $provider_class, $events ); ?> <div class="tribe-common-h8 tribe-common-h--alt tribe-tickets__registration__actions"> <?php $this->template( 'registration/button-cart', [ 'provider' => $provider ] ); ?> </div> <h1 class="tribe-common-h2 tribe-common-h1--min-medium tribe-common-h--alt tribe-tickets__registration__page-title"> <?php echo esc_html( tribe( 'tickets.attendee_registration.template' )->get_page_title() ); ?> </h1> <form method="post" id="tribe-tickets__registration__form" action="<?php echo esc_url( $checkout_url ); ?>" data-provider="<?php echo esc_attr( $provider ); ?>" novalidate > <div class="tribe-tickets__registration__grid"> <?php $this->template( 'components/notice', [ 'id' => 'tribe-tickets__notice__attendee-registration', 'notice_classes' => [ 'tribe-tickets__notice--error', 'tribe-tickets__validation-notice', ], 'content' => sprintf( esc_html_x( 'You have %s ticket(s) with a field that requires information.', 'Note about missing required fields, %s is the html-wrapped number of tickets.', 'event-tickets' ), '<span class="tribe-tickets__notice--error__count">1</span>' ), ] ); $args = [ 'cart_url' => $this->get( 'cart_url' ), 'events' => $events, 'has_tickets_on_sale' => $this->get( 'has_tickets_on_sale' ), 'is_sale_past' => $this->get( 'is_sale_past' ), 'post_id' => $this->get( 'post_id' ), 'provider_id' => $this->get( 'provider_id' ), 'provider' => $provider, 'tickets_on_sale' => $this->get( 'tickets_on_sale' ), 'tickets' => $this->get( 'tickets', [] ), ]; $this->template( 'registration-js/mini-cart', $args ); ?> <div class="tribe-tickets__registration__content"> <input type="hidden" name="tribe_tickets_saving_attendees" value="1" /> <input type="hidden" name="tribe_tickets_ar" value="1" /> <input type="hidden" name="tribe_tickets_ar_page" value="1" /> <input type="hidden" name="tribe_tickets_ar_data" value="" id="tribe_tickets_ar_data" /> <input type="hidden" name="tribe_tickets_provider" value="<?php echo esc_attr( $provider ); ?>" /> <?php foreach ( $events as $event_id => $tickets ) : ?> <?php $providers = wp_list_pluck( $tickets, 'provider' ); $providers_arr = array_unique( wp_list_pluck( $providers, 'attendee_object' ) ); if ( empty( $provider_class ) && ! empty( $providers_arr[ $event_id ] ) ) : $provider_class = 'tribe-tickets__item__attendee__fields__form--' . $providers_arr[ $event_id ]; endif; $has_tpp = Tribe__Tickets__Commerce__PayPal__Main::ATTENDEE_OBJECT === $provider || in_array( Tribe__Tickets__Commerce__PayPal__Main::ATTENDEE_OBJECT, $providers_arr, true ); ?> <div class="tribe-tickets__registration__event" data-event-id="<?php echo esc_attr( $event_id ); ?>" data-is-meta-up-to-date="<?php echo absint( $this->get( 'is_meta_up_to_date' ) ); ?>" > <?php $this->template( 'registration/summary/content', [ 'event_id' => $event_id, 'tickets' => $tickets ] ); ?> <div class="tribe-tickets__item__attendee__fields"> <?php $this->template( 'registration-js/attendees/error', [ 'event_id' => $event_id, 'tickets' => $tickets ] ); ?> <div class="tribe-tickets__item__attendee__fields__form <?php echo sanitize_html_class( $provider_class ); ?> tribe-validation" name="event<?php echo esc_attr( $event_id ); ?>" > <?php foreach ( $tickets as $ticket ) : $all_tickets[] = $ticket; // Only include tickets with meta. if ( ! $meta->ticket_has_meta( $ticket['id'] ) ) { $non_meta_count++; continue; } ?> <div class="tribe-tickets__item__attendee__fields__container" data-ticket-id="<?php echo esc_attr( $ticket['id'] ); ?>"> <h3 class="tribe-common-h5 tribe-common-h5--min-medium tribe-common-h--alt tribe-ticket__heading"> <?php echo esc_html( get_the_title( $ticket['id'] ) ); ?> </h3> </div> <?php endforeach; ?> </div> </div> </div> <?php $this->template( 'registration-js/attendees/content', [ 'event_id' => $event_id, 'tickets' => $tickets, 'provider' => $providers[0] ] ); ?> <?php endforeach; ?> </div> </div> <div class="tribe-tickets__registration__footer"> <?php $notice_classes = [ 'tribe-tickets__notice--non-ar', 'tribe-common-a11y-hidden', // Set as hidden. JavaScript will show it if needed. ]; $this->template( 'components/notice', [ 'notice_classes' => $notice_classes, 'content' => sprintf( esc_html_x( 'There are %s other tickets in your cart that do not require attendee information.', 'Note that there are more tickets in the cart, %s is the html-wrapped number.', 'event-tickets' ), '<span id="tribe-tickets__non-ar-count">' . absint( $non_meta_count ) . '</span>' ) ] ); ?> <?php $this->template( 'blocks/tickets/registration/attendee/submit' ); ?> </div> </form> </div> <?php include Tribe__Tickets__Templates::get_template_hierarchy( 'components/loader.php' ); ?>
Save Changes
Rename File
Rename