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

概要

woocommerce_order_item_product フィルタは、WooCommerce における特定の商品の注文アイテムをフィルタリングする際に使用されるフックです。これにより、注文アイテムの情報をカスタマイズしたり、特定の条件に基づいて変更を加えることができます。特に以下のような機能を実装する際によく使われます:

  1. 注文アイテムの価格を変更する
  2. 商品情報にカスタムメタデータを追加する
  3. 商品の可用性を判断する
  4. 商品のステータスに基づいてアクションをトリガーする
  5. 商品フィルタリングやサーチ機能の強化
  6. レポートや分析用のデータ収集

構文

add_filter('woocommerce_order_item_product', 'your_function_name', 10, 2);

パラメータ

  • woocommerce_order_item_product: フィルタ名称
  • your_function_name: 自作の関数名
  • 10: 優先度(デフォルトは 10)
  • 2: 引数の数($product, $item

戻り値

  • $product: フィルタ後の製品オブジェクト

使用可能なプラグインWooCommerceのバージョン

  • 6.x.x以降

ワードプレスのバージョン

  • 5.x.x以降

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

アクション 使用例
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_order_item_product', 'change_order_item_price', 10, 2);

function change_order_item_price($product, $item) {
    if ($item->get_product_id() == 123) { // 商品IDが123の場合
        $product->set_price(50); // 価格を50に変更
    }
    return $product;
}

引用元: https://docs.woocommerce.com/

サンプルコード2: カスタムメタデータの追加

このコードは、注文アイテムにカスタムメタデータを追加します。

add_filter('woocommerce_order_item_product', 'add_custom_meta_to_order_item', 10, 2);

function add_custom_meta_to_order_item($product, $item) {
    $product->add_meta_data('custom_meta_key', 'custom_meta_value');
    return $product;
}

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

サンプルコード3: 商品の可用性を判断

商品の可用性を基にフィルタリングするサンプルコードです。

add_filter('woocommerce_order_item_product', 'check_product_availability', 10, 2);

function check_product_availability($product, $item) {
    if (!$product->is_in_stock()) {
        // 在庫がない場合は、特定の処理を実行
        $product = null; // 商品をnullに設定
    }
    return $product;
}

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

サンプルコード4: 商品情報を加工

商品名をカスタマイズする例です。

add_filter('woocommerce_order_item_product', 'customize_product_name', 10, 2);

function customize_product_name($product, $item) {
    $product->set_name($product->get_name() . ' (カスタム)');
    return $product;
}

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

サンプルコード5: 商品に基づくアクションをトリガー

商品IDに基づいて特定のアクションをトリガーします。

add_filter('woocommerce_order_item_product', 'trigger_action_based_on_product', 10, 2);

function trigger_action_based_on_product($product, $item) {
    if ($item->get_product_id() == 456) { // 商品IDが456の場合
        do_action('my_custom_action'); // 自作のアクションをトリガー
    }
    return $product;
}

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

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


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