Formidable Forms: Create a shared entry & view
In some cases you may need to build a form & view using Formidable Pro that could be accessed by multiple people in a team.
We have multiple clients that work in small teams of 2 – 6 people who require the ability for person A to login and start completing a form, save a draft or submit the form entry, and then for person B (or C, D etc) to log in, access the shared form entry and continue where their colleague left off.
All users need to be able to access the form at whatever stage it was last at (Saved or Submitted) and either continue where the last person left off, or update the submitted entry.
We created a new field in each users profile that was common across teams and use this to filter the form entries within the view. This allows multiple users to be able to access and edit a single entry and therefore achieve the functionality we require.
Before we start building the form we need to make sure that each user has a field in their profile that is common across teams. We use the WP-Client Plugin to manage our clients which allows us to add custom fields to user profiles but you could use the default ‘Nickname’ field.
We created a field called ‘Client Business Name’ and added the name of the client to this field.
E.g. Company A, Company B, Company C etc. Each user from that company has to have the same company name in this field.
The form itself is quite straightforward (other than it’s HUGE, spans several pages and contains hundreds of fields with conditional logic – hence the need to save it and return later to continue where you left off).
The first part of the form is the user details section and the majority of these fields use placeholders to save the user time and ensure that the information captured is accurate.
In the ‘Customer Name’ field we use the following placeholder (but you could use [display_name] if you’re using the ‘Nickname’ field and have the display name set to display this option etc):
[ wpc_client_business_name ]
Note: You could also set this is a hidden field or as ‘read-only’ to stop the client changing it and messing up the functionality.
Then just carry on and build your form.
To enable front-end editing of a form you need to have the following settings enable:
- Limit form visibility and submission to: Logged-in users
- Limit number of form entries to one per: Logged-in user
- Allow front-end editing of entries:
- Role required to edit one’s own entries: Logged-in user
- Role required to edit other users’ entries: Logged-in user
- On Update: Show message
- Allow logged-in users to save drafts = Ticked
The view settings can be seen in the attached screenshot and will be:
- Use Entries from = the form you just created
- View Format = Both (Dynamic)
- Filter Entries = Customer Name > Is Equal to > [wpc_client_business_name]
- No entries message = “No saved entries found – Please contact us if you think this is incorrect”
Then we can start setting up the Listing Page & Details Page settings.
The listing page will contain some basic details about the entry including who created it, when it was created, who updated it last and who updated it last. This is quite important for the client to be able to see and creates the accountability that should be required when allowing multiple people to entry a single entry.
It also contains some conditional logic messages based on the status of the entry (Draft or Submitted).
<table class="tablesorter"> <thead> <tr> <th>Entry ID</th> <th>Status</th> <th>Client</th> <th class="dateFormat-dd/mm/YYYY">Creation Date</th> <th>Created By</th> <th>Last Updated</th> <th>Order Details</th> </tr> </thead> <tbody>
<tr> <td>[id]</td> <td>[if is_draft equals="1"]<span style="color: tomato; font-weight: 700;">DRAFT</span>[/if is_draft][if is_draft equals="0"]<span style="color: green;">COMPLETED</span>[/if is_draft]</td> <td></td> <td>[created-at format="d-m-Y"]</td> <td> </td> <td>[updated-at format="d-m-Y"]</td> <td><a class="button" href="[detaillink]">VIEW</a></td> </tr>
The details page is much more straight forward and essentially just displays the entry and then 2 buttons to easily allow the user to edit the entry if required.
The code for this page is:
<h3>Submission details</h3> <ul> <li><span style="color: #333333;">Created: [created-at]</span></li> <li><span style="color: #333333;">Created By:  </span></li> <li><span style="color: #333333;">Last Updated: [updated-at]</span></li> <li>Updated By: [updated-by]</li> </ul> <span class="vc_btn3-container wpb_animate_when_almost_visible wpb_appear vc_btn3-inline wpb_start_animation"><a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-outline vc_btn3-icon-left vc_btn3-color-inverse" title="" href="https://www.fdmplc.com/elections-2017-county-local-parish/your-entries/" target="_self"><i class="vc_btn3-icon fa icon-back"></i> Go Back</a></span> <span class="vc_btn3-container wpb_animate_when_almost_visible wpb_appear vc_btn3-inline wpb_start_animation">[editlink class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-outline vc_btn3-color-inverse" location="front" label="Edit This Entry" page_id=15738]</span>
In summary the solution is quite simple. By creating a field in each users profile that contains a common entry (like a company name) then we can use this field to filter the view and allow any number of users from a single company to view, edit and update a form entry.
Still have questions?
Still have questions or not sure where to start? Use our quick contact to ask us a question.
If you’re ready to get started click here to complete our Project Planner.