概要
woocommerce_privacy_export_order_personal_data
は、WooCommerceが提供するプラグインであり、ユーザーからのプライバシーリクエストに応じて注文関連の個人データをエクスポートするためのフックです。このフックは、ユーザーのプライバシーに関連する情報を運営者が管理できるようにし、GDPRなどの法律に準拠した対応を行う際に特に役立ちます。
主に次のような機能を実装する際によく使用されます:
1. ユーザーからのデータエクスポートリクエストに応じたデータ出力。
2. 注文情報に紐づく顧客の個人情報の収集とフォーマット。
3. エクスポートデータに含めるべき情報のカスタマイズ。
4. データエクスポートに伴うログの生成。
5. 顧客情報の整理やフィルタリング機能の追加。
6. エクスポートされるデータの特定の形式への変換。
構文
do_action( 'woocommerce_privacy_export_order_personal_data', $order_id, $customer, $data );
パラメータ
$order_id
(int): 対象の注文ID。$customer
(array): 顧客情報の配列。$data
(array): エクスポートするデータの配列。
戻り値
このアクションは特に戻り値を持たず、他の関数やフックにデータを渡すために使用されます。
対応バージョン
- WooCommerceのバージョン: 3.4.0以降
- 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_export_order_personal_data', 'my_export_order_personal_data', 10, 3 );
function my_export_order_personal_data( $order_id, $customer, $data ) {
$order = wc_get_order( $order_id );
$data[] = array(
'Order ID' => $order->get_id(),
'Customer Name' => $customer['first_name'] . ' ' . $customer['last_name'],
'Email' => $customer['email'],
);
return $data;
}
このサンプルコードは、注文ID、顧客名、およびメールアドレスをエクスポートされるデータに追加しています。
サンプルコード2
add_action( 'woocommerce_privacy_export_order_personal_data', 'add_order_items_to_export', 10, 3 );
function add_order_items_to_export( $order_id, $customer, $data ) {
$order = wc_get_order( $order_id );
$items = array();
foreach ( $order->get_items() as $item_id => $item ) {
$items[] = $item->get_name();
}
$data['Items Purchased'] = implode( ', ', $items );
return $data;
}
このコードは、注文に含まれる商品名をエクスポートデータに追加しています。
サンプルコード3
add_action( 'woocommerce_privacy_export_order_personal_data', 'include_billing_address', 10, 3 );
function include_billing_address( $order_id, $customer, $data ) {
$order = wc_get_order( $order_id );
$data['Billing Address'] = $order->get_formatted_billing_address();
return $data;
}
このサンプルコードは、注文の請求先住所をエクスポートデータに含めています。
サンプルコード4
add_action( 'woocommerce_privacy_export_order_personal_data', 'customize_export_format', 10, 3 );
function customize_export_format( $order_id, $customer, $data ) {
$data['Export Format'] = 'CSV'; // フォーマットをCSVに設定
return $data;
}
このコードは、エクスポートするデータのフォーマットをCSVに指定するものです。
サンプルコード5
add_action( 'woocommerce_privacy_export_order_personal_data', 'log_export_request', 10, 3 );
function log_export_request( $order_id, $customer, $data ) {
error_log( 'Export request for order ID: ' . $order_id );
return $data;
}
このコードは、エクスポートリクエストが行われた際に、その注文IDをエラーログに記録します。