AI要約
WordPressフォームで基本的な操作や高度な操作を実行するための数式を構築する方法を学びたいですか?計算アドオンを使用すると、フォームを電卓に変換して、ユーザー固有の問題を解決できます。
このチュートリアルでは、計算アドオンのチートシートガイドですべてのルール、演算、および関数を網羅して、数式を構築する方法を説明します。
この記事の内容
開始する前に、WordPress サイトに WPForms が インストールおよび有効化 されており、ライセンスが認証済み であることを確認する必要があります。
チートシートドキュメントへのアクセス
注意: このガイドに従うには、WordPressサイトに計算アドオンがインストールされ、有効になっている必要があります。開始するには、計算アドオンのドキュメントを参照してください。
計算アドオンをインストールした後、新しいフォームを作成するか、既存のフォームを編集してフォームビルダーにアクセスします。
フォームビルダーで、フォームフィールドの計算モードを有効にできるように、サポートされているフィールドのいずれかを追加する必要があります。
サポートされているフィールドを追加したら、それをクリックしてフィールドオプションパネルを開きます。次に、高度な設定タブに移動します。そこで、計算を有効にするトグルが表示されます。

このオプションを有効にすると、数式ビルダーが開きます。ここで、他のフィールド値を変数として使用して、数式を構築し、計算を実行できます。
数式ビルダーの上にあるチートシートリンクをクリックすることで、計算アドオンのチートシートドキュメントにアクセスできます。

または、このリンクを使用してこのページにアクセスすることもできます。チートシートガイドには、現在計算アドオンでサポートされているさまざまなルール、演算子、および関数が含まれています。
計算アドオンのルールと演算子の理解
プログラミング言語にルールと構文があるのと同様に、数式ビルダーにも独自のルールがあります。これらのルールに従うことで、数式が意図したとおりに機能することが保証されます。以下に、従うべき最も重要なルールを説明します。
- 数値を加算する場合、小数点値にはドット(.)のみを使用できます(例:59.99)。大きな数値を区切るためにカンマを使用することは許可されておらず、数式を検証するとエラーが返されます。

