Image
Class Image
Source
File: src/Tribe/Import/Image.php
class Image { /** * Attach hooks * * @since TBD */ public function hook() { add_filter( 'tribe_aggregator_import_event_image', [ $this, 'process_images' ], 10, 3 ); add_filter( 'tribe_process_handlers', [ $this, 'register_handler' ] ); } /** * Prevent to process images on sync way, capture the filter and process eventbrite images on the background. * * @since TBD * * @param $import_event_image bool If the import should be short circuit. * @param $event array An array representing the inserted event into the site. * @param $activity Tribe__Events__Aggregator__Record__Activity Keep track of the activity from this import. * * @return bool If the import should be short circuit or not. */ public function process_images( $import_event_image, $event, $activity ) { // This image is filter for other plugin or source don't act on that. if ( ! $import_event_image ) { return $import_event_image; } // No image or event is present for this record. if ( empty( $event['ID'] ) || empty( $event['image'] ) ) { return $import_event_image; } // This is not an eventbrite event so nothing to do here. if ( empty( $event['EventBriteID'] ) ) { return $import_event_image; } $image_url = $event['image']; if ( is_object( $event['image'] ) ) { if ( $event['image']->id ) { $activity->add( 'attachment', 'scheduled', $event['ID'] ); ( new Featured_Image() )->set_image_id( $event['image']->id )->set_event_id( $event['ID'] )->dispatch(); } else { do_action( 'tribe_log', 'debug', __METHOD__, [ 'message' => 'A valid image ID was not defined', 'event' => $event, ] ); } return false; } $activity->add( 'attachment', 'scheduled', $event['ID'] ); $post_thumbnail_process = new Tribe__Process__Post_Thumbnail_Setter(); $post_thumbnail_process->set_post_id( $event['ID'] ); $post_thumbnail_process->set_post_thumbnail( $image_url ); $post_thumbnail_process->dispatch(); // Don't process the images we are taking care of those in the background. return false; } /** * Register the handler to process Event Thumbnail creation on the background- * * @since TBD * * @param $handlers array An array with all the different handlers for background processing. * * @return mixed */ public function register_handler( $handlers ) { $handlers[] = Featured_Image::class; return $handlers; } }
Changelog
Version | Description |
---|---|
4.6.5 | Introduced. |
Methods
- hook — Attach hooks
- process_images — Prevent to process images on sync way, capture the filter and process eventbrite images on the background.
- register_handler — Register the handler to process Event Thumbnail creation on the background-