プラグインWooCommerceのwoocommerce_email_order_meta_fieldsフィルタの使用方法・解説

概要

woocommerce_email_order_meta_fields フィルタは、WooCommerceの注文メールにカスタムメタ情報を追加する際に使用されます。このフィルタを使うことで、デフォルトで提供される情報に加えて、特定のデータを含めることが可能となります。これにより、顧客や管理者に対して必要な詳細をメールで通知することができます。

このフィルタは以下のような機能に良く使用されます。
1. 注文に関連するカスタムフィールドの追加
2. 特定のプロモーションコードの通知
3. 注文の配送情報の拡張
4. 注文に関するフィードバックやレビューの提供
5. 特別なメッセージの表示
6. ダウンロード可能な商品のリンク追加

構文

add_filter('woocommerce_email_order_meta_fields', 'your_custom_function', 10, 3);

パラメータ

  • $fields: 追加されるメタ情報を含む配列
  • $sent_to_admin: 管理者宛に送信されるかどうかのブール値
  • $order: WooCommerceの注文データオブジェクト

戻り値

このフィルタは、更新されたメタデータの配列を返します。

使用可能なバージョン

  • WooCommerce: バージョンは3.0以降
  • WordPress: バージョンは4.0以降

この関数のアクションでの使用可能性

アクション 使用可能性
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: カスタムフィールドの追加

このサンプルは、注文メールにカスタムフィールド「カスタマーID」を追加します。

add_filter('woocommerce_email_order_meta_fields', function($fields, $sent_to_admin, $order) {
    $fields['customer_id'] = 'Customer ID: ' . get_post_meta($order->get_id(), '_customer_id', true);
    return $fields;
});

引用元: https://www.example.com

サンプル2: プロモーションコードの通知

このサンプルは、プロモーションコードを注文メールに表示します。

add_filter('woocommerce_email_order_meta_fields', function($fields, $sent_to_admin, $order) {
    $promo_code = get_post_meta($order->get_id(), '_promo_code', true);
    if ($promo_code) {
        $fields['promo_code'] = 'Promo Code: ' . $promo_code;
    }
    return $fields;
});

引用元: https://www.example.com

サンプル3: 配送情報の拡張

このサンプルでは、配送方法を注文メールに追加します。

add_filter('woocommerce_email_order_meta_fields', function($fields, $sent_to_admin, $order) {
    $shipping_method = $order->get_shipping_method();
    $fields['shipping_method'] = 'Shipping Method: ' . $shipping_method;
    return $fields;
});

引用元: https://www.example.com

サンプル4: 注文に関するフィードバックの追加

このサンプルは、顧客からのフィードバックをメールに追加します。

add_filter('woocommerce_email_order_meta_fields', function($fields, $sent_to_admin, $order) {
    $feedback = get_post_meta($order->get_id(), '_customer_feedback', true);
    if ($feedback) {
        $fields['customer_feedback'] = 'Customer Feedback: ' . $feedback;
    }
    return $fields;
});

引用元: https://www.example.com

サンプル5: 特別なメッセージの表示

このサンプルでは、特定のメッセージを注文メールに付加します。

add_filter('woocommerce_email_order_meta_fields', function($fields, $sent_to_admin, $order) {
    $fields['special_message'] = 'Thank you for your order! We appreciate your business.';
    return $fields;
});

引用元: https://www.example.com

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


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