概要
woocommerce_email_order_items_table
フィルタは、WooCommerceプラグインが管理するメール通知に含まれる注文アイテムのテーブルをカスタマイズする際に使用されます。このフィルタは、顧客への注文確認や出荷通知メールにおいて、商品情報の表示を調整する必要がある場合によく使われます。以下のようなシナリオでよく使用されます。
- 特定の商品に特別な情報(例えば、サイズや色)を追加する。
- 商品の価格表示をカスタマイズする。
- 割引率や累積ポイントをアイテムごとに表示する。
- 独自のHTMLスタイルを適用して、メールの見た目を改善する。
- 商品の説明やメモを追加する。
- 注文アイテムの合計金額を特定の形式で表示する。
構文
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のメール通知をより一層お客様に分かりやすくカスタマイズしてください。