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

概要

woocommerce_email_order_item_quantityフィルタは、WooCommerceで送信される注文メールのアイテム数量をカスタマイズするために使用されます。このフックを使うことで、数量の表示形式を変更したり、特定の条件に基づいて数量を変更したりできます。このフィルタは、カスタムメールテンプレートの作成や、通知内容の調整に役立ちます。

このフィルタは以下のような機能を実装する際によく使われます。

  1. 注文確認メールの数量表示のスタイル変更
  2. 特定商品の数量を強調表示
  3. 売上分析用の数量フォーマットの変更
  4. 数量に基づく割引メッセージの追加
  5. 特定条件下での数量の非表示
  6. 多言語サイトでの数量表示のローカライズ

構文

add_filter( 'woocommerce_email_order_item_quantity', 'custom_quantity_display', 10, 3 );
function custom_quantity_display( $qty, $item, $order ) {
    // 処理内容
    return $qty;
}

パラメータ

  • $qty (string): アイテムの数量。
  • $item (WC_Order_Item_Product): 注文アイテムオブジェクト。
  • $order (WC_Order): 注文オブジェクト。

戻り値

フィルタを通過した後のアイテム数量(string)。

対応バージョン

  • WooCommerce: 2.1.0 以降
  • WordPress: 4.0.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_item_quantity', 'modify_order_item_quantity', 10, 3 );
function modify_order_item_quantity( $qty, $item, $order ) {
    return $qty . ' pcs'; // 数量の後に「 pcs」を追加
}

このコードは、メール内のアイテム数量の後に「 pcs」という文言を追加します。

サンプルコード2

add_filter( 'woocommerce_email_order_item_quantity', 'highlight_large_quantity', 10, 3 );
function highlight_large_quantity( $qty, $item, $order ) {
    if ( intval( $qty ) > 10 ) {
        return '<strong>' . $qty . '</strong>'; // 10以上の場合は数量を強調表示
    }
    return $qty;
}

このコードは、数量が10以上の場合、その数量を強調表示します。

サンプルコード3

add_filter( 'woocommerce_email_order_item_quantity', 'localize_order_quantity', 10, 3 );
function localize_order_quantity( $qty, $item, $order ) {
    return $qty . '個'; // 日本語にローカライズ
}

このコードは、数量を日本語の「個」にローカライズします。

サンプルコード4

add_filter( 'woocommerce_email_order_item_quantity', 'conditional_quantity_display', 10, 3 );
function conditional_quantity_display( $qty, $item, $order ) {
    if ( $item->get_product_id() === 123 ) { // 商品ID123の場合
        return '特価: ' . $qty; // 特別メッセージを追加
    }
    return $qty;
}

このコードは、特定の商品の場合に「特価:」というメッセージを数量の前に追加します。

サンプルコード5

add_filter( 'woocommerce_email_order_item_quantity', 'remove_quantity_display', 10, 3 );
function remove_quantity_display( $qty, $item, $order ) {
    return ''; // 数量を非表示
}

このコードは、アイテム数量を非表示にします。購入数が見せたくない場合に使用できます。

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


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