概要
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 |