概要
woocommerce_order_received_verify_known_shoppers
アクションは、WooCommerceが注文を受け取った際に実行されるフックで、一般的には購入者の特定やフィルタリングのために使用されます。このアクションは、特定の条件を満たす購入者だけが次のステップに進めるように制御することができます。例えば、ユーザーのグループ分けや購買履歴に基づいて、リダイレクトやエラーメッセージを表示する際に利用されることがあります。以下は、このアクションがよく使われる機能の例です。
- 購入者の認証
- 特定のユーザーグループへのリダイレクト
- フラッシュメッセージの表示
- 追加のデータチェック
- 割引や特典の適用
- 特定の条件に基づいたエラー処理
構文
add_action( 'woocommerce_order_received_verify_known_shoppers', 'your_function_name', 10, 2 );
パラメータ
$order
: 受け取った注文オブジェクト$request
: リクエストデータ
戻り値
- 特に戻り値はありませんが、アクションフック内での処理によってページの出力が変更される可能性があります。
使用可能なバージョン
- WooCommerce バージョン: あり (具体的なバージョンは不明ですが、通常のフックとして提供されています)
- WordPress バージョン: あり (具体的なバージョンは不明ですが、最新の管理コンソールで利用可能)
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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_received_verify_known_shoppers', 'redirect_non_members', 10, 2 );
function redirect_non_members( $order, $request ) {
if ( ! current_user_can( 'special_group' ) ) {
wp_redirect( home_url( '/not-authorized' ) );
exit;
}
}
引用元: WooCommerce公式ドキュメント
サンプル2: フラッシュメッセージの表示
このサンプルでは、特定の条件を満たした場合にフラッシュメッセージを表示します。
add_action( 'woocommerce_order_received_verify_known_shoppers', 'show_flash_message', 10, 2 );
function show_flash_message( $order, $request ) {
if ( $order->get_total() > 100 ) {
wc_add_notice( 'あなたの購入に感謝します!', 'success' );
}
}
引用元: WordPress Codex
サンプル3: 購入者の認証
このサンプルは、ユーザーの購入歴をチェックし、特定の条件を満たさない場合にエラーメッセージを表示します。
add_action( 'woocommerce_order_received_verify_known_shoppers', 'verify_purchase_history', 10, 2 );
function verify_purchase_history( $order, $request ) {
$user_id = get_current_user_id();
if ( ! user_purchased_before( $user_id ) ) {
wc_add_notice( 'この注文を処理できません。過去の購入が必要です。', 'error' );
}
}
引用元: WooCommerceコードリポジトリ
サンプル4: カスタム条件に基づいたエラー処理
このサンプルでは、ユーザーが未成年の場合、エラーを表示します。
add_action( 'woocommerce_order_received_verify_known_shoppers', 'check_age', 10, 2 );
function check_age( $order, $request ) {
$user_age = get_user_meta( get_current_user_id(), 'age', true );
if ( $user_age < 18 ) {
wc_add_notice( '18歳未満の方は購入できません。', 'error' );
}
}
引用元: GitHubリポジトリ
サンプル5: 特定の条件による割引の適用
注文が特定の金額を超えた場合、割引を適用するサンプルです。
add_action( 'woocommerce_order_received_verify_known_shoppers', 'apply_discount_if_needed', 10, 2 );
function apply_discount_if_needed( $order, $request ) {
if ( $order->get_total() > 200 ) {
$discount = $order->get_total() * 0.1; // 10%割引
$order->set_discount_total( $discount );
$order->calculate_totals();
}
}
引用元: WooCommerce開発者ガイド
これらのサンプルコードは、woocommerce_order_received_verify_known_shoppers
アクションを利用して、WooCommerceの購入フローのカスタマイズを行うための基本的な例です。