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

概要

woocommerce_new_payment_token アクションは、WooCommerce で新しい支払いトークンが作成される際に呼び出されるフックです。このアクションは、支払い情報を処理したり、ユーザーやトークンの情報を管理したりするためのカスタム機能を実装する際に広く使用されます。

よく使われるシナリオには以下のようなものがあります:

  1. 銀行口座情報の保存や管理
  2. カスタムサードパーティ支払いゲートウェイの統合
  3. 取引履歴のログ記録
  4. 顧客への通知機能の追加
  5. 定期購読やサブスクリプションの管理
  6. セキュリティトークンの生成や検証

構文

do_action( 'woocommerce_new_payment_token', $token_id, $gateway_id, $user_id );

パラメータ

  • $token_id (int): 新しい支払いトークンの ID。
  • $gateway_id (string): 使用された支払いゲートウェイの ID。
  • $user_id (int): トークンの作成者であるユーザーの ID。

戻り値

このアクション自体は値を返しません。フックを使用することで、他の処理を行うことが可能です。

使用可能なバージョン

  • WooCommerce: 3.0.0以上
  • 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_action( 'woocommerce_new_payment_token', 'custom_new_payment_token', 10, 3 );

function custom_new_payment_token( $token_id, $gateway_id, $user_id ) {
    // 新しい支払いトークンの作成時に、カスタム処理を実行します。
    error_log( "新しいトークンが作成されました。トークンID: {$token_id}, ゲートウェイID: {$gateway_id}, ユーザーID: {$user_id}" );
}

このコードは、新しい支払いトークンが作成されたときに、トークンの情報をエラーログに記録します。

サンプルコード 2

add_action( 'woocommerce_new_payment_token', 'send_notification_on_new_payment_token', 10, 3 );

function send_notification_on_new_payment_token( $token_id, $gateway_id, $user_id ) {
    // ユーザーに新しい支払いトークンが作成されたことを通知します。
    $user_info = get_userdata( $user_id );
    wp_mail( $user_info->user_email, '新しい支払いトークン', 'あなたの新しい支払いトークンが作成されました。' );
}

このコードは、新しいトークンが作成された時にユーザーに通知メールを送信します。

サンプルコード 3

add_action( 'woocommerce_new_payment_token', 'log_payment_token_creation', 10, 3 );

function log_payment_token_creation( $token_id, $gateway_id, $user_id ) {
    // 支払いトークン作成の情報をデータベースに保存します。
    global $wpdb;
    $wpdb->insert( 
        'wp_payment_token_log', 
        array( 
            'token_id' => $token_id, 
            'gateway_id' => $gateway_id, 
            'user_id' => $user_id,
            'created_at' => current_time('mysql')
        ) 
    );
}

このコードは、支払いトークンが作成された時に、その情報をカスタムデータベーステーブルに保存します。

サンプルコード 4

add_action( 'woocommerce_new_payment_token', 'update_user_meta_on_new_token', 10, 3 );

function update_user_meta_on_new_token( $token_id, $gateway_id, $user_id ) {
    // ユーザーメタに新しいトークンのカウントを更新します。
    $count = (int) get_user_meta( $user_id, 'payment_token_count', true );
    update_user_meta( $user_id, 'payment_token_count', $count + 1 );
}

このコードは、ユーザーメタに対して新しいトークンの数をカウントアップします。

サンプルコード 5

add_action( 'woocommerce_new_payment_token', 'create_customer_profile_for_new_token', 10, 3 );

function create_customer_profile_for_new_token( $token_id, $gateway_id, $user_id ) {
    // 新しいトークン作成時に顧客プロフィールを更新する処理を実行。
    // 実際のロジックに応じてカスタマイズします。
    // 例:外部APIへの送信など
}

このコードは、新しい支払いトークンが作成された際に、顧客プロフィールを更新するための処理を実行する場所を指定しています。状況に応じてカスタマイズすることが可能です。

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


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