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

概要

woocommerce_refund_createdアクションは、WooCommerceで返金処理が実行された際にトリガーされます。このフックを利用することで、返金が作成された際に特定の処理を自動で実行することができます。これにより、ビジネスのニーズに応じたカスタマイズが可能になります。

このアクションがよく使われる機能の例としては以下の6つがあります:
1. 返金の通知メールを送信する。
2. 返金処理の履歴をログに記録する。
3. 返金された商品の在庫を更新する。
4. 顧客への返金通知をSNSで配信する。
5. 外部システムに返金情報を送信する。
6. 顧客の購入履歴に返金情報を追加する。

このアクションは、WooCommerceのバージョン6.0以上、WordPressのバージョン5.0以上で利用可能です。

構文

do_action( 'woocommerce_refund_created', $refund, $order );

パラメータ

  • $refund (WC_Order_Refund): 返金オブジェクト。
  • $order (WC_Order): 関連する注文オブジェクト。

戻り値

このアクションは値を返しません。

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

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

function send_refund_email( $refund, $order ) {
    $to = get_option( 'admin_email' );
    $subject = '返金が処理されました';
    $message = '注文番号 ' . $order->get_id() . ' に対する返金が作成されました。';

    wp_mail( $to, $subject, $message );
}

このコードは管理者にメールを送信する機能を実装しています。

サンプルコード2

このサンプルコードは、返金が作成されると価格情報をログに記録します。

add_action( 'woocommerce_refund_created', 'log_refund_info', 10, 2 );

function log_refund_info( $refund, $order ) {
    $refund_amount = $refund->get_amount();
    error_log( '返金が作成されました: ' . $refund_amount . '円' );
}

返金金額をPHPエラーログに記録するコードです。

サンプルコード3

以下のサンプルコードは、返金が作成された際に商品の在庫を更新します。

add_action( 'woocommerce_refund_created', 'update_stock_on_refund', 10, 2 );

function update_stock_on_refund( $refund, $order ) {
    foreach ( $refund->get_items() as $item_id => $item ) {
        $product_id = $item->get_product_id();
        $quantity = $item->get_quantity();
        $product = wc_get_product( $product_id );
        $product->increase_stock( $quantity );
    }
}

返金処理によって在庫を増加させる役割を持つコードです。

サンプルコード4

次のサンプルコードは、返金が処理された際に外部APIに送信する例です。

add_action( 'woocommerce_refund_created', 'send_refund_to_api', 10, 2 );

function send_refund_to_api( $refund, $order ) {
    $data = array(
        'order_id' => $order->get_id(),
        'refund_amount' => $refund->get_amount(),
    );

    wp_remote_post( 'https://example.com/api/refunds', array(
        'method'    => 'POST',
        'body'      => json_encode( $data ),
        'headers'   => array( 'Content-Type' => 'application/json' ),
    ) );
}

外部APIに返金情報を送信する処理を実装したコードです。

サンプルコード5

このサンプルコードは、返金が作成された後にユーザーからのフィードバックを求めるメッセージを表示します。

add_action( 'woocommerce_refund_created', 'ask_for_feedback_after_refund', 10, 2 );

function ask_for_feedback_after_refund( $refund, $order ) {
    echo '<div class="feedback-request">ご返金に関するフィードバックをお願い致します。</div>';
}

返金後にフィードバックメッセージをユーザーに表示する機能を持つコードです。

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


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