HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/salamatk/www/wp-content/plugins/woocommerce/src/Internal/ProductFeed/Feed/WalkerProgress.php
<?php
/**
 * Walker Progress class.
 *
 * @package Automattic\WooCommerce\Internal\ProductFeed
 */

declare(strict_types=1);

namespace Automattic\WooCommerce\Internal\ProductFeed\Feed;

/**
 * Simple class that tracks/indicates the progress of a walker.
 *
 * @since 10.5.0
 */
final class WalkerProgress {
	/**
	 * Total number of items to process.
	 *
	 * @var int
	 */
	public int $total_count;

	/**
	 * Total number of batches to process.
	 *
	 * @var int
	 */
	public int $total_batch_count;

	/**
	 * Number of items processed so far.
	 *
	 * @var int
	 */
	public int $processed_items = 0;

	/**
	 * Number of batches processed so far.
	 *
	 * @var int
	 */
	public int $processed_batches = 0;

	/**
	 * Creates a WalkerProgress instance from a WooCommerce products query result.
	 *
	 * @since 10.5.0
	 *
	 * @param \stdClass $result The result object from wc_get_products() with total and max_num_pages properties.
	 * @return self
	 */
	public static function from_wc_get_products_result( \stdClass $result ): self {
		$progress = new self();

		$progress->total_count       = $result->total;
		$progress->total_batch_count = $result->max_num_pages;
		$progress->processed_items   = 0;
		$progress->processed_batches = 0;

		return $progress;
	}
}