Tribe__Events__Aggregator__Tabs__Scheduled::action_run_import( array $records = array() )
Run Imports for a given set of Records
Contents
Parameters
- $records
-
(array) (Optional)
Default value: array()
Return
(array)
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 );
}
Changelog
| Version | Description |
|---|---|
| 4.6.18 | Introduced. |