wc_maybe_schedule_sale_events_on_meta_change()
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.
No Hooks.
Returns
null. Nothing (null).
Usage
wc_maybe_schedule_sale_events_on_meta_change( $meta_id, $object_id, $meta_key ): void;
- $meta_id(int|int[]) (required)
- Meta ID (or array of IDs for delete).
- $object_id(int) (required)
- Post ID.
- $meta_key(string) (required)
- Meta key.
Changelog
| Since 10.8.0 | Introduced. |
wc_maybe_schedule_sale_events_on_meta_change() wc maybe schedule sale events on meta change code WC 10.9.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 );
}