概要
woocommerce_privacy_erase_personal_data_customer
アクションは、WooCommerce が顧客の個人データを削除する際にトリガーされるフックです。このアクションは、データプライバシーに関連した機能を実装する際に非常に便利です。具体的には、以下のような用途でよく使用されます。
- 顧客アカウント情報の完全な削除
- 注文履歴や関連データの消去
- 顧客に関連するクッキー情報の削除
- セッションデータの消去
- マーケティング関連データの削除
- カスタムデータのクリーンアップ
構文
do_action( 'woocommerce_privacy_erase_personal_data_customer', $customer_id, $user_data );
パラメータ
$customer_id
(int): 削除対象の顧客のID。$user_data
(array): 顧客に関するデータの配列。
戻り値
このアクションは戻り値を持たず、主に他の関数やフックを実行する目的で使用されます。
バージョン
- WooCommerce バージョン: 3.4 以上
- WordPress バージョン: 4.9 以上
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1
add_action( 'woocommerce_privacy_erase_personal_data_customer', 'custom_erase_additional_data', 10, 2 );
function custom_erase_additional_data( $customer_id, $user_data ) {
// カスタムデータを削除
delete_user_meta( $customer_id, 'custom_meta_key' );
}
このコードは、顧客の個人データ削除時にカスタムメタデータを削除します。
参考URL: https://developer.wordpress.org/reference/functions/delete_user_meta/
サンプルコード 2
add_action( 'woocommerce_privacy_erase_personal_data_customer', 'remove_order_notes', 10, 2 );
function remove_order_notes( $customer_id, $user_data ) {
global $wpdb;
$wpdb->delete( 'wp_woocommerce_order_notes', array( 'customer_id' => $customer_id ) );
}
このコードは、顧客が持つすべての注文ノートを削除します。
参考URL: https://developer.wordpress.org/reference/classes/wpdb/delete/
サンプルコード 3
add_action( 'woocommerce_privacy_erase_personal_data_customer', 'clear_cart_data', 10, 2 );
function clear_cart_data( $customer_id, $user_data ) {
WC()->cart->empty_cart();
}
このコードは、個人データ削除時にカート内のアイテムをクリアします。
参考URL: https://docs.woocommerce.com/wc-apidocs/class-WC_Cart.html#_empty_cart
サンプルコード 4
add_action( 'woocommerce_privacy_erase_personal_data_customer', 'delete_customer_meta', 10, 2 );
function delete_customer_meta( $customer_id, $user_data ) {
if ( !empty( $user_data['billing_phone'] ) ) {
delete_user_meta( $customer_id, 'billing_phone' );
}
}
このコードは、電話番号情報を削除する機能を追加します。
参考URL: https://developer.wordpress.org/reference/functions/delete_user_meta/
サンプルコード 5
add_action( 'woocommerce_privacy_erase_personal_data_customer', 'remove_payment_methods', 10, 2 );
function remove_payment_methods( $customer_id, $user_data ) {
delete_user_meta( $customer_id, 'payment_methods' );
}
このコードは、顧客の支払い方法を削除します。
参考URL: https://developer.wordpress.org/reference/functions/delete_user_meta/