ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

ユーザーの電話番号をAuthorize.Netに送信する

支払いフォームに入力するユーザーの電話番号をAuthorize.net に送信しますか?デフォルトでは、WPForms は支払い設定の Authorize.net タブから、顧客の名前、メールアドレス、住所を送信するオプションをすでに提供しています。

このチュートリアルでは、カスタム PHP スニペットを使用して、トランザクションごとに電話番号を送信する方法を説明します。


支払いフォームの作成

注意: Authorize.net 支払い方法にアクセスするには、Elite ライセンスレベルが必要です。

まず、新しい支払いフォームを作成し、フィールドを追加します。フォームには、ユーザーの電話番号をキャプチャするために使用する電話フィールドも追加します。

フォームを作成したら、[支払い] タブを設定して Authorize.net トランザクションを処理します。Authorize.net フォームの作成にサポートが必要な場合は、こちらの役立つドキュメントをご覧ください

フィールドのマッピング

次に、名前、メール、住所フィールドをマッピングして、この情報を各フォーム送信とともに送信します。

これを行うには、フォームビルダー内から [支払い] » [Authorize.net] に移動します。次に、[Authorize.Net 支払いを有効にする] オプションをオンに切り替えます。

Authorize.netの支払いを有効にする

このオプションを有効にしたら、適切なフィールドをマッピングし、支払い説明と必要な条件付きロジックを提供してください。

このチュートリアルでは、条件付きロジックの有効化機能は使用しないため、これは無効のままになります。

WPFormsのフォームビルダーから、名前、メールアドレス、住所をAuthorize.netにマッピングできます

スニペットの追加

次に、スニペットをサイトに追加します。カスタムスニペットの追加方法と場所についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

/*
 * Include a phone number with Authorize.Net args.
 *
 * @link  https://wpforms.com/developers/how-to-send-the-phone-number-to-authorize-net/
 */
  
function wpf_dev_authorize_net_process_payment_single_add_phone_to_args( $args, $process ) {
      
    // Replace 26 in $process->fields[3] to an id of your phone field.
    if ( isset( $process->fields[3][ 'value' ] ) ) {
          
        $args[ 'phone' ] = $process->fields[3][ 'value' ];
          
    }
      
    return $args;
}
  
add_filter( 'wpforms_authorize_net_process_payment_single_args', 'wpf_dev_authorize_net_process_payment_single_add_phone_to_args', 10, 2 );
  
/**
 * Set the phone number on customer billing information.
 *
 * @link  https://wpforms.com/developers/how-to-send-the-phone-number-to-authorize-net/
 */
   
function wpf_dev_authorize_net_process_transaction_add_phone_to_transaction( $transaction, $args ) {
  
   $bill_to = $transaction->getBillTo();
  
   if ( is_null( $bill_to ) ) {
      $bill_to = new netauthorizeapicontractv1CustomerAddressType();
   }
  
   $phone = $args[ 'phone' ];
  
   $bill_to->setPhoneNumber( $phone );
  
   $transaction->setBillTo( $bill_to );
  
   return $transaction;
}
  
add_filter( 'wpforms_authorize_net_process_transaction', 'wpf_dev_authorize_net_process_transaction_add_phone_to_transaction', 10, 2 );

このスニペットは、電話番号に設定されているフィールド ID を探します。この場合、電話フィールドのフィールド ID は 3 です。次に、その番号を保存し、次の関数でトランザクションの請求情報に setPhoneNumber として処理します。

電話フィールドID

電話フィールドの独自の ID に一致するようにフィールド ID を更新する必要があります。ID 番号を見つけるのに役立つ情報が必要な場合は、こちらのチュートリアルをご覧ください

これで、トランザクションが処理されると、電話番号が顧客の請求情報の一部になっていることが簡単にわかります。

電話番号はトランザクションとともに渡され、顧客の請求情報に保存されるようになりました

よくある質問

これらは、電話番号フィールドの値を発行先に送信する際に、よく寄せられる質問に対する回答です。

Q: このスニペットが機能しないのはなぜですか?

A: トランザクションに電話番号が表示されない場合は、fields[3][ 'value' ] 内の ID を更新したことを確認してください。

これで完了です!Authorize.net 支払いへの電話番号フィールド値の追加方法を学びました。

次に、請求書番号を発行先に送信しますか?請求書番号を発行先に送信する方法に関するチュートリアルを必ず確認してください。

フィルター参照: