プラグインWooCommerceのwoocommerce_product_set_stockアクションの使用方法・解説

概要

woocommerce_product_set_stockアクションは、WooCommerce内で製品の在庫が設定される際にトリガーされるフックです。このアクションは、在庫管理や製品の販売に関連する機能を実装する際に役立ちます。以下はよく使われる機能の例です。

  1. 在庫レベルが変更された際の通知を送信する。
  2. 特定の条件に基づいて在庫の数量を自動的に調整する。
  3. 在庫がゼロになった製品を非表示にする。
  4. 在庫が変更された際に関連製品の情報を更新する。
  5. 在庫の変動をログに記録する。
  6. 在庫を変更する際にカスタムアクションを呼び出す。

構文

do_action( 'woocommerce_product_set_stock', $product );

パラメータ

  • $product (WC_Product): 在庫が設定された製品のオブジェクト。

戻り値

このアクションは値を返さず、主に他の関数やアクションが実行されることが期待されます。

互換性

  • WooCommerceのバージョン: 3.0.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: 在庫変更時にメール通知を送信

add_action( 'woocommerce_product_set_stock', 'send_stock_notification', 10, 1 );

function send_stock_notification( $product ) {
    $product_name = $product->get_name();
    $stock_quantity = $product->get_stock_quantity();

    // メール通知を送信するロジックを追加
}

このサンプルコードは、製品の在庫が変更された際にメール通知を送信するための基本的なフックの使用例です。

サンプル2: 在庫数を自動で調整

add_action( 'woocommerce_product_set_stock', 'auto_adjust_stock', 10, 1 );

function auto_adjust_stock( $product ) {
    if ( $product->get_stock_quantity() < 5 ) {
        $new_stock = 10;
        $product->set_stock_quantity( $new_stock );
        $product->save();
    }
}

この例では、製品の在庫数が5未満になった場合に自動的に在庫を10に設定します。

サンプル3: 在庫がゼロなら製品を非表示に

add_action( 'woocommerce_product_set_stock', 'hide_product_if_out_of_stock', 10, 1 );

function hide_product_if_out_of_stock( $product ) {
    if ( $product->get_stock_quantity() === 0 ) {
        $product->set_catalog_visibility( 'hidden' );
        $product->save();
    }
}

このコードは、在庫がゼロになった製品をカタログから非表示にするための例です。

サンプル4: 在庫変動をログに記録する

add_action( 'woocommerce_product_set_stock', 'log_stock_change', 10, 1 );

function log_stock_change( $product ) {
    $log_message = sprintf( 'Product ID %d stock changed to %d', $product->get_id(), $product->get_stock_quantity() );
    error_log( $log_message );
}

このサンプルは、在庫が変更された際にその情報をエラーログに記録する方法を示しています。

サンプル5: 在庫変更時にカスタムアクションを呼び出す

add_action( 'woocommerce_product_set_stock', 'trigger_custom_action', 10, 1 );

function trigger_custom_action( $product ) {
    do_action( 'my_custom_action', $product );
}

この例では、在庫が変更されると、別のカスタムアクションをトリガーする方法を示します。これは、他のプラグインや機能と連携する際に有用です。

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


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