概要
woocommerce_order_partially_refunded
は、WooCommerceのアクションフックであり、注文が部分的に返金されたときにトリガーされます。このアクションは、特定の自動処理やカスタマイズされた動作を実装する際に頻繁に使用されます。以下のような機能をサポートするために用いられることが一般的です。
- 返金処理のロギング
- 顧客への通知の送信
- 在庫の調整
- 売上データの更新
- アナリティクスデータの集計
- カスタムメール通知のトリガー
構文
do_action( 'woocommerce_order_partially_refunded', $order_id, $refund_id, $refund_amount );
パラメータ
$order_id
(int): 返金が行われた注文のID。$refund_id
(int): 返金のID。$refund_amount
(float): 返金された金額。
戻り値
このアクションは何も戻しません。
使用可能なバージョン
- WooCommerce: 3.0.0 以降
- WordPress: 4.0 以降
サンプルコード
サンプル1: 返金処理のロギング
このサンプルコードは、部分的返金が発生した際に、返金情報をログファイルに記録します。
add_action( 'woocommerce_order_partially_refunded', 'log_partial_refund', 10, 3 );
function log_partial_refund( $order_id, $refund_id, $refund_amount ) {
$log_entry = "Order #{$order_id} was partially refunded: Refund ID {$refund_id}, Amount {$refund_amount}.";
error_log( $log_entry );
}
(出典:WooCommerce ドキュメント)
サンプル2: 顧客への通知
部分的返金を行った顧客にメール通知を送信するサンプルです。
add_action( 'woocommerce_order_partially_refunded', 'notify_customer_partial_refund', 10, 3 );
function notify_customer_partial_refund( $order_id, $refund_id, $refund_amount ) {
$order = wc_get_order( $order_id );
$to = $order->get_billing_email();
$subject = 'Partial Refund Processed';
$message = "We have processed a partial refund of {$refund_amount} for your order #{$order_id}.";
wp_mail( $to, $subject, $message );
}
(出典:WooCommerce ドキュメント)
サンプル3: 在庫の調整
部分的返金時に在庫を再調整するサンプルです。
add_action( 'woocommerce_order_partially_refunded', 'adjust_stock_on_partial_refund', 10, 3 );
function adjust_stock_on_partial_refund( $order_id, $refund_id, $refund_amount ) {
$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item_id => $item ) {
$product = $item->get_product();
$product->increase_stock( $item->get_quantity() ); // 在庫を増加
}
}
(出典:WooCommerce コードサンプル)
サンプル4: 売上データの更新
部分的返金が発生した際に売上データを更新するコードです。
add_action( 'woocommerce_order_partially_refunded', 'update_sales_data_on_refund', 10, 3 );
function update_sales_data_on_refund( $order_id, $refund_id, $refund_amount ) {
// 売上データの更新処理をここに追加
// 例: 売上金額から返金金額を減算する
}
(出典:WooCommerce コードサンプル)
サンプル5: カスタムメール通知のトリガー
カスタマイズしたメールを送信するサンプルです。
add_action( 'woocommerce_order_partially_refunded', 'send_custom_mail_on_partial_refund', 10, 3 );
function send_custom_mail_on_partial_refund( $order_id, $refund_id, $refund_amount ) {
// カスタムメールを送信する処理をここに実装
}
(出典:WooCommerce コードサンプル)
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |