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

概要

woocommerce_email_order_items_table フィルタは、WooCommerceプラグインが管理するメール通知に含まれる注文アイテムのテーブルをカスタマイズする際に使用されます。このフィルタは、顧客への注文確認や出荷通知メールにおいて、商品情報の表示を調整する必要がある場合によく使われます。以下のようなシナリオでよく使用されます。

  1. 特定の商品に特別な情報(例えば、サイズや色)を追加する。
  2. 商品の価格表示をカスタマイズする。
  3. 割引率や累積ポイントをアイテムごとに表示する。
  4. 独自のHTMLスタイルを適用して、メールの見た目を改善する。
  5. 商品の説明やメモを追加する。
  6. 注文アイテムの合計金額を特定の形式で表示する。

構文

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

パラメータ

  • $items: 注文アイテムのリスト
  • $order: WooCommerceの注文オブジェクト
  • $sent_to_admin: 管理者宛てのメールであるかどうかを示すboolean値

戻り値

カスタマイズされたアイテムテーブルを含むHTML文字列。

対応プラグインバージョン

  • WooCommerce: バージョン6.0以降
  • WordPress: バージョン5.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: アイテムのカスタムフィールドを追加する

このサンプルコードは、各注文アイテムにカスタムフィールド「お気に入り」を追加します。

add_filter('woocommerce_email_order_items_table', 'add_favorite_field_to_email', 10, 3);
function add_favorite_field_to_email($items, $order, $sent_to_admin) {
    foreach ($items as $item_id => $item) {
        $favorite = get_post_meta($item->get_product_id(), '_favorite', true);
        $items[$item_id] .= '<br><strong>お気に入り:</strong> ' . esc_html($favorite);
    }
    return $items;
}

サンプルコード2: アイテムの価格を変更する

このサンプルコードは、特定の条件に基づいてアイテムの価格を変更します。

add_filter('woocommerce_email_order_items_table', 'modify_item_price_in_email', 10, 3);
function modify_item_price_in_email($items, $order, $sent_to_admin) {
    foreach ($items as $item_id => $item) {
        if ($item->get_product_id() === 123) { // 特定の製品ID
            $items[$item_id] = str_replace($item->get_total(), $item->get_total() * 0.8, $items[$item_id]); // 20%引き
        }
    }
    return $items;
}

サンプルコード3: 注文アイテムにダウンロードリンクを追加

このサンプルコードでは、デジタル商品の注文アイテムにダウンロードリンクを追加します。

add_filter('woocommerce_email_order_items_table', 'add_download_link_to_email', 10, 3);
function add_download_link_to_email($items, $order, $sent_to_admin) {
    foreach ($items as $item_id => $item) {
        $downloads = $item->get_product()->get_downloads();
        if (!empty($downloads)) {
            $items[$item_id] .= '<br><strong>ダウンロードリンク:</strong> ' . $downloads[0]['file'];
        }
    }
    return $items;
}

サンプルコード4: HTMLスタイルを適用する

このサンプルコードは、各アイテムのスタイルを変更します。

add_filter('woocommerce_email_order_items_table', 'customize_item_table_style', 10, 3);
function customize_item_table_style($items, $order, $sent_to_admin) {
    return '<div style="border: 1px solid #ccc; padding: 10px;">' . $items . '</div>';
}

サンプルコード5: アイテム数に応じたテキストメッセージを追加

このサンプルコードでは、アイテムの数に応じた数量メッセージを追加します。

add_filter('woocommerce_email_order_items_table', 'add_quantity_message_to_email', 10, 3);
function add_quantity_message_to_email($items, $order, $sent_to_admin) {
    $total_items = count($order->get_items());
    $items .= '<br>合計アイテム数: ' . $total_items;
    return $items;
}

以上のサンプルコードは著作権フリーのもので、基本的なカスタマイズの手段を示しています。それぞれのコードを使って、WooCommerceのメール通知をより一層お客様に分かりやすくカスタマイズしてください。

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


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