Home › Toolset Professional Support › [Resolved] Hide some select field options based on condition
This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.
Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
9:00 – 13:00 | 9:00 – 13:00 | 9:00 – 13:00 | 9:00 – 13:00 | - | - | 9:00 – 13:00 |
14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | - | - | 14:00 – 18:00 |
Supporter timezone: Africa/Casablanca (GMT+01:00)
Tagged: Setting up custom fields, Types plugin
Related documentation:
This topic contains 7 replies, has 2 voices.
Last updated by nabils 3 years, 10 months ago.
Assisted by: Jamal.
Hi,
I am using a radio field with some options like pending, approved, rejected and other. I want to add condition such as if it was approved then hide rejected. Is this possible?
Hello and thank you for contacting the Toolset support.
Currently, there is no way to hide some options from a field based on a condition. Conditions will work for the whole field and not for its options.
You may probably implement this by creating two radio fields, one that holds the 3 options and one that holds only two options, and based on a condition you can display one of the fields. You may also want to add custom code that will sync values from one field to another.
I hope this helps. Let me know if you have any questions.
Yes, I will use two fields then. Could you advise how would be the custom code to show that it is only one field?
The custom code-based solution that I suggest, is not to show that is only one field. I suggested the custom code to synchronize the value from the second field into the first.
So let's say that we have a radio field "status" that has possible options (pending, approved, rejected). We can add a second field, let's call it "status-2" that will have 2 options (pending, approved).
We can then build two conditions, one to display "status" if its value is different than "approved", the second will display "status-2" if the value of "status" equals "approved".
At this point, there is no need for any custom code. But, I imagine that you want to use these fields in a form, or that you just want to rely only on the value of "status", and that when we display "status-2", in a form or in the backend, and its value has changed, you would want to synchronize its value to "status", right! In that case, we'll need a custom code to do that. We can rely on the "save_post" hook and synchronize the value. Here is an example code:
add_action( 'save_post', 'my_prefix_sync_status', 10,3 ); function set_post_default_category( $post_id, $post, $update ) { // Get the value from "status-2" $status = get_post_meta( $post_id, 'wpcf-status-2', true); // Update the value in "status" update_post_meta( $post_id, 'wpcf-status', $status ); }
More about the hook and the used functions in the links below:
- https://developer.wordpress.org/reference/hooks/save_post/
- https://developer.wordpress.org/reference/functions/get_post_meta/
- https://developer.wordpress.org/reference/functions/update_post_meta/
Note that Toolset adds a prefix("wpcf-") to the fields slugs("status", and "status-2").
https://toolset.com/documentation/customizing-sites-using-php/functions/
Thank you for the explanation. I am trying to make two status fields. Status 1 (pending, approved, decline). Status 2 ( borrowed, returned). In the beginning status 1 filed will be shown. When status 1 changed to approved, status 2 will be shown. I tried to use below condition but it is not working. Please let me know how to make it work.
[wpv-conditional if="($(enginvrequests-status-1) eq 'Pending')" mode="fade-slide"]
[cred_field field='enginvrequests-status-1' post='enginvrequest' value='' urlparam=''] [/wpv-conditional]
[wpv-conditional if="($(enginvrequests-status-1) ne 'Pending')" mode="fade-slide"]
[cred_field field='enginvrequests-status-2' post='enginvrequest' value='' urlparam=''] [/wpv-conditional]
New threads created by Jamal and linked to this one are listed below:
https://toolset.com/forums/topic/conditions-on-radio-field-do-not-work-in-a-form/
I am writing the condition in the post form
For support rules, we are able to handle only one issue at a time. This helps us to bring you a better service and also helps other users to find all the information here exposed. Because your last question is a different one than the original one of this ticket, I split this ticket into a new one and I'll be replying there.
My issue is resolved now. Thank you!