wc_maybe_schedule_sale_events_on_meta_change()WC 10.8.0

Schedule sale events when sale date meta is added, updated, or deleted.

Hooks into post meta operations so per-product sale events are kept in sync regardless of how the meta is written: WooCommerce CRUD, direct update_post_meta() calls from importers, ERP sync tools, or custom code.

Хуков нет.

Возвращает

null. Ничего (null).

Использование

wc_maybe_schedule_sale_events_on_meta_change( $meta_id, $object_id, $meta_key ): void;
$meta_id(int|int[]) (обязательный)
Meta ID (or array of IDs for delete).
$object_id(int) (обязательный)
Post ID.
$meta_key(строка) (обязательный)
Meta key.

Список изменений

С версии 10.8.0 Введена.

Код wc_maybe_schedule_sale_events_on_meta_change() WC 11.0.1

function wc_maybe_schedule_sale_events_on_meta_change( $meta_id, $object_id, $meta_key ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
	if ( '_sale_price_dates_from' !== $meta_key && '_sale_price_dates_to' !== $meta_key ) {
		return;
	}

	// Prevent duplicate scheduling when a sale handler's save() rewrites dates already in flight.
	if ( doing_action( 'wc_product_start_scheduled_sale' ) || doing_action( 'wc_product_end_scheduled_sale' ) ) {
		return;
	}

	$post_type = get_post_type( $object_id );
	if ( 'product' !== $post_type && 'product_variation' !== $post_type ) {
		return;
	}

	wc_maybe_schedule_product_sale_events( $object_id );
}