Current Path : /storage/v11800/newruvamithai/public_html/wp-content/plugins/google-listings-and-ads/src/Jobs/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/newruvamithai/public_html/wp-content/plugins/google-listings-and-ads/src/Jobs/DeleteAllProducts.php |
<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Jobs;
use Automattic\WooCommerce\GoogleListingsAndAds\Product\ProductSyncerException;
defined( 'ABSPATH' ) || exit;
/**
* Class DeleteAllProducts
*
* Deletes all WooCommerce products from Google Merchant Center.
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Jobs
*/
class DeleteAllProducts extends AbstractProductSyncerBatchedJob {
/**
* Get the name of the job.
*
* @return string
*/
public function get_name(): string {
return 'delete_all_products';
}
/**
* Get a single batch of items.
*
* If no items are returned the job will stop.
*
* @param int $batch_number The batch number increments for each new batch in the job cycle.
*
* @return int[]
*/
protected function get_batch( int $batch_number ): array {
return $this->product_repository->find_synced_product_ids( [], $this->get_batch_size(), $this->get_query_offset( $batch_number ) );
}
/**
* Process batch items.
*
* @param int[] $items A single batch of WooCommerce product IDs from the get_batch() method.
*
* @throws ProductSyncerException If an error occurs. The exception will be logged by ActionScheduler.
*/
protected function process_items( array $items ) {
$products = $this->product_repository->find_by_ids( $items );
$product_entries = $this->batch_product_helper->generate_delete_request_entries( $products );
$this->product_syncer->delete_by_batch_requests( $product_entries );
}
/**
* Called when the job is completed.
*
* @since 2.6.4
*
* @param int $final_batch_number The final batch number when the job was completed.
* If equal to 1 then no items were processed by the job.
*/
protected function handle_complete( int $final_batch_number ) {
$this->merchant_statuses->maybe_refresh_status_data( true );
}
}