- 文字列テキストは一重引用符(')または二重引用符(")で囲んでください。
- 数式ビルダーでは、フォームフィールドのみを変数として使用できます。計算アドオンでは、フィールド変数以外の変数を宣言することは許可されていません。
- 数式ビルダーの各行の後にセミコロンを追加することは任意です。ただし、条件分岐を記述している場合は、
endif行にセミコロンが必要です。
次のセクションでは、変数の仕組みを説明し、数式ビルダーでサポートされている操作の例を示します。
フィールド変数の使用
サポートされているフィールドで計算モードが有効になったら、フォーム内の他のフィールドを変数として使用して数式を構築できます。以下に、フィールド変数を使用する際のルールを示します。
- 各フィールド変数は
$F記号で始まり、その後にフィールドIDが続きます。したがって、完全な変数名は$FX(XはフィールドID)となります。 - サブフィールドのフィールド変数は、
$FX_subfield構文を使用して追加されます。XはフィールドID、subfieldはサブフィールド識別子です。たとえば、F1_firstは、Nameフィールドの名サブフィールドを表します。 - 支払いフィールドでユーザーが選択した値にアクセスするには、
$FX_amount形式を使用します。たとえば、単一項目フィールドのIDが2の場合、フィールド変数は$F2になります。選択された値の金額は$F2_amountになります。 - チェックボックスまたはチェックボックス項目フィールドの値は、
$FX_n構文を使用してアクセスできます。XはフィールドID、nはチェックボックスオプションです。これは基本的に、チェックボックスフィールドの最初の選択肢は$FX_1、選択肢2は$FX_2、というようになります。

- Multiple Choice and Dropdown fields do not currently support targeting options using unique IDs. If you’d like to target the choice the user selected in an if statement, you’ll need to use an exact match to check the value in your condition. Here is an example:
if ($FX == 'first choice'): // formula to execute endif;
数式構築の前に考慮すべきヒント
数式を構築する前に、プロセスを迅速化し、エラーの発生を回避するために役立つヒントをいくつかご紹介します。以下に、推奨事項トップをご紹介します。
- 使用したい計算式を確実に把握してください。事前に数式を知っておくことで、フォームに追加するフィールドを把握できます。
- 計算結果を別のフィールド変数に保存したい場合は、非表示フィールドを使用してください。計算アドオンはカスタム変数の使用をサポートしていません。そのため、数式でこの機能が必要な場合は、非表示フィールドを使用して計算結果を保存することを検討してください。
- フィールドで文字列と数値を連結する場合は、単一行テキストフィールドまたは段落テキストフィールドを使用することをお勧めします。
- 文字列と数値を組み合わせる場合は、数式をif文で囲み、必須フィールド変数が入力されている場合にのみ表示されるように条件を設定してください。これにより、フィールドにフロントエンドで未定義の値が含まれないようになります。

算術演算子を使用した数式の構築
計算アドオンを使用すると、加算、減算、乗算、除算などのアクションを実行する基本的な数式を構築できます。
この例では、2つの数値が与えられたときに算術演算を実行する電卓を作成します。
まず、フォームビルダーを開き、2つの数値フィールドを追加します。各フィールドをクリックし、フィールドラベルを好きな名前に変更します。この例では、両方のフィールドのラベルとして数値1と数値2を使用します。

次に、セクション区切りを追加し、ラベルを算術演算に変更します。その下に、レイアウトフィールドを追加し、ラベル加算、減算、乗算、除算の4つの数値フィールドを追加します。

次に、加算フィールドを選択してフィールドオプションを開きます。その後、詳細タブに移動します。

そこに到達したら、計算を有効にするオプションをオンの位置に切り替えます。

数式ビルダーで、両方の数値フィールドの値($F1 + $F2)を追加する方程式を作成します。

最初の数式を追加した後、残りのフィールドで計算を有効にし、数式を更新してください。各フィールドの数式は次のようになります。
- 加算:
$F1 + $F2 - 減算:
$F1 - $F2 - 乗算:
$F1 * $F2 - 除算:
$F1 / $F2
注意:フィールド変数がフォーム内の数値フィールドと一致していることを確認してください。
各フィールドの数式を追加したら、フォームを保存してプレビューし、方程式が期待どおりに機能することを確認してください。

条件分岐を使用した数式の構築
if/elseステートメントを使用すると、指定された条件が満たされた場合にのみ機能する高度な数式を作成できます。デフォルトでは、ifステートメントは次の構文を持ちます。
if(condition): // formula to calculate on true else: // formula to calculate on false endif;
ifステートメントの後の括弧内に、確認したい条件を指定する必要があります。次に、ifブロック内に、条件が真の場合に実行したい方程式を記述します。
elseブロックには、条件が偽の場合に実行されるべき方程式が含まれています。この条件付きステートメントの使用方法の例を次に示します。
if($FX_amount > 50): ($FX_amount * 5/100) else: 7 endif;
注意:上記の方程式のXは、フィールドIDを表すために使用されます。方程式を作成する際は、Xを対象のフィールドIDに置き換えてください。
上記の例では、単一項目フィールドで計算モードを有効にし、ユーザーが選択した金額が50より大きいかどうかを確認しています。真の場合、追加料金は支払い金額の5%になります。それ以外の場合、elseブロックでは、50未満の金額に対して料金を7に設定します。
方程式に複数の条件を追加したい場合は、elseif()ステートメントを使用します。上記の方程式の更新バージョンを次に示します。
if ($FX_amount > 50 && $FX_amount <= 200): $FX_amount * (5 / 100) elseif($FX_amount > 200): $FX_amount * (2.5 / 100) else: 10 endif;
計算アドオンを使用すると、数式ビルダーで無制限のelseifステートメントを使用できます。数式ビルダーでは、ifステートメント内にifステートメントをネストすることもできます。例を次に示します。
if ($FX_amount > 50 && $FX_amount <= 200):
if($FX == 'shipping'):
$FX_amount * (5 / 100)
endif;
elseif($FX_amount > 200):
$FX_amount * (2.5 / 100)
else:
10
endif;
注意:数式ビルダーに追加するifステートメントには、endif;行が必要です。そうしないと、検証時に数式でエラーが発生します。
比較演算子を使用した数式の構築
比較演算子を使用すると、フィールド変数と数値、文字列、または別のフィールド変数の値を比較できます。これは、ifステートメントの条件を記述するためによく使用されます。例を次に示します。
if ($FX < 25):
$FX * (10 / 100)
elseif($FX >= 25 && $FX < 150):
$FX * (5 / 100)
elseif($FX >= 150):
$FX * (3 / 100)
else:
10
endif;
上記の方程式では、比較演算子を使用して各ifステートメントブロックの条件を記述しています。最初に真となる条件が実行されます。
&&) 演算子を使用したことに注意してください。論理演算子を使用すると、2つ以上の条件を連鎖させることができます。次のセクションでは、それらがどのように機能するかを詳しく説明します。
論理演算子を使用した数式の構築
計算アドオンは、ANDやOR演算子などの論理演算子の使用をサポートしています。チートシートには、利用可能な論理演算子と、数式ビルダーでそれらがどのように表されるかが記載されています。以下に、計算アドオンがサポートする論理演算子を強調表示しました。
- AND (
&&): すべての条件が true の場合にステートメントは true を返します。 - OR (
||): いずれかの個々の条件が true の場合にステートメントは true を返します。 - NOT (
!): 否定とも呼ばれます。true の値を false に、false の値を true に変換します。
これらの演算子は、条件ステートメントと組み合わせて使用できます。これにより、2つ以上の条件を結合して条件ステートメントを制限できます。以下に、これらの演算子の基本的な使用例を示します。
AND 演算子を使用した成績計算機
この例では、ユーザーのスコアに基づいて成績を返す計算機を構築します。まず、数値フィールドと一行テキストフィールドを追加し、フィールドラベルをそれぞれスコアと成績に変更します。
その後、成績フィールドで計算モードを有効にし、以下の数式を追加します。

