jreviews:permission:field.read
Filters whether a user has permission to view a custom field's output in listing or review detail pages.
You need to have a working knowledge of Hooks before you get started.
Fires when checking if user can see a custom field's value in detail views
Parameters
| Name | Type | Description |
|---|---|---|
$canRead |
bool |
Whether the user can view the field |
$user |
\JReviews\App\Models\User |
The user viewing the field |
$field |
\JReviews\App\Models\Field |
The custom field |
Boilerplate Code
Use the boilerplate code to start using the filter, and add your own logic to modify the first argument and return it.
fwd_add_filter('jreviews:permission:field.read', function($canRead, $user, $field)
{
// Your code here
return $canRead;
}, 20, 3);
The , 20, N after your callback are the hook priority and the number of arguments your callback accepts. By default, a hook passes your callback only its first argument; for a filter, that is the value being filtered, so a simple function($value) { ... } needs nothing extra. If your callback declares more parameters, such as function($value, $listing) { ... }, you must add N (the parameter count, 2 here). Because N is the fourth argument to fwd_add_filter() or fwd_add_action(), you must also pass the priority (20 is the default). Leaving these off when your callback expects extra parameters causes a Too few arguments to function ... fatal error.
Examples
Hide a Specific Custom Field
The `jr_city` custom field will not be shown to anyone.
fwd_add_filter('jreviews:permission:field.read', function($canRead, $user, $field)
{
$fieldName = 'jr_city';
if ($field->name == $fieldName) {
return false;
}
return $canRead;
}, 20, 3);
Hide a Specific Custom Field for Guests
The `jr_city` custom field will only be shown to logged in users.
fwd_add_filter('jreviews:permission:field.read', function($canRead, $user, $field)
{
$fieldName = 'jr_city';
if ($user->isGuest() && $field->name == $fieldName) {
return false;
}
return $canRead;
}, 20, 3);
Source Files
app/Policies/FieldPolicy.php