WC_Admin_Marketplace_Promotions::filter_out_inactive_promotions
Find promotions that are still active – they have a date range that includes the current date.
Метод класса: WC_Admin_Marketplace_Promotions{}
Хуков нет.
Возвращает
Массив.
Использование
$result = WC_Admin_Marketplace_Promotions::filter_out_inactive_promotions( $promotions );
- $promotions(?array)
- Data about current promotions.
По умолчанию: array()
Код WC_Admin_Marketplace_Promotions::filter_out_inactive_promotions() WC Admin Marketplace Promotions::filter out inactive promotions WC 10.3.4
private static function filter_out_inactive_promotions( $promotions = array() ) {
$now_date_time = new DateTime( 'now', new DateTimeZone( 'UTC' ) );
$active_promotions = array();
foreach ( $promotions as $promotion ) {
if ( ! isset( $promotion['date_from_gmt'] ) || ! isset( $promotion['date_to_gmt'] ) ) {
continue;
}
try {
$date_from_gmt = new DateTime( $promotion['date_from_gmt'], new DateTimeZone( 'UTC' ) );
$date_to_gmt = new DateTime( $promotion['date_to_gmt'], new DateTimeZone( 'UTC' ) );
} catch ( \Exception $ex ) {
continue;
}
if ( $now_date_time >= $date_from_gmt && $now_date_time <= $date_to_gmt ) {
$active_promotions[] = $promotion;
}
}
// Sort promotions so the ones starting more recently are at the top.
usort(
$active_promotions,
function ( $a, $b ) {
return $b['date_from_gmt'] <=> $a['date_from_gmt'];
}
);
return $active_promotions;
}