if ( $F3 >= 95 ):
'A+'
elseif ( $F3 >= 90 && $F3 < 95 ):
'A'
elseif ( $F3 >= 85 && $F3 < 90 ):
'B+'
elseif ( $F3 >= 80 && $F3 < 85 ):
'B'
elseif ( $F3 >= 75 && $F3 < 80 ):
'C+'
elseif ( $F3 >= 70 && $F3 < 75 ):
'C'
elseif ( $F3 >= 65 && $F3 < 70 ):
'D+'
elseif ( $F3 >= 60 && $F3 < 65 ):
'D'
elseif ( $F3 >=0 && $F3 < 60 ):
'F'
endif;
注意: 上記の数式内の$F3は、スコアフィールドのフィールド変数です。IDがフォームビルダーのIDと一致していることを確認してください。
&&演算子を使用すると、両方の比較が true を返した場合に条件が true になります。
クリック単価計算機
この例では、指定されたキャンペーンのクリック単価を計算します。これには2つのフィールド変数が必要です:請求された合計金額と獲得したクリック数。したがって、2つの数値フィールドを追加し、各フィールドのラベルをそれぞれ請求された合計金額とクリック数に更新する必要があります。
計算を実行するために、単一項目フィールドも追加する必要があります。
これら3つのフィールドを追加したら、単一項目フィールドを選択し、ラベルをクリック単価 (CPC) に変更します。次に、[詳細] タブに移動し、計算モードを有効にします。その後、以下の数式を数式ビルダーに追加します。
if ( $F1 || $F2 ):
$F1 / $F2
else:
0
endif;
条件では、ユーザーがいずれかのフィールドに値を入力したかどうかを確認しています。いずれかの条件が true になると、if ステートメントの数式が実行されます。
計算数式でサポートされている関数の使用
計算アドオンは、特定のタスクを簡単に実行するための多数の関数をサポートしています。数学関数、文字列関数、日付/時刻関数、およびデバッグ関数があります。チートシートのドキュメントには、サポートされている関数のリストとその機能が記載されています。
数学関数
基本的な数学演算と複雑な数学演算を実行するための関数があります。これらの関数は、数式に必要な方程式の数を減らすのに役立ちます。
例えば、2つ以上の数値の平均を求める方程式を手動で記述する代わりに、average()関数を使用して指定された数値セットの平均値を計算できます。実装例を以下に示します。

average($F1, $F2, $F3)
上記の例では、3つの数値フィールドの平均を計算しています。ただし、average()関数には無制限の数のフィールドを追加できます。
ユーザーが各数値フィールドに値を入力すると、計算が有効になっているフィールドがこれらの数値の平均を返します。

おそらく使用するもう1つの関数はround()関数です。この関数は2つの引数を取ります。
- 値(フィールド変数):丸めたい数値。これはフォームでの計算結果にすることができます。
- 精度:精度レベルは、使用したい小数点以下の桁数を示します。2を入力すると、数値を最も近い小数点以下2桁に丸めます。
関数のパラメータとして別の関数を使用できます。たとえば、上記の例で使用した平均式をround関数でラップし、精度レベルを2に設定できます。
round(average($F1, $F2, $F3), 2)
この方程式は、最初に数値の平均を計算します。その後、round()関数が結果を最も近い小数点以下2桁に丸めます。
数式を構築する際に使用できるその他の関数もあります。それらの一部には、べき乗(pow(base, exponent))、平方根(sqrt(value))、対数(log(value))、乱数生成器(rand(min, max))などがあります。
構築しようとしている数式に関数があるかどうかを確認するために、チートシートガイドを確認することをお勧めします。
文字列関数
数式ビルダーで文字列に対する操作を実行するために使用できる関数はたくさんあります。最も人気のある関数の1つはconcat()関数です。この関数を使用すると、2つ以上の文字列または数値を結合できます。
括弧内に、結合したい文字列と数値を指定し、それぞれをカンマで区切ります。例を以下に示します。
concat('Random generated number ', rand($F1, $F2))
注意:concat()関数を使用して、無制限の文字列と数値を結合できます。各項目をカンマで区切るようにしてください。
フロントエンドでは、フィールドがランダムな数値を生成し、文字列と結果をフィールドの値として連結します。

もう1つの便利な関数はtruncate()関数です。この関数は、文字列テキストと切り捨てる長さの2つのパラメータを受け取ります。
この関数を使用すると、文字列テキストを削除し、指定した長さまでの文字を返します。これは、メールアドレスに基づいてユーザーのユーザー名を自動生成したい場合に役立ちます。例を以下に示します。
ユーザー名ジェネレーター
フォームビルダーで、メールフィールドと一行テキストフィールドを追加します。その後、一行テキストフィールドを選択し、ラベルをユーザー名に変更して、フィールドの計算を有効にします。
数式ビルダー内で、以下の数式を追加します。
truncate($F1, 6)
上記の数式にある$F1は、文字列テキストとして使用されるEメールフィールドです。6は返される文字列の長さです。これは、数式がEメールフィールドの最初の6文字を返すことを意味します。

日付/時刻関数
計算アドオンは、数式を構築する際に使用できる日付と時刻の関数を提供します。これらの関数は、サイトに基本的な時計を作成したり、年齢計算機を作成したりするなど、いくつかのユースケースがあります。
たとえば、now()関数は、ユーザーがウェブサイトのフロントエンドでフォームを開くたびに、現在の日付と時刻を返します。

