Fix `Customers\DataStore::anonymize_customer` use of WC_Order instance as int (#38201)
This commit is contained in:
parent
61d41adf79
commit
a7b957dbce
|
@ -0,0 +1,4 @@
|
|||
Significance: patch
|
||||
Type: fix
|
||||
|
||||
Make Admin\API\Reports\Customers\DataStore::anonymize_customer accept an order instance as a parameter to ensure compatibility with the `woocommerce_privacy_remove_order_personal_data` hook.
|
|
@ -357,7 +357,7 @@ class WC_Privacy_Erasers {
|
|||
* Allow extensions to remove their own personal data for this order.
|
||||
*
|
||||
* @since 3.4.0
|
||||
* @param WC_Order $order A customer object.
|
||||
* @param WC_Order $order Order instance.
|
||||
*/
|
||||
do_action( 'woocommerce_privacy_remove_order_personal_data', $order );
|
||||
}
|
||||
|
|
|
@ -913,14 +913,18 @@ class DataStore extends ReportsDataStore implements DataStoreInterface {
|
|||
* Anonymize the customer data for a single order.
|
||||
*
|
||||
* @internal
|
||||
* @param int $order_id Order id.
|
||||
* @param int|WC_Order $order Order instance or ID.
|
||||
* @return void
|
||||
*/
|
||||
public static function anonymize_customer( $order_id ) {
|
||||
public static function anonymize_customer( $order ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( ! is_object( $order ) ) {
|
||||
$order = wc_get_order( absint( $order ) );
|
||||
}
|
||||
|
||||
$customer_id = $wpdb->get_var(
|
||||
$wpdb->prepare( "SELECT customer_id FROM {$wpdb->prefix}wc_order_stats WHERE order_id = %d", $order_id )
|
||||
$wpdb->prepare( "SELECT customer_id FROM {$wpdb->prefix}wc_order_stats WHERE order_id = %d", $order->get_id() )
|
||||
);
|
||||
|
||||
if ( ! $customer_id ) {
|
||||
|
|
Loading…
Reference in New Issue