概要
woocommerce_restock_refunded_item
は、WooCommerce において返金されたアイテムが再ストックされる際にトリガーされるアクションフックです。このフックは、商品が顧客に返金された後、在庫数を更新する機能を実装する際によく使用されます。
主な使用例
- 返金された商品の在庫を更新する。
- 特定の条件に基づいて在庫補充の通知を送信する。
- 返金プロセスのロギング機能を実装する。
- ストック状況をWebhookやAPIを介して外部システムに通知する。
- 商品の再ストック時に管理者通知を送信する。
- 返金時の履歴管理のカスタマイズを行う。
構文
do_action( 'woocommerce_restock_refunded_item', $item, $order );
パラメータ
$item
: 返金されたアイテムの情報を保持する配列。$order
: 返金が発生した注文オブジェクト。
戻り値
このアクションには戻り値はありません。
WooCommerce バージョン
このアクションは WooCommerce 2.1.0 以降で使用可能です。
WordPress バージョン
このアクションは 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_restock_refunded_item', 'custom_restock_item', 10, 2 );
function custom_restock_item( $item, $order ) {
// 返金された商品の在庫を更新
$product_id = $item['product_id'];
$qty = $item['qty'];
$stock_manager = wc_get_product( $product_id );
$stock_manager->set_stock_quantity( $stock_manager->get_stock_quantity() + $qty );
$stock_manager->save();
}
このコードは、返金された商品の在庫数を増加させて在庫を更新します。
サンプルコード 2
add_action( 'woocommerce_restock_refunded_item', 'log_refunded_item_restock', 10, 2 );
function log_refunded_item_restock( $item, $order ) {
// 返金されたアイテムの情報をログに記録
$log = sprintf( 'Restocked %d of %s from Order %d', $item['qty'], $item['product_id'], $order->get_id() );
error_log( $log );
}
このコードは、返金されたアイテムの詳細情報をエラーログに記録します。
サンプルコード 3
add_action( 'woocommerce_restock_refunded_item', 'notify_admin_refund', 10, 2 );
function notify_admin_refund( $item, $order ) {
// 管理者に商品の再ストックを通知
wp_mail( get_option( 'admin_email' ), 'Refund Item Restocked', 'Item ID: '.$item['product_id'].' has been restocked after a refund.' );
}
このコードは、返金後に管理者にメール通知を送信します。
サンプルコード 4
add_action( 'woocommerce_restock_refunded_item', 'update_api_stock', 10, 2 );
function update_api_stock( $item, $order ) {
// APIに在庫状況を通知
$url = 'https://example.com/api/stock-update';
$response = wp_remote_post( $url, array(
'body' => array(
'product_id' => $item['product_id'],
'quantity' => $item['qty']
)
));
}
このコードは、返金された商品の在庫状況をAPIに通知します。
サンプルコード 5
add_action( 'woocommerce_restock_refunded_item', 'custom_stock_alert', 10, 2 );
function custom_stock_alert( $item, $order ) {
// ストック状況に基づいてアラートをカスタマイズ
if ( $item['qty'] > 5 ) {
echo 'Stock of item '.$item['product_id'].' is now high!';
}
}
このコードは、再ストック後の在庫が特定数を超えた場合にメッセージを表示します。