WC_Privacy_Erasers::order_data_eraser()
Finds and erases data which could be used to identify a person from WooCommerce data associated with an email address.
Orders are erased in blocks of 10 to avoid timeouts.
Метод класса: WC_Privacy_Erasers{}
Хуки из метода
Возвращает
Массив
. An array of personal data in name value pairs
Использование
$result = WC_Privacy_Erasers::order_data_eraser( $email_address, $page );
- $email_address(строка) (обязательный)
- The user email address.
- $page(int) (обязательный)
- Page.
Список изменений
С версии 3.4.0 | Введена. |
Код WC_Privacy_Erasers::order_data_eraser() WC Privacy Erasers::order data eraser WC 8.7.0
public static function order_data_eraser( $email_address, $page ) { $page = (int) $page; $user = get_user_by( 'email', $email_address ); // Check if user has an ID in the DB to load stored personal data. $erasure_enabled = wc_string_to_bool( get_option( 'woocommerce_erasure_request_removes_order_data', 'no' ) ); $response = array( 'items_removed' => false, 'items_retained' => false, 'messages' => array(), 'done' => true, ); $order_query = array( 'limit' => 10, 'page' => $page, 'customer' => array( $email_address ), ); if ( $user instanceof WP_User ) { $order_query['customer'][] = (int) $user->ID; } $orders = wc_get_orders( $order_query ); if ( 0 < count( $orders ) ) { foreach ( $orders as $order ) { if ( apply_filters( 'woocommerce_privacy_erase_order_personal_data', $erasure_enabled, $order ) ) { self::remove_order_personal_data( $order ); /* Translators: %s Order number. */ $response['messages'][] = sprintf( __( 'Removed personal data from order %s.', 'woocommerce' ), $order->get_order_number() ); $response['items_removed'] = true; } else { /* Translators: %s Order number. */ $response['messages'][] = sprintf( __( 'Personal data within order %s has been retained.', 'woocommerce' ), $order->get_order_number() ); $response['items_retained'] = true; } } $response['done'] = 10 > count( $orders ); } else { $response['done'] = true; } return $response; }