Tribe__Events__Aggregator__Tabs__Scheduled::action_run_import( array $records = array() )

Run Imports for a given set of Records


Parameters

$records

(array) (Optional)

Default value: array()


Top ↑

Return

(array)


Top ↑

Source

File: src/Tribe/Aggregator/Tabs/Scheduled.php

	public function action_run_import( $records = array() ) {
		$service = tribe( 'events-aggregator.service' );
		$record_obj = Tribe__Events__Aggregator__Records::instance()->get_post_type();
		$records = array_filter( (array) $records, 'is_numeric' );
		$success = array();
		$errors = array();

		foreach ( $records as $record_id ) {
			$record = Tribe__Events__Aggregator__Records::instance()->get_by_post_id( $record_id );

			if ( tribe_is_error( $record ) ) {
				$errors[ $record_id ] = $record;
				continue;
			}

			// if there are no remaining imports for today, log that and skip
			if ( $service->is_over_limit( true ) ) {
				$errors[ $record->id ] = new WP_Error(
					'error:usage-limit-exceeded',
					$service->get_service_message(
						'error:usage-limit-exceeded',
						(array) tribe( 'events-aggregator.main' )->get_daily_limit()
					)
				);
				$record->update_meta( 'last_import_status', 'error:usage-limit-exceeded' );
				continue;
			}

			$child = $record->create_child_record();
			$child->update_meta( 'interactive', true );
			$status = $child->queue_import();

			if ( is_wp_error( $status ) ) {
				$errors[ $record->id ] = $status;
				$record->update_meta( 'last_import_status', 'error:import-failed' );
				continue;
			}

			$record->update_meta( 'last_import_status', 'success:queued' );
			$child->update_meta( 'import_id', $status->data->import_id );

			$child->finalize();
			$child->process_posts( array(), true );

			$success[ $record->id ] = $record;
		}

		return array( $success, $errors );
	}

Top ↑

Changelog

Changelog
Version Description
4.6.18 Introduced.