概要
woocommerce_checkout_update_order_review_expired
アクションは、WooCommerce のチェックアウトプロセスにおいて、顧客が注文のレビューを更新する際の有効期限を取り扱うためのフックです。このフックは特に次のような状況で使用されることがあります。
- 在庫管理の更新:顧客がカート内の商品を確認している間に在庫状況が変わった場合。
- 価格の調整:特別割引やクーポンが期限切れになった際に、表示価格を更新するため。
- 支払いオプションの変更:選択された配送方法や支払い方法が変更された場合の表示更新。
- プロモーションの適用:新たなプロモーションが適用された場合に、カートの内容に反映させるため。
- 顧客インターフェースの改善:非同期で情報を更新し、利用者の体験を向上させる。
- エラー処理:注文内容にエラーがあった場合、詳細を顧客に通知するため。
構文
add_action('woocommerce_checkout_update_order_review_expired', 'your_function_name', 10, 1);
パラメータ
$order_review
(array):更新された注文明細の情報を含む配列。
戻り値
このアクションは戻り値を返しません。
使用可能なプラグインバージョン
- WooCommerce のバージョン:4.0 以降
- WordPress のバージョン:5.0 以降
サンプルコード
サンプルコード1: 在庫の更新
このサンプルコードは、注文レビューの有効期限が切れた際に在庫を再確認し、在庫がない場合はエラーメッセージを表示します。
add_action('woocommerce_checkout_update_order_review_expired', 'check_stock_on_review_expired');
function check_stock_on_review_expired($order_review) {
foreach($order_review['line_items'] as $item) {
$product = wc_get_product($item['product_id']);
if (!$product->is_in_stock()) {
wc_add_notice(__('One or more items are no longer available.'), 'error');
}
}
}
引用元: https://woocommerce.com/
サンプルコード2: 価格の変更
このサンプルコードでは、特定の条件で価格を変更する処理を行います。
add_action('woocommerce_checkout_update_order_review_expired', 'update_price_on_review_expired');
function update_price_on_review_expired($order_review) {
if(some_condition()) {
// 特定の条件に基づいて価格を変更
$order_review['total'] = apply_discount($order_review['total']);
}
}
引用元: https://woocommerce.com/
サンプルコード3: メッセージの追加
このサンプルコードでは、注文レビューが期限切れになる際に顧客に通知メッセージを表示します。
add_action('woocommerce_checkout_update_order_review_expired', 'add_message_on_review_expired');
function add_message_on_review_expired($order_review) {
wc_add_notice(__('Your review has expired! Please check your cart again.'), 'notice');
}
引用元: https://woocommerce.com/
サンプルコード4: プロモーションの適用
このサンプルコードでは、時間切れのプロモーションを確認し、適用する処理を実装します。
add_action('woocommerce_checkout_update_order_review_expired', 'apply_promotion_on_review_expired');
function apply_promotion_on_review_expired($order_review) {
if(is_promotion_expired()) {
// プロモーションを適用
remove_promotion_from_cart();
}
}
引用元: https://woocommerce.com/
サンプルコード5: エラーハンドリング
このサンプルコードは、チェックアウト時にエラーを処理するためのフックを利用したものです。
add_action('woocommerce_checkout_update_order_review_expired', 'handle_errors_on_review_expired');
function handle_errors_on_review_expired($order_review) {
if(!is_valid_order($order_review)) {
wc_add_notice(__('There was an error with your order.'), 'error');
}
}
引用元: https://woocommerce.com/
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |