概要
woocommerce_generate_order_key
フィルタは、WooCommerceで生成される注文キーをカスタマイズするために使用されます。注文キーは、特定の注文を識別するユニークなストリングで、ユーザーがその注文にアクセスする際などに使用されます。このフィルタを使うことで、デフォルトの注文キー生成ロジックを変更したり、特定の情報を追加することが可能です。
よく使われる機能
- 注文キーにプレフィックスやサフィックスを追加する。
- 特定の顧客情報を組み込んで、より識別しやすくする。
- 特定の状況下でのみ異なる形式の注文キーを生成する。
- エラーチェックを追加したカスタム生成ロジックを実装する。
- カスタムのトラッキングシステムに合わせたキーの生成。
- 他のプラグインとの互換性を確保するためのキー変更。
構文
add_filter('woocommerce_generate_order_key', 'custom_order_key_function', 10, 2);
パラメータ
$order_key
(string): 生成された注文キーの初期値。$order
(WC_Order): このキーに関連する注文オブジェクト。
戻り値
- 変更された注文キー(string)。
WooCommerceバージョン
- 5.0以上
WordPressバージョン
- 5.0以上
サンプルコード
サンプルコード1: カスタムプレフィックスの追加
add_filter('woocommerce_generate_order_key', 'add_custom_prefix_to_order_key', 10, 2);
function add_custom_prefix_to_order_key($order_key, $order) {
return 'CUSTOMPREFIX-' . $order_key;
}
このコードは、生成される注文キーに「CUSTOMPREFIX-」というプレフィックスを追加します。
サンプルコード2: 注文IDを含める
add_filter('woocommerce_generate_order_key', 'include_order_id_in_order_key', 10, 2);
function include_order_id_in_order_key($order_key, $order) {
return $order->get_id() . '-' . $order_key;
}
このコードは、注文IDを注文キーの前に追加し、より具体的な識別を可能にします。
サンプルコード3: ユーザー名を追加
add_filter('woocommerce_generate_order_key', 'add_username_to_order_key', 10, 2);
function add_username_to_order_key($order_key, $order) {
$user = wp_get_current_user();
return $order_key . '-' . $user->user_login;
}
このコードは、現在のユーザー名を注文キーに追加します。
サンプルコード4: 日付を含める
add_filter('woocommerce_generate_order_key', 'add_date_to_order_key', 10, 2);
function add_date_to_order_key($order_key, $order) {
return $order_key . '-' . date('Ymd');
}
このコードは、注文の生成日を注文キーに付加します。
サンプルコード5: ランダムな文字列を追加
add_filter('woocommerce_generate_order_key', 'add_random_string_to_order_key', 10, 2);
function add_random_string_to_order_key($order_key, $order) {
return $order_key . '-' . wp_unique_id();
}
このコードは、ユニークな文字列を追加することで、さらに注文キーを独自のものにします。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |