概要
woocommerce_delete_order_refund は、WooCommerce における注文の払い戻しが削除された際に発生するアクションフックです。このフックは、特定のロジックを実行したり、データを更新したりする機会を提供します。主に、以下のような機能を実装する際によく使われます。
- 払い戻し削除に関する通知の送信
- 売上報告の更新
- 特定の条件に基づくアクションのトリガー
- ログの作成
- カスタムメッセージの表示
- サードパーティーサービスとの同期
構文
do_action( 'woocommerce_delete_order_refund', $refund_id, $order_id );
パラメータ
$refund_id(int): 削除された払い戻しの ID。$order_id(int): 払い戻しが関連する注文の ID。
戻り値
このアクションは特に値を返すことはありません。
使用可能なプラグイン WooCommerce のバージョン
- WooCommerce 3.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_delete_order_refund', 'notify_admin_on_refund_deletion', 10, 2 );
function notify_admin_on_refund_deletion( $refund_id, $order_id ) {
$order = wc_get_order( $order_id );
$to = get_option( 'admin_email' );
$subject = 'Refund Deleted';
$message = 'A refund has been deleted for order #' . $order_id . '.';
wp_mail( $to, $subject, $message );
}
引用元: https://woocommerce.com/
サンプルコード 2
このコードは、払い戻しが削除された際にログファイルに記録するものです。
add_action( 'woocommerce_delete_order_refund', 'log_refund_deletion', 10, 2 );
function log_refund_deletion( $refund_id, $order_id ) {
$log_entry = sprintf( 'Refund ID %d was deleted for Order ID %d.', $refund_id, $order_id );
error_log( $log_entry );
}
引用元: https://woocommerce.com/
サンプルコード 3
このコードは、払い戻しが削除された際に注文のステータスを更新します。
add_action( 'woocommerce_delete_order_refund', 'update_order_status_on_refund_deletion', 10, 2 );
function update_order_status_on_refund_deletion( $refund_id, $order_id ) {
$order = wc_get_order( $order_id );
if ( $order ) {
$order->set_status( 'pending' );
$order->save();
}
}
引用元: https://woocommerce.com/
サンプルコード 4
このコードは、払い戻しが削除された場合に WooCommerce のカスタムフィールドをリセットします。
add_action( 'woocommerce_delete_order_refund', 'reset_custom_field_on_refund_deletion', 10, 2 );
function reset_custom_field_on_refund_deletion( $refund_id, $order_id ) {
$order = wc_get_order( $order_id );
$order->update_meta_data( '_custom_field', '' );
$order->save();
}
引用元: https://woocommerce.com/
サンプルコード 5
このコードは、払い戻しが削除された場合に他のプラグインと同期を取るためのリクエストを送るものです。
add_action( 'woocommerce_delete_order_refund', 'sync_with_third_party_service', 10, 2 );
function sync_with_third_party_service( $refund_id, $order_id ) {
// 特定の URL にリクエストを送信する処理
$url = 'https://example.com/sync';
$args = array(
'body' => json_encode( array( 'refund_id' => $refund_id, 'order_id' => $order_id ) ),
'headers' => array( 'Content-Type' => 'application/json' ),
);
wp_remote_post( $url, $args );
}
引用元: https://woocommerce.com/