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. |