プラグインWooCommerceのwoocommerce_privacy_erase_personal_data_customerアクションの使用方法・解説

概要

woocommerce_privacy_erase_personal_data_customer アクションは、WooCommerce が顧客の個人データを削除する際にトリガーされるフックです。このアクションは、データプライバシーに関連した機能を実装する際に非常に便利です。具体的には、以下のような用途でよく使用されます。

  1. 顧客アカウント情報の完全な削除
  2. 注文履歴や関連データの消去
  3. 顧客に関連するクッキー情報の削除
  4. セッションデータの消去
  5. マーケティング関連データの削除
  6. カスタムデータのクリーンアップ

構文

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/

この関数について質問する


上の計算式の答えを入力してください