概要
woocommerce_privacy_export_order_personal_data_meta
アクションは、WooCommerceにおいて、個々の注文に関連する個人データをエクスポートする際に使用されます。このフックを利用することで、注文に関連するメタデータをカスタマイズしてエクスポートすることが可能です。具体的には、以下のような機能を実装する際によく用いられます:
- 注文のカスタムメタデータをユーザーに提供
- 個々の注文内の特別な情報をエクスポート
- GDPRに基づいたデータエクスポート機能の拡張
- 管理者が特定の情報をエクスポートする際のカスタマイズ
- ユーザーからのデータ要請に応じるためのデータ形式の変更
- エクスポートされるデータにフィルタを追加
構文
do_action( 'woocommerce_privacy_export_order_personal_data_meta', $order_id, $order, $csv_output );
パラメータ
$order_id
(int): 注文のID$order
(WC_Order): 注文オブジェクト$csv_output
(array): CSVエクスポートに使用する配列
戻り値
このアクション自体は何も返しませんが、与えられたパラメータに基づいてデータを出力します。
使用可能なプラグインWooCommerceのバージョン
このアクションはWooCommerceバージョン「3.4」以降で使用可能です。
WordPressのバージョン
このアクションはWordPressバージョン「4.9」以降で使用可能です。
サンプルコード
サンプルコード1: 注文メタデータの追加
このサンプルコードは、注文にカスタムメタデータを追加し、エクスポート時にそのデータを含めるものです。
add_action('woocommerce_privacy_export_order_personal_data_meta', 'add_custom_order_meta_data', 10, 3);
function add_custom_order_meta_data($order_id, $order, $csv_output) {
$custom_meta = get_post_meta($order_id, '_custom_meta_key', true);
if (!empty($custom_meta)) {
$csv_output[] = array('meta_key' => 'Custom Meta', 'meta_value' => $custom_meta);
}
}
サンプルコード2: メタデータのフィルタリング
このサンプルは、特定の条件に基づいてメタデータをフィルタリングする方法を示しています。
add_action('woocommerce_privacy_export_order_personal_data_meta', 'filter_order_meta_data', 10, 3);
function filter_order_meta_data($order_id, $order, $csv_output) {
$meta_value = get_post_meta($order_id, '_sensitive_meta_key', true);
if ($meta_value !== 'sensitive_value') {
$csv_output[] = array('meta_key' => 'Filtered Meta', 'meta_value' => $meta_value);
}
}
サンプルコード3: エクスポートフォーマットのカスタマイズ
このサンプルコードでは、エクスポートするデータをカスタマイズします。
add_action('woocommerce_privacy_export_order_personal_data_meta', 'custom_export_format', 10, 3);
function custom_export_format($order_id, $order, $csv_output) {
$formatted_date = date('Y-m-d', strtotime($order->get_date_created()));
$csv_output[] = array('meta_key' => 'Order Date', 'meta_value' => $formatted_date);
}
サンプルコード4: 複数のカスタムメタをエクスポート
このサンプルでは、複数のカスタムメタをエクスポートする方法を示しています。
add_action('woocommerce_privacy_export_order_personal_data_meta', 'export_multiple_custom_meta', 10, 3);
function export_multiple_custom_meta($order_id, $order, $csv_output) {
$meta_keys = ['_custom_meta_1', '_custom_meta_2'];
foreach ($meta_keys as $key) {
$value = get_post_meta($order_id, $key, true);
if (!empty($value)) {
$csv_output[] = array('meta_key' => $key, 'meta_value' => $value);
}
}
}
サンプルコード5: データをJSON形式で出力
このサンプルコードは、注文データをJSON形式に変換してエクスポートします。
add_action('woocommerce_privacy_export_order_personal_data_meta', 'export_order_data_as_json', 10, 3);
function export_order_data_as_json($order_id, $order, $csv_output) {
$order_data = [
'order_id' => $order_id,
'total' => $order->get_total(),
'currency' => get_woocommerce_currency(),
];
$csv_output[] = array('meta_key' => 'Order Data (JSON)', 'meta_value' => json_encode($order_data));
}
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |