WordPress のフォームで基本的な操作や高度な操作を行うための計算式を作成する方法を学びたいですか?Calculations アドオンがあれば、フォームを電卓に変換して特定のユーザーの問題を解決できます。
このチュートリアルでは、計算アドオンのチートシートガイドのすべてのルール、操作、関数をカバーすることによって、数式を構築する方法を説明します。
この記事で
始める前に、まずWPFormsがあなたのWordPressサイトにインストールされ、有効化されていることを確認し、ライセンスを確認する必要があります。
チートシート・ドキュメンテーションへのアクセス
注:このガイドに従うには、WordPressサイトにCalculationsアドオンをインストールし、有効化する必要があります。まずは、Calculationsアドオンのドキュメントをご覧ください。
Calculations アドオンをインストールしたら、新規フォームを作成するか、既存のフォームを編集してフォームビルダーにアクセスします。
フォームビルダーで、フォームフィールドの計算モードを有効にするには、サポートされているフィールドのいずれかを追加する必要があります。
サポートされているフィールドを追加したら、それをクリックしてフィールド・オプション・パネルを開きます。次に、Advancedタブに移動します。そこで、「計算を有効にする」トグルが表示されます。
このオプションを有効にすると、数式ビルダーが開きます。ここで数式を作成し、他のフィールド値を変数として使って計算を実行することができます。
数式ビルダーの上にあるCheatsheetリンクをクリックすると、計算アドオンのチートシートのドキュメントにアクセスできます。
または、このリンクからこのページにアクセスすることもできます。チートシートガイドには、現在 Calculations アドオンでサポートされている様々なルール、演算子、関数が含まれています。
計算アドオンのルールと演算子を理解する
プログラミング言語にルールや構文があるように、数式ビルダーにも独自のルールがあります。これらのルールを守ることで、数式が意図したとおりに動作するようになります。以下に、従うべき最も重要なルールを説明する。
- 数値を足すとき、ドット(.)を使えるのは小数の場合だけです(例:59.99)。カンマで大きな数値を区切ることは許されず、計算式を検証するときにエラーが返されます。
- 文字列テキストをシングルクォーテーション(')またはダブルクォーテーション(")で囲む。
- 数式ビルダーで変数として使用できるのは、フォームフィールドだけです。Calculations アドオンでは、フィールド変数以外の変数を宣言することはできません。
- 数式ビルダーの各行の後にセミコロンを追加することは任意である。ただし、条件文を書く場合は
endif
行にはセミコロンをつける。
次のセクションでは、変数がどのように機能するかを説明し、数式ビルダーでサポートされている操作の例を示します。
フィールド変数の使用
サポートされているフィールドで計算モードを有効にすると、フォーム内の他のフィールドを変数として使用して計算式を作成することができます。以下に、フィールド変数を使用する際に従うべきルールを示します。
- 各フィールド変数は
$F
記号の後にフィールドのIDが続く。したがって、完全な変数名は次のようになる。$FX
(ここでX
はフィールドID)。 - サブフィールドのフィールド変数は、次の構文を使って追加する。
$FX_subfield
.どこでX
はフィールドIDでsubfield
はサブフィールド識別子である。例えばF1_first
はNameフィールドの姓のサブフィールドを表す。 - ユーザーが支払いフィールドで選択した値にアクセスするには
$FX_amount
の形式を使用する。例えば、Single ItemフィールドのIDが2の場合、フィールド変数は次のようになります。$F2
.選択された値が$F2_amount
. - チェックボックスまたはチェックボックスアイテムフィールドの値には
$FX_n
構文どこでX
はフィールドのIDでn
はCheckboxオプションである。これは基本的に、チェックボックス・フィールドの最初の選択肢が次のようになることを意味する。$FX_1
選択肢2は次のようになる。$FX_2
などなど。
- マルチプル・チョイス そして ドロップダウン フィールドは現在、一意な ID を使ったオプションのターゲティングをサポートしていません。if 文でユーザーが選択した選択肢をターゲットにしたい場合、完全一致を使用して条件の値をチェックする必要があります。以下に例を示します:
if ($FX == 'first choice'): // 実行する数式 endif;
数式を作る前に考慮すべきヒント
数式を作成する前に、プロセスをスピードアップし、エラーを避けるために覚えておくべきヒントがいくつかあります。以下に、私たちの最もお勧めの方法を説明します:
- 計算に使用する数式を知っていることを確認してください。事前に計算式を知っておくことで、フォームに追加するフィールドを知ることができます。
- 計算結果を別のフィールド変数に格納したい場合は、Hidden フィールドを使用してください。Calculations アドオンは、カスタム変数の使用をサポートしていません。そのため、計算式にこの機能が必要な場合は、Hiddenフィールドを使用して計算結果を保存することを検討してください。
- フィールドに文字列と数値を連結する場合は、Single Line TextまたはParagraph Textフィールドを使用することをお勧めします。
- 文字列と数値を組み合わせる場合は、数式をif文で囲み、ユーザーが必須フィールドの変数を入力した場合のみ表示するように条件を設定します。これにより、フロントエンドでフィールドの値が未定義にならないようにします。
算術演算子を使った数式の構築
Calculations アドオンでは、足し算、引き算、掛け算、割り算などの基本的な計算式を作成できます。
この例では、2つの数値が与えられたときに算術演算を行う電卓を作ります。
まず、フォームビルダーを開き、数字フィールドを2つ追加します。それぞれのフィールドをクリックして、フィールドのラベルを好きな名前に変更してください。この例では、両方のフィールドのラベルに「Number 1」と「Number 2」を使用します。
次に、セクション・デバイダーを追加し、ラベルを算術演算に変更しよう。その下に、レイアウト・フィールドを追加し、ラベルを足し算、引き算、掛け算、割り算にした4つの数字フィールドを追加します。
ここで、Additionフィールドを選択し、Field Optionsを開きます。その後、Advancedタブに移動します。
そこで、「計算を有効にする」オプションをオンに切り替える。
フォーミュラ・ビルダーで、両方のNumbersフィールドの値を足す方程式を書こう$F1 + $F2
).
最初の数式を追加した後、残りのフィールドの計算を有効にして数式を更新してください。各フィールドの計算式は次のようになります:
- 追加:
$F1 + $F2
- 引き算:
$F1 - $F2
- 掛け算:
$F1 * $F2
- ディビジョン
$F1 / $F2
注:フィールド変数がフォームのNumbersフィールドと一致していることを確認してください。
各フィールドに数式を追加したら、フォームを保存してプレビューし、数式が期待通りに動作することを確認します。
条件文を使った数式の構築
if/else ステートメントを使うと、指定した条件が満たされた場合にのみ機能する高度な数式を作成することができます。デフォルトでは、if文は次のような構文になっています:
if(condition): // 真の場合の計算式 else: // false の場合の計算式 endif;
if文の後の括弧の中で、チェックしたい条件を指定する。そしてifブロックの中に、条件が真であった場合に実行したい方程式を書く。
elseブロックには、条件が偽の場合に実行される方程式を記述する。以下は、この条件文の使用例である。
if($FX_amount > 50): ($FX_amount * 5/100) else: 7 endif;
注: X
上の式では、フィールドIDを表している。方程式を書くときは、必ず X
には、使用するフィールドのIDを指定する。
上記の例では、Single Itemフィールドで計算モードを有効にし、ユーザーが選択した金額が50より大きいかどうかをチェックしています。trueの場合、追加料金は支払い金額の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;
Calculationsアドオンでは、無制限の数の 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文ブロックの条件を書いている。最初に真を返した条件が実行される。
論理AND(&&
)演算子の1つである。 elseif
条件付き。論理演算子を使うと、2つ以上の条件を連鎖させることができます。次のセクションでは、論理演算子がどのように機能するのかを詳しく説明します。
論理演算子を使った数式の構築
Calculations アドオンは、AND 演算子や OR 演算子のような論理演算子の使用をサポートしています。チートシートでは、使用可能な論理演算子と、それらが数式ビルダーでどのように表現されるかを見ることができます。以下に、Calculations アドオンがサポートしている論理演算子を示します。
- アンド (
&&
):このステートメントは、すべての条件が真のときに真を返します。 - または (
||
): このステートメントは、いずれかの条件が真であれば真を返す。 - 違う (
!
):否定とも呼ばれる。真の値を偽に変換したり、その逆を行ったりする。
これらの演算子は、条件文と組み合わせて使用することができます。2つ以上の条件を結合することで、条件文を制限することができます。以下に、これらの演算子の基本的な使用例を示します。
AND演算子を使用したグレード電卓
この例では、スコアに基づいてユーザの評点を返す電卓を作成します。始めに、数値フィールドと1行テキストフィールドを追加し、フィールドラベルをそれぞれスコアと 評点に変更します。
その後、「成績ポイント」フィールドの計算モードを有効にし、以下の数式を追加します。
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
の式はScoreフィールドのフィールド変数です。IDがフォームビルダーのものと一致していることを確認してください。
を使用する場合 &&
演算子を使用すると、両方の比較が真を返せば条件は真となる。
クリック単価計算機
この例では、与えられたキャンペーンのクリック単価を計算しています。これには2つのフィールド変数が必要です:合計課金額とクリック数です。そこで、2つのNumbersフィールドを追加し、それぞれのフィールドのLabelをTotal amount chargedと Number of clicksに更新する必要があります。
また、計算を実行するためにSingle Itemフィールドを追加する必要がある。
これら3つのフィールドを追加したら、Single Itemフィールドを選択し、LabelをCost Per Click (CPC)に変更します。次に、詳細設定タブに移動し、計算モードを有効にします。その後、数式ビルダーに以下の数式を追加します。
if ( $F1 || $F2 ): F1 / $F2 else: 0 endif;
条件では、ユーザーがいずれかのフィールドに値を入力したかどうかをチェックしている。いずれかの条件が真になると、if文の中の式が実行されます。
計算式でサポートされている関数を使用する
Calculations アドオンは、特定のタスクを簡単に実行するための多数の関数をサポートしています。数学関数、文字列関数、日付/時刻関数、デバッグ関数があります。チートシートのドキュメントでは、サポートされている関数のリストと、それらがどのように動作するかを見ることができます。
数学関数
基本的な数学演算や複雑な数学演算を行うための関数があります。これらの関数は、数式に必要な方程式の数を減らすのに役立ちます。
例えば、2つ以上の数値の平均を求めるために手動で方程式を書く代わりに average()
関数を使って、与えられた数値の集合の平均値を計算することができる。以下に実装例を示す。
平均($F1, $F2, $F3)
上記の例では、3つのNumbersフィールドの平均を計算しています。しかし、フィールドの数に制限はありません。 average()
関数である。
ユーザーが各「数値」フィールドに値を入力すると、計算が有効になっているフィールドはこれらの数値の平均を返す。
もうひとつ使うであろう関数は 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()
関数を使用してください。各項目は必ずコンマで区切ってください。
フロントエンドでは、フィールドは乱数を生成し、文字列と結果を連結してフィールドの値とします。
もう一つの便利な機能は truncate()
関数を呼び出します。この関数は2つのパラメータを受け付ける:文字列テキストと切り捨てる長さです。
この関数を使用すると、文字列のテキストが取り除かれ、長さとして指定した数までの文字が返されます。これは、メールアドレスに基づいてユーザー名を自動生成したい場合に便利です。以下に例を示します。
ユーザー名ジェネレーター
フォームビルダーで、EmailフィールドとSingle Line Textフィールドを追加します。その後、Single Line Text フィールドを選択し、Label をUsernameに変更し、フィールドの計算を有効にします。
数式ビルダーで、以下の式を追加する。
切り捨て($F1, 6)
$F1
は、文字列テキストとして使用されるEmailフィールドです。6 は返す文字列の長さです。つまり、この数式はEmailフィールドの最初の6文字を返します。
日付/時刻機能
Calculations アドオンは、計算式を作成するときに使用する日付と時刻の関数を提供します。これらの関数は、あなたのサイトに基本的な時計を作成したり、年齢計算機を作成するなど、いくつかの使用例があります。
例えば now()
関数は、ユーザがあなたのウェブサイトのフロントエンドでフォームを開くたびに、現在の日付と時刻を返します。
上の画像は now()
関数を使用します。ただし、関数内で書式を指定することで、日付の表示方法をカスタマイズすることができます。
Calculationsアドオンの日付書式は、WordPressコアの書式と同じです。以下に、サポートされているフォーマットをいくつか挙げておきます。
フォーマット | 例 |
---|---|
d-m-y |
19-10-23 |
F j, Y |
2023年10月19日 |
d/m/Y |
19/10/2023 |
注:サポートされている日付フォーマットの詳細については、WordPressの公式ドキュメントを参照してください。
もう一つの便利な機能は date_diff()
関数を使用します。この関数は2つの日付フィールドを受け取り、その差を返します。3番目の引数には、返したい単位を指定する必要があります。以下は、現在サポートされている単位です:
- 年
- ヶ月
- 週間
- 日数
- 時間
- 議事録
- 秒
を使って年齢計算機を作ってみよう。 date_diff()
関数である。
日付関数を使用した年齢計算機
まず、日付/時刻フィールドを追加します。その後、FormatをDateに変更し、フィールドのLabelをDate of Birthに更新します。
注意: 日付ドロップダウン・オプションを使用している場合、「年」ドロップダウンから将来の年を選択することはできません。デフォルトの動作を変更したい場合は、日付ドロップダウンのカスタマイズに関するチュートリアルをご覧ください。
次に、2つの単一行テキスト・フィールドを追加します。最初のフィールドでは、ラベルを現在の日付に変更し、フィールドの計算を有効にします。
数式ビルダーで now()
関数を使う。これは現在の日付と時刻を返す。
2番目の単一行テキスト・フィールドの「ラベル」を「あなたの年齢 」に更新し、計算モードを有効にする。数式ビルダーで、以下の式を追加します。
date_diff($F1, $F2, 'years')
を使用している。 date_diff()
の差を返す関数である。 現在の日付 フィールドと 生年月日 フィールドにいる。
この例では、 $F1
は生年月日フィールドである。 $F2
は現在の日付フィールドである。このフィールドは 'years'
引数を追加すると、日付の差を年単位で返す。もし 'months'
の代わりに、日付の差を月単位で返します。
フォームを保存してプレビューすると、生年月日を入力した後に現在の年齢を推定することができます。
2つの日付/時刻フィールド間の時間範囲を計算したい場合は years()
関数を使用します。2つの引数 (開始日と終了日) と、オプションの format パラメータを受け取ります。この関数は、2 つの日付の差を date_diff()
関数である。
を使用することもできます。 months()
, weeks()
あるいは days()
関数を使用して、月、週、日単位で日付の差を返すことができます。必ず チートシートガイド をクリックすると、その他の日付と時刻の機能が表示されます。
数式ビルダーで日付と時刻の値にアクセスする
Date / Timeフィールドの日付と時刻のサブフィールドの個々の値をターゲットにする必要がある数式を作成する場合は、サブフィールド構文を使用できます。
注:日付と時刻のサブフィールドの個々の値にアクセスする前に、日付と時刻のフォーマットを使用する必要があります。
数式ビルダーで日付サブフィールドにアクセスするには、次の構文を使う。 $FX_date
.必ず交換してください。 X
をフィールドのIDで指定します。この例では、この値は 1
.
同様に $FX_time
構文で、時間サブフィールドの値にアクセスする。
よくある質問
これらは、Calculationsアドオンで数式を作成することに関するいくつかの質問への答えです。
WPFormsのツールメニューから計算のデバッグモードを有効にできますか?
について debug()
関数は、デバッグデータをサーバー上の debug.log ファイルに出力します。これは、数式のエラーをトラブルシューティングするときに便利です。現在、この関数は数式ビルダー内でのみ使用できます。数式ビルダーに追加すると、計算モードを有効にした特定のフォームのデバッグデータがログに記録されます。
以上です!これで、計算フォームの計算式を作成する方法がわかりました。
次に、あなたのウェブサイトでリードを獲得するためのリードマグネットフォームを作成したいですか?Lead Forms アドオンのインストール方法と使い方はガイドをご覧ください。