Tribe__Tickets_Plus__Privacy::edd_exporter( $email_address, int $page = 1 )

Exporter for Events Ticket Plus EDD Attendee


Parameters

$email_address

(Required)

$page

(int) (Optional)

Default value: 1


Top ↑

Return

(array)


Top ↑

Source

File: src/Tribe/Privacy.php

	public function edd_exporter( $email_address, $page = 1 ) {
		$number = 500; // Limit us to avoid timing out
		$page   = (int) $page;

		// bail if we don't have EDD
		if ( ! class_exists( 'Easy_Digital_Downloads' ) ) {
			return array( 'data' => array(), 'done' => true );
		}

		// Get the EDD Orders for that email
		$orders = new WP_Query( array(
			'post_type'      => 'edd_payment',
			'meta_key'       => '_edd_payment_user_email',
			'meta_value'     => $email_address,
			'page'           => $page,
			'posts_per_page' => $number,
			'orderby'        => 'ID',
			'order'          => 'ASC',
		) );

		foreach ( $orders->posts as $order ) {

			// Find EDD tickets for that order
			$eddtickets = new WP_Query( array(
				'post_type'      => 'tribe_eddticket',
				'meta_key'       => '_tribe_eddticket_order',
				'meta_value'     => $order->ID,
				'posts_per_page' => -1,
			) );

			foreach ( $eddtickets->posts as $ticket ) {

				// Check if the ticket has meta fields
				$ticket_meta = get_post_meta( $ticket->ID, '_tribe_tickets_meta', true );
				$product_id  = get_post_meta( $ticket->ID, '_tribe_eddticket_product', true );

				// if it doesn't, we continue with th next one
				if ( '' === $ticket_meta ) {
					continue;
				}

				$item_id = "tribe_eddticket_attendees-{$ticket->ID}";

				// Set our own group for EDD ticket attendees
				$group_id = 'tribe-eddticket-attendees';

				// Set a label for the group
				$group_label = __( 'EDD Attendee Data', 'event-tickets-plus' );

				$data = array();

				// Get the data they inserted
				$data = $this->add_meta_fields( $data, $ticket, $product_id );

				/**
				 * Allow filtering for the EDD Ticket attendee data export.
				 *
				 * @since 4.7.6
				 * @param array  $data      The data array to export
				 * @param object $attendee  The attendee object
				 */
				$data = apply_filters( 'tribe_tickets_personal_data_export_eddticket', $data, $ticket );

				$export_items[] = array(
					'group_id'    => $group_id,
					'group_label' => $group_label,
					'item_id'     => $item_id,
					'data'        => $data,
				);

			}
		}

		// Tell core if we have more orders to work on still
		$done = count( $orders->posts ) < $number;

		return array(
			'data' => $export_items,
			'done' => $done,
		);
	}

Top ↑

Changelog

Changelog
Version Description
4.7.6 Introduced.