概要
woocommerce_order_refund_object_updated_props
は、WooCommerceにおける注文の返金情報が更新された際に発火するフックです。このアクションは、主に以下の様な機能を実装する際に利用されます。
- 返金処理のカスタマイズ
- 返金時の通知の送信
- 返金履歴のログ
- カスタムデータの保存
- 返金金額の条件付き計算
- 外部システムとの連携
構文
do_action( 'woocommerce_order_refund_object_updated_props', $order_id, $refund );
パラメータ
$order_id
(int) – 更新された返金対象の注文ID$refund
(WC_Order_Refund) – 更新された返金オブジェクト
戻り値
このアクションには戻り値はありません。フックを介して任意の処理を実行します。
使用可能なプラグイン/WooCommerceのバージョン
- WooCommerceバージョン: 3.0.0以上
- 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_order_refund_object_updated_props', 'send_custom_refund_notification', 10, 2 );
function send_custom_refund_notification( $order_id, $refund ) {
$order = wc_get_order( $order_id );
// メール送信コード
wp_mail( $order->get_billing_email(), '返金通知', '返金が処理されました。' );
}
サンプルコード2: 返金履歴のログ記録
このサンプルは、返金が行われるたびに履歴を別のテーブルに記録します。
add_action( 'woocommerce_order_refund_object_updated_props', 'log_refund_history', 10, 2 );
function log_refund_history( $order_id, $refund ) {
global $wpdb;
$table_name = $wpdb->prefix . 'refund_history';
$wpdb->insert(
$table_name,
array(
'order_id' => $order_id,
'refund_id' => $refund->get_id(),
'created_at' => current_time( 'mysql' )
)
);
}
サンプルコード3: 返金金額の条件付き計算
このサンプルでは、特定の条件に基づいて返金金額を調整します。
add_action( 'woocommerce_order_refund_object_updated_props', 'adjust_refund_amount_conditionally', 10, 2 );
function adjust_refund_amount_conditionally( $order_id, $refund ) {
if ( /* ある条件 */ ) {
$adjusted_amount = $refund->get_amount() * 0.5; // 50%の返金
$refund->set_amount( $adjusted_amount );
}
}
サンプルコード4: 外部APIとの連携
このコードは、返金が行われた際に外部APIに情報を送信します。
add_action( 'woocommerce_order_refund_object_updated_props', 'send_refund_to_external_api', 10, 2 );
function send_refund_to_external_api( $order_id, $refund ) {
$data = array(
'order_id' => $order_id,
'refund_id' => $refund->get_id(),
'amount' => $refund->get_amount(),
);
wp_remote_post( 'https://example.com/api/refund', array(
'body' => json_encode( $data ),
'headers' => array( 'Content-Type' => 'application/json' ),
));
}
サンプルコード5: カスタムデータの保存
この例では、返金時にカスタムメタデータを保存します。
add_action( 'woocommerce_order_refund_object_updated_props', 'save_custom_refund_data', 10, 2 );
function save_custom_refund_data( $order_id, $refund ) {
$refund_id = $refund->get_id();
update_post_meta( $refund_id, '_custom_refund_meta', 'カスタムデータ' );
}
これらのサンプルは、woocommerce_order_refund_object_updated_props
アクションを使用して、さまざまなカスタマイズ及び機能を実装する方法を示しています。このフックを利用することで、WooCommerceの返金処理を柔軟に拡張することが可能です。