概要
woocommerce_order_fully_refunded
アクションは、WooCommerceにおいて注文が全額返金された際にトリガーされるフックです。このアクションを使うと、特定のイベントが発生したときにカスタム処理を実行することができます。例えば、特定のメール通知を送信したり、ログを記録したり、ストレージにデータを更新したりする際に便利です。以下はこのアクションがよく使用される状況です:
- 返金処理が完了した時の通知を顧客に送信する
- ストアの効率を向上させるために返金理由をログに記録する
- 顧客のアカウントにクレジットを追加する
- キャンペーンやプロモーションを取り消す
- 調査やデータ分析のための統計データを更新する
- サードパーティのサービスへの通知を送信する
構文
do_action( 'woocommerce_order_fully_refunded', $order_id );
パラメータ
$order_id
: 返金が行われた注文のID(整数)
戻り値
このアクションは、特に戻り値を持たず、副作用を持つ処理を実行します。
使用可能なバージョン
- WooCommerce: 2.1.0以降
- WordPress: 4.0以降
サンプルコード
サンプルコード1: 返金完了時に顧客通知を送信
add_action('woocommerce_order_fully_refunded', 'send_refund_notification', 10, 1);
function send_refund_notification($order_id) {
$order = wc_get_order($order_id);
$to = $order->get_billing_email();
$subject = 'Your Refund has been Processed';
$message = 'Dear ' . $order->get_billing_first_name() . ', your refund has been processed successfully.';
wp_mail($to, $subject, $message);
}
このサンプルコードは、注文が全額返金された際に顧客に通知メールを送信します。メールには返金が処理されたことが記載されています。
サンプルコード2: 返金の理由をログに記録
add_action('woocommerce_order_fully_refunded', 'log_refund_reason', 10, 1);
function log_refund_reason($order_id) {
$order = wc_get_order($order_id);
if ($order && $order->get_meta('_refund_reason')) {
$reason = $order->get_meta('_refund_reason');
error_log('Order ID: ' . $order_id . ' was refunded. Reason: ' . $reason);
}
}
この例では、返金理由があればそれをログに記録します。注文IDとその返金理由をエラーログに出力します。
サンプルコード3: 顧客アカウントにクレジットを追加
add_action('woocommerce_order_fully_refunded', 'add_credit_to_customer', 10, 1);
function add_credit_to_customer($order_id) {
$order = wc_get_order($order_id);
$user_id = $order->get_user_id();
$credit_amount = $order->get_total();
if ($user_id) {
update_user_meta($user_id, 'customer_credit', get_user_meta($user_id, 'customer_credit', true) + $credit_amount);
}
}
このサンプルコードは、全額返金された注文の金額を顧客アカウントにクレジットとして追加します。
サンプルコード4: 返金後の特定のキャンペーンを取り消す
add_action('woocommerce_order_fully_refunded', 'cancel_affiliate_campaign', 10, 1);
function cancel_affiliate_campaign($order_id) {
// 特定のキャンペーンを無効にする処理
deactivate_affiliate_campaign($order_id);
}
このコードは、返金が行われた後に特定のアフィリエイトキャンペーンを無効にするための処理を実行します。
サンプルコード5: データ分析用の統計を更新
add_action('woocommerce_order_fully_refunded', 'update_refund_statistics', 10, 1);
function update_refund_statistics($order_id) {
// 返金の回数をデータベースに記録する処理
$current_count = get_option('refund_count', 0);
update_option('refund_count', $current_count + 1);
}
このサンプルでは、返金が発生するたびに、統計データとして返金の回数を更新する処理を行います。
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |