概要
woocommerce_get_customer_payment_tokens
フィルタは、WooCommerceで顧客の支払いトークンを取得する際に利用されるフックです。このフィルタを使用することで、デフォルトのトークンリストにカスタムトークンを追加したり、削除したり、データを変更することができます。この機能は、顧客が支払い方法を選択する際に、柔軟性を持たせることを目的としたカスタム実装に役立ちます。
主な使い道としては以下のようなものがあります。
- 独自の支払い方法を追加するためのカスタムトークンの生成。
- 特定の条件に基づいてトークンをフィルタリング。
- トークン情報の追加や変更。
- 支払いトークンの自動削除機能の実装。
- 支払い方法の選択肢をユーザーの利用状況に基づいて調整。
- 顧客の支払い情報のセキュリティ向上のためのカスタマイズ。
構文
add_filter( 'woocommerce_get_customer_payment_tokens', 'custom_function_name', 10, 2 );
パラメータ
$tokens
: 顧客の支払いトークンの配列$customer_id
: 顧客のID
戻り値
- フィルタリングされた支払いトークンの配列
WooCommerceのバージョン
このフィルタはWooCommerce 2.6以降で使用可能です。
WordPressのバージョン
WordPress 4.0以降のバージョンで利用可能です。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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_filter( 'woocommerce_get_customer_payment_tokens', 'add_custom_payment_token', 10, 2 );
function add_custom_payment_token( $tokens, $customer_id ) {
$tokens[] = array(
'id' => 'custom_token_1',
'gateway_id' => 'custom_gateway',
'token' => 'My Custom Token',
'type' => 'payment_method',
);
return $tokens;
}
このコードは、顧客の支払いトークンリストにカスタムトークンを追加します。
サンプル2: 特定のトークンを削除する
add_filter( 'woocommerce_get_customer_payment_tokens', 'remove_specific_payment_token', 10, 2 );
function remove_specific_payment_token( $tokens, $customer_id ) {
foreach ( $tokens as $key => $token ) {
if ( 'unwanted_token_id' === $token['id'] ) {
unset( $tokens[$key] );
}
}
return $tokens;
}
このコードは、特定のIDの支払いトークンを削除します。
サンプル3: トークンの追加情報を含める
add_filter( 'woocommerce_get_customer_payment_tokens', 'add_additional_info_to_tokens', 10, 2 );
function add_additional_info_to_tokens( $tokens, $customer_id ) {
foreach ( $tokens as &$token ) {
$token['additional_info'] = 'Additional information about the token';
}
return $tokens;
}
このコードは、各トークンに追加情報を付加します。
サンプル4: トークンをフィルタリングする
add_filter( 'woocommerce_get_customer_payment_tokens', 'filter_tokens_based_on_condition', 10, 2 );
function filter_tokens_based_on_condition( $tokens, $customer_id ) {
// 特定の条件に基づいてトークンをフィルタリング
return array_filter( $tokens, function( $token ) {
return 'specific_condition' !== $token['id'];
});
}
このコードは、特定の条件に合致しないトークンのみを返します。
サンプル5: デフォルトトークンに新しいトークンを追加
add_filter( 'woocommerce_get_customer_payment_tokens', 'add_new_token_to_default', 10, 2 );
function add_new_token_to_default( $tokens, $customer_id ) {
$new_token = array(
'id' => 'new_default_token',
'gateway_id' => 'default_gateway',
'token' => 'New Default Token',
'type' => 'payment_method',
);
array_unshift($tokens, $new_token); // 新しいトークンを先頭に追加
return $tokens;
}
このコードは、デフォルトのトークンリストの先頭に新しいトークンを追加します。