Support Forum
Support › Meta Box Conditional Logic › Show or Hide Fields Based On RoleResolved
Hi, I have a need to be able to show or hide certain fields based on user role.
My specific scenario is that I have a Custom Field form which has dates and checkboxes. I want admins to be able to use the date fields to enter dates and a different role to be able to edit the checkboxes.
Admin will access the form via the Dashboard against a CPT. The other roles will access it via a view in the frontend.
So I don't mind how the fields are made to show or not show. It could be via the view (ie show the dates as their values and the checkboxes from the forms) but I can't see a way to do it there. It could be using Conditional Logic but that only seems to be for inclusion based on other form values. The Include/Exclude options have code for user role but this applies to the whole form rather than individual fields (that would be great if we had that level of feature at a field scope).
Any suggestions?
Hi Martin,
The extension MB Conditional Logic does not support show/hide a field based on user role. You can use the extension MB Include Exclude to do that and separate fields for other meta boxes.
As far as I can see from the docs you set the Include Exclude at the whole meta box form level rather than the individual field level. I need that functionality at the field level if that's possible.
Hi,
Thanks for your feedback. I'm going to inform the developer team to consider adding it to the to-do list for the future development of the plugin.
Cool. Thanks. I'll split my fields out to 2 custom field groups for now so I can control them separately that way.
please update, I also need that functionality at the field level if that's possible.
+1 for the need for this functionality.
I also need that functionality.
+1 for this
It will make forms much easier to build
any news on this - I want to be able to hide some fields based on a user role - or a membership level maybe -
As others are interested in this functionality this is how I went about what I need in the end:
I took the PHP code and implemented it in Snippets (or in functions.php etc). This allowed me to set the 'required' setting for each field as a variable. I then got the user role in code before the form creation happened and set the variable accordingly.
hi..
this should not be too hard to implement..
and this should be a feature...also i need to hide some fields from some user roles...especially for settings page fields..
+1 for this...
I found a solution that may help; you can set the type
of the field based on the role, like this:
[ 'name' => 'My field', 'id' => 'my_field', 'type' => current_user_can( 'administrator' ) ? 'text' : 'hidden', // Show only for admins. ],
Here, the type of the field will be hidden
for none admin users and text
for administrators.
+1 - need this, especially for Meta Box User Profile
+1 - very, very needed for my form.