WC_Post_Data::before_delete_order( int $order_id )
Before deleting an order, do some cleanup.
Description Description
Parameters Parameters
- $order_id
-
(Required) Order ID.
Source Source
File: includes/class-wc-post-data.php
public static function before_delete_order( $order_id ) {
if ( in_array( get_post_type( $order_id ), wc_get_order_types(), true ) ) {
// Clean up user.
$order = wc_get_order( $order_id );
// Check for `get_customer_id`, since this may be e.g. a refund order (which doesn't implement it).
$customer_id = is_callable( array( $order, 'get_customer_id' ) ) ? $order->get_customer_id() : 0;
if ( $customer_id > 0 && 'shop_order' === $order->get_type() ) {
$customer = new WC_Customer( $customer_id );
$order_count = $customer->get_order_count();
$order_count --;
if ( 0 === $order_count ) {
$customer->set_is_paying_customer( false );
$customer->save();
}
// Delete order count meta.
delete_user_meta( $customer_id, '_order_count' );
}
// Clean up items.
self::delete_order_items( $order_id );
self::delete_order_downloadable_permissions( $order_id );
}
}
Changelog Changelog
| Version | Description |
|---|---|
| 3.2.0 | Introduced. |