概要
woocommerce_order_update_shipping
アクションは、WooCommerceでの配送情報が更新された際にフックされることができます。このアクションは、主に以下のような機能を実装する際によく使用されます。
- 顧客へのメール通知のカスタマイズ
- サードパーティサービスへの配送情報送信
- データベースや他システムへのログ記録
- ユーザーインターフェースの動的更新
- カスタム条件に基づくフラグの設定
- 配送に関する報告書の生成
構文
do_action( 'woocommerce_order_update_shipping', $order_id, $shipping_address, $shipping_method );
パラメータ
$order_id
(int): 更新された注文のID$shipping_address
(array): 更新された配送先の住所$shipping_method
(string): 使用された配送方法
戻り値
このアクションは戻り値を持ちません。フックを使用する際には、カスタム関数を実行するだけです。
使用可能なプラグインWooCommerceのバージョン
このアクションはWooCommerceバージョン3.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_update_shipping', 'custom_order_update_shipping_message', 10, 3 );
function custom_order_update_shipping_message( $order_id, $shipping_address, $shipping_method ) {
$order = wc_get_order( $order_id );
$email = $order->get_billing_email();
$message = 'Your shipping information has been updated!';
wp_mail( $email, 'Shipping Update', $message );
}
このサンプルコードは、配送情報が更新された時に、顧客にメール通知を送信しています。
サンプルコード2: 配送情報のログ記録
add_action( 'woocommerce_order_update_shipping', 'log_shipping_info', 10, 3 );
function log_shipping_info( $order_id, $shipping_address, $shipping_method ) {
$log_message = 'Order ID ' . $order_id . ' shipping updated to: ' . json_encode( $shipping_address );
error_log( $log_message );
}
このコードは、配送情報が更新された際の詳細をエラーログに記録します。
サンプルコード3: 配送方法に基づく条件処理
add_action( 'woocommerce_order_update_shipping', 'conditional_shipping_action', 10, 3 );
function conditional_shipping_action( $order_id, $shipping_address, $shipping_method ) {
if ( $shipping_method === 'flat_rate' ) {
// 特定の処理を実行
}
}
このサンプルコードは、選択された配送方法が「flat_rate」の場合に特定の処理を実行します。
サンプルコード4: サードパーティーAPIへのデータ送信
add_action( 'woocommerce_order_update_shipping', 'send_shipping_data_to_api', 10, 3 );
function send_shipping_data_to_api( $order_id, $shipping_address, $shipping_method ) {
$api_url = 'https://example.com/api/update-shipping';
$data = array(
'order_id' => $order_id,
'shipping_address' => $shipping_address,
'shipping_method' => $shipping_method,
);
wp_remote_post( $api_url, array(
'body' => json_encode( $data ),
'headers' => array( 'Content-Type' => 'application/json' ),
) );
}
このサンプルは、配送情報が更新された際に外部APIにデータを送信します。
サンプルコード5: 配送情報が変更された際のカスタムフラグ設定
add_action( 'woocommerce_order_update_shipping', 'set_custom_flag_on_shipping_update', 10, 3 );
function set_custom_flag_on_shipping_update( $order_id, $shipping_address, $shipping_method ) {
$order = wc_get_order( $order_id );
$order->update_meta_data( 'shipping_updated', true );
$order->save();
}
このコードは、配送情報が更新された際に、注文メタデータにカスタムフラグを設定します。