Automattic\WooCommerce\Internal\StockNotifications\AsyncTasks
CycleStateService::get_or_initialize_cycle_state
Parse the cycle state for a product.
Метод класса: CycleStateService{}
Хуков нет.
Возвращает
array.
Использование
$CycleStateService = new CycleStateService(); $CycleStateService->get_or_initialize_cycle_state( $product_id ): array;
- $product_id(int) (обязательный)
- The product ID.
Код CycleStateService::get_or_initialize_cycle_state() CycleStateService::get or initialize cycle state WC 11.2.2
public function get_or_initialize_cycle_state( int $product_id ): array {
if ( $product_id <= 0 ) {
throw new \Exception( 'Product ID is required.' );
}
$default_state = array(
'cycle_start_time' => time(),
'product_ids' => array( $product_id ),
'total_count' => 0,
'skipped_count' => 0,
'sent_count' => 0,
'failed_count' => 0,
'duration' => 0,
);
$cycle_state = $this->get_raw_cycle_state( $product_id );
if ( empty( $cycle_state ) ) {
return $default_state;
}
if ( array_diff_key( $default_state, $cycle_state ) || empty( $cycle_state['cycle_start_time'] ) || ! is_numeric( $cycle_state['cycle_start_time'] ) ) {
throw new \Exception( 'Invalid cycle state.' );
}
$cycle_state = wp_parse_args( $cycle_state, $default_state );
return $cycle_state;
}