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

概要

woocommerce_privacy_export_order_personal_data_meta アクションは、WooCommerceにおいて、個々の注文に関連する個人データをエクスポートする際に使用されます。このフックを利用することで、注文に関連するメタデータをカスタマイズしてエクスポートすることが可能です。具体的には、以下のような機能を実装する際によく用いられます:

  1. 注文のカスタムメタデータをユーザーに提供
  2. 個々の注文内の特別な情報をエクスポート
  3. GDPRに基づいたデータエクスポート機能の拡張
  4. 管理者が特定の情報をエクスポートする際のカスタマイズ
  5. ユーザーからのデータ要請に応じるためのデータ形式の変更
  6. エクスポートされるデータにフィルタを追加

構文

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

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


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