上記の画像は、now()関数のデフォルトの形式を示しています。ただし、関数に形式を指定することで、日付の表示方法をカスタマイズできます。
計算アドオンの日付形式は、WordPressコアの日付形式と同じように機能します。以下に、サポートされている形式をいくつかリストします。
| 形式 | 例 |
|---|---|
Y-m-d |
19-10-23 |
Y年n月j日 |
2023年10月19日 |
Y/m/d |
2023/10/19 |
注意:サポートされている日付形式の詳細については、WordPressの公式ドキュメントを確認してください。
もう1つの便利な関数はdate_diff()関数です。この関数は2つの日付フィールドを受け取り、それらの差を返します。返したい単位を指定するために3番目の引数が必要です。以下は、現在サポートされている利用可能な単位です。
- 年
- 月
- 週
- 日
- 時間
- 分
- 秒
date_diff()関数を使用して年齢計算機を作成しましょう。
日付関数を使用した年齢計算機
まず、日付/時刻フィールドを追加します。次に、形式を日付に変更し、フィールドのラベルを生年月日に更新します。

注意:日付ドロップダウンオプションを使用している場合、年ドロップダウンから将来の年を選択することはできません。デフォルトの動作を更新したい場合は、日付ドロップダウンのカスタマイズに関するチュートリアルを確認してください。
次に、2つの単一行テキストフィールドを追加します。最初のフィールドについては、ラベルを現在の日付に変更してから、フィールドの計算を有効にします。
数式ビルダーで、now()関数を追加するだけです。これにより、現在の日付と時刻が返されます。

2番目の単一行テキストフィールドについては、ラベルを年齢に更新してから、計算モードを有効にします。数式ビルダーで、以下の数式を追加します。
date_diff($F1, $F2, 'years')
date_diff()関数を使用して、現在の日付フィールドと生年月日フィールドの差を返しています。
この例では、$F1が生年月日フィールドであり、$F2が現在の日付フィールドです。追加した'years'引数は、日付の差を年単位で返します。代わりに'months'を使用すると、日付の差を月単位で返します。
フォームを保存してプレビューすると、生年月日を入力した後、現在の年齢を推定できるようになります。

2つの日付/時刻フィールド間の時間範囲を計算したい場合は、years()関数を使用できます。この関数は、2つの引数(開始日と終了日)とオプションのフォーマットパラメータを受け取ります。この関数は、date_diff()関数と同様に、2つの日付の差を年単位で返します。

日付差を月、週、または日で返したい場合は、months()、weeks()、またはdays()関数を使用することもできます。他の日付および時刻関数を確認するには、チートシートガイドを確認してください。
数式ビルダーでの日付と時刻の値へのアクセス
日付/時刻フィールド内の日付と時刻のサブフィールドの個々の値を対象とする数式を構築している場合は、サブフィールド構文を使用できます。
注意: 日付と時刻のサブフィールドの個々の値にアクセスするには、まず日付と時刻フォーマットを使用する必要があります。
数式ビルダーで日付サブフィールドにアクセスするには、$FX_date構文を使用します。XをフィールドのIDに置き換えてください。この例では、この値は1です。

同様に、$FX_time構文を使用して、時刻サブフィールドの値にアクセスします。

よくある質問
これらは、計算アドオンを使用した数式の構築に関するよくある質問への回答です。
WPFormsツールメニューから計算のデバッグモードを有効にできますか?
debug()関数は、サーバー上のdebug.logファイルにデバッグデータを出力します。これは、数式のエラーのトラブルシューティングに役立ちます。現在、この関数は数式ビルダー内でのみ使用できます。数式ビルダーに追加すると、計算モードを有効にした特定のフォームのデバッグデータがログに記録されます。
これで、計算フォーム用の数式を構築する方法がわかりました。
次に、Webサイトでリードをキャプチャするためにリードマグネットフォームを作成しますか?リードフォームアドオンのインストールと使用方法を学習するためのガイドを確認してください。