The frm-condition shortcode is used to compare two values before displaying something on the page. Compare a field value another field value, a value in the url, a stat returned by the frm-stats shortcode, and many more.
Use it in a view, directly on a page, in an email, as a default value, or anywhere else that shortcodes are processed.
Parameters
- source - Where to get the first value for comparison. Use the name of any other shortcode (including a custom shortcode) or 'param'.
- equals, not_equal, greater_than, less_than, like - Include the second value to compare. ie equals=10 or greater_than=100.
- param - If source=param is used, set the name of the param in the URL.
- Any parameter to pass to the shortcode specified in the 'source' parameter.
- content - Content that would typically be inside the source shortcode. For example, the content of the frm-math shortcode is a math expression: [frm-math] [100] * [102] [/frm-math].
To use this with frm-condition, you'd put the math expression in the content param, like so:[frm-condition source=frm-math content="[100] * [102]" greater_than="10"]show if result is greater than 10[/frm-condition]
Note: Standard WordPress shortcodes, like frm-stats, can't be used in the content param.
Compare two fields in a View
Show a value when field 391 and 390 are the same. Change these field ids to match your own. [id] is left as is as long as you are comparing to a value in the same entry.
[frm-condition source=frm-field-value field_id=391 entry=[id] equals="[390]"]your content here[/frm-condition]
Compare two fields with multiple selections
If you want to compare a selected value with a checkbox or radio button field with multiple selections, using the like parameter is useful in this situation. Here's an example of comparing a selected country that is or is not part of the member state list.
- Add a checkbox field and populate it with the list of Countries using Bulk Edit Options.
- Add a hidden field and set the default value to the member state list.
- In your View, your shortcode should look something like:
[frm-condition source=frm-field-value field_id=304 entry=[id] like="[305]"]Is member state[/frm-condition]
[frm-condition source=frm-field-value field_id=304 entry=[id] not_like="[305]"]Is not member state[/frm-condition]
Replace 304 with your hidden field ID and replace 305 with your country dropdown field ID. [id] is left as is as long as you are comparing to a value in the same entry.
Compare two fields with numeric values
This example will display varying content based on the results of the numeric field values compared. Replace '210' and '211' with the ID or key of the fields to compare.
[frm-condition source=frm-field-value field_id=210 entry=[id] greater_than="[211]"]Show this result if greater than first field[/frm-condition]
[frm-condition source=frm-field-value field_id=210 entry=[id] less_than="[211]"]Show this result if less than first field[/frm-condition]
Compare a statistic
This example will show the statistic from the frm-stats shortcode only when it is higher than 10. Replace 'text-field' with the id or key for the first field to compare.
[frm-condition source=frm-stats id=text-field type=count greater_than=10][frm-stats id=text-field type=count][/frm-condition]
Show a message on a page
Display the message "You've exceeded your monthly limit" if the user's value in field 72 is less than the value of total_cost param in the URL or set in another shortcode.
[frm-condition source=frm-field-value field_id=72 user_id=current less_than=param param=total_cost]You've exceeded your monthly limit.[/frm-condition]
Check the value of a param
Test if a param is set or has any value. Replace 'color' with the name of the param you want to test.
[frm-condition source=param param=color]content to show if the color param is set[/frm-condition]
Test if a param has a particular value.
[frm-condition source=param param=color equals="yellow"]content to show if the color param is set to "yellow"[/frm-condition]
Compare to a custom shortcode
- Show content based on current user's role
- Show content if current user is logged in
- Show content based on the current month.
Show users which forms they have filled out
In a situation where a user has many forms to fill out, you may want to show him/her which ones s/he's already filled out and which ones s/he still needs to fill out.
For each form:
- Create a stat to determine the number of entries the user has filled out for that form. It would look something like this, where 100 is the id of a field in the form that always has a value (in other words, the field won't be blank or empty when submitted):
[frm-stats id=100 type=count user_id=current]
Tip: check to make sure your stat is showing the correct values before moving to the next step.
- Use the stat in frm-condition to determine if the user has filled out the form and to display an appropriate message, like so:
[frm-condition source=frm-stats id=100 type=count user_id=current greater_than=0]Registration form: completed[/frm-condition]
[frm-condition source=frm-stats id=100 type=count user_id=current equals=0]Registration form: needs to be filled out[/frm-condition]
Hide checkbox/radio options after n submissions
- In your Settings → Customize HTML, separate out each of your checkbox or radio options. Replace [input] with [input opt=1] until you have done this for each option in the field.
- Create a stat to determine how many times an option has been used. (Optional) Test to make sure it works properly before proceeding. Your stat would look something like:
[frm-stats id=25 type=count 25="red"]
Replace 25 with the ID of the Checkboxes or Radio Button field and replace "red" with the value of the option.
- Surround each option with frm-condition so that it will only be shown if it's been used up to its maximum number of times. Use frm-stats as the source. Change the "red" in 25="red" to match the value of the current option and 25 (in two places) to match the id of your field. Set the less_than param to the number of entries that people are allowed to submit. So if you want people to be able to submit red 10 times, your final shortcode may look something like:
[frm-condition source=frm-stats id=25 type=count 25="red" less_than=10][input opt=1][/frm-condition]
You can use different limits for each option, if you like.
- (Optional) If you want to disable the checkbox/radio option instead of removing it, you can add this shortcode to the shortcode above.
[frm-condition source=frm-stats id=25 type=count 25="red" greater_than=9][input opt=1 disabled=disabled][/frm-condition]
Show users which subjects have no report submitted
In this situation, you could have a form that collects the subject names and another form where users can submit reports for each subject. If you want to show which subjects have no report submitted, you could use frm-stats combined with frm-condition.
- If you haven't yet, create a View of your first form.
- Create a stat that counts the number of entries in the second form for the current entry's subject. (Optional) Test the stat to show the correct number of entries in the second form for every subject in the first form.
[frm-stats id=100 type=count 100="[42]"]
- Insert the subject name field and the stat in the Content box of your View. It could look something like this:
Subject [42]: [frm-stats id=100 type=count 100="[42]"]
Replace 100 with the ID of the Subject field in the second form and replace 42 with the ID of the subject field in the first form.
- You can then remove the stat and use it in a conditional statement to only show the subject if the stat is 0. Insert the subject name and any other content you want to show about it inside frm-condition.
[frm-condition source=frm-stats id=100 type=count 100="[42]" equals=0][42][[/frm-condition]