支払いフォームに入力したユーザーの電話番号をAuthorize.netに送信したいですか?デフォルトでは、WPFormsはすでに支払い設定内のAuthroize.netタブから顧客の名前、メールアドレス、住所を送信するオプションを提供しています。
このチュートリアルでは、カスタムPHPスニペットを使用して、トランザクションごとに電話番号を送信する方法を説明します。
支払いフォームの作成
注:Authorize.netの支払い方法にアクセスするには、Eliteライセンスレベルが必要です。
はじめに、新しい支払いフォームを作成し、このフォームにフィールドを追加します。フォームには、ユーザーの電話番号を取得するために使用するPhoneフィールドも追加します。
フォームを作成したら、Authorize.netトランザクションを処理するようにPaymentsタブを設定します。Authorize.netフォームの作成にサポートが必要な場合は、こちらの便利なドキュメントをご覧ください。
フィールドのマッピング
次に、Name、Email、Addressフィールドをマッピングして、フォーム送信のたびにこれらの情報を送信するようにします。
これを行うには、フォームビルダーの中からPayments " Authorize.netに進みます。次に、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を探します。この場合、PhoneフィールドのフィールドIDは3です。そして、その番号を保存し、次の関数でトランザクションの請求情報にPhoneNumberを設定する処理を行います。

フィールドIDを電話番号フィールドのIDに合わせて更新する必要があります。ID番号の見つけ方については、こちらのチュートリアルをご覧ください。
これで、取引が処理されるときに、電話番号が顧客の請求情報の一部になっていることが簡単にわかります。

よくある質問
これらは、電話番号フィールドの値をAuthorize.Netに送信する際によくある質問に対する回答です。
Q: なぜこのスニペットが機能しないのですか?
A: 取引に電話番号が表示されない場合は、IDが更新されていることを確認してください。 fields[
3][ 'value' ]
.
以上です!これで、Authorize.Netの支払いに電話番号フィールドの値を追加する方法を学びました。
次に、Authorize.Netに請求書番号を送信しますか?Authorize.Net決済で請求書番号を送信する方法のチュートリアルをぜひご覧ください。
関連
フィルター参照: