Tribe__Repository::delete( $return_promise = false )
{@inheritdoc}
Source
File: src/Tribe/Repository.php
public function delete( $return_promise = false ) {
$to_delete = $this->get_ids();
if ( empty( $to_delete ) ) {
return $return_promise ? new Tribe__Promise() : array();
}
/**
* Filters the post delete operation allowing third party code to bail out of
* the process completely.
*
* @since 4.9.5
*
* @param array|null $deleted An array containing the the IDs of the deleted posts.
* @param self $this This repository instance.
*/
$deleted = apply_filters( "tribe_repository_{$this->filter_name}_delete", null, $to_delete );
if ( null !== $deleted ) {
return $deleted;
}
if (
$this->is_background_delete_active( $to_delete )
&& count( $to_delete ) > $this->get_background_delete_threshold( $to_delete )
) {
return $this->async_delete( $to_delete, $return_promise );
}
$delete_callback = $this->get_delete_callback( $to_delete );
foreach ( $to_delete as $id ) {
$done = $delete_callback( $id );
if ( empty( $done ) ) {
tribe( 'logger' )->log(
__( 'Could not delete post with ID ' . $id, 'tribe-common' ),
Tribe__Log::WARNING,
$this->filter_name
);
continue;
}
$deleted[] = $id;
}
return $return_promise ? new Tribe__Promise() : $deleted;
}