プラグインWooCommerceのwoocommerce_checkout_update_order_review_expiredアクションの使用方法・解説

概要

woocommerce_checkout_update_order_review_expired アクションは、WooCommerce のチェックアウトプロセスにおいて、顧客が注文のレビューを更新する際の有効期限を取り扱うためのフックです。このフックは特に次のような状況で使用されることがあります。

  1. 在庫管理の更新:顧客がカート内の商品を確認している間に在庫状況が変わった場合。
  2. 価格の調整:特別割引やクーポンが期限切れになった際に、表示価格を更新するため。
  3. 支払いオプションの変更:選択された配送方法や支払い方法が変更された場合の表示更新。
  4. プロモーションの適用:新たなプロモーションが適用された場合に、カートの内容に反映させるため。
  5. 顧客インターフェースの改善:非同期で情報を更新し、利用者の体験を向上させる。
  6. エラー処理:注文内容にエラーがあった場合、詳細を顧客に通知するため。

構文

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

この関数について質問する


上の計算式の答えを入力してください