File: /var/www/vhosts/uyarreklam.com.tr/httpdocs/ResubmitExpiringProducts.php.tar
httpdocs/wp-content/plugins/google-listings-and-ads/src/Jobs/ResubmitExpiringProducts.php 0000644 00000003500 15154712650 0034253 0 ustar 00 var/www/vhosts/uyarreklam.com.tr <?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Jobs;
use Automattic\WooCommerce\GoogleListingsAndAds\Product\ProductSyncerException;
defined( 'ABSPATH' ) || exit;
/**
* Class ResubmitExpiringProducts
*
* Resubmits all WooCommerce products that are nearly expired to Google Merchant Center.
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Jobs
*/
class ResubmitExpiringProducts extends AbstractProductSyncerBatchedJob implements RecurringJobInterface {
/**
* Get the name of the job.
*
* @return string
*/
public function get_name(): string {
return 'resubmit_expiring_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 array
*/
public function get_batch( int $batch_number ): array {
return $this->product_repository->find_expiring_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 );
$this->product_syncer->update( $products );
}
/**
* Return the recurring job's interval in seconds.
*
* @return int
*/
public function get_interval(): int {
return 24 * 60 * 60; // 24 hours
}
/**
* Get the name of an action hook to attach the job's start method to.
*
* @return StartHook
*/
public function get_start_hook(): StartHook {
return new StartHook( "{$this->get_hook_base_name()}start" );
}
}