ACF_Field_User::validate_rest_value
Validates user fields updated via the REST API.
Метод класса: ACF_Field_User{}
Хуков нет.
Возвращает
true|false|WP_Error.
Использование
$ACF_Field_User = new ACF_Field_User(); $ACF_Field_User->validate_rest_value( $valid, $value, $field );
- $valid(true|false) (обязательный)
- The current validity booleean.
- $value(int) (обязательный)
- The value of the field.
- $field(массив) (обязательный)
- The field array.
Код ACF_Field_User::validate_rest_value() ACF Field User::validate rest value ACF 6.4.2
public function validate_rest_value( $valid, $value, $field ) {
if ( is_null( $value ) ) {
return $valid;
}
$param = sprintf( '%s[%s]', $field['prefix'], $field['name'] );
$data = array( 'param' => $param );
$value = is_array( $value ) ? $value : array( $value );
$invalid_users = array();
$insufficient_roles = array();
foreach ( $value as $user_id ) {
$user_data = get_userdata( $user_id );
if ( ! $user_data ) {
$invalid_users[] = $user_id;
continue;
}
if ( empty( $field['role'] ) ) {
continue;
}
$has_roles = count( array_intersect( $field['role'], $user_data->roles ) );
if ( ! $has_roles ) {
$insufficient_roles[] = $user_id;
}
}
if ( count( $invalid_users ) ) {
$error = sprintf(
__( '%1$s must have a valid user ID.', 'acf' ),
$param
);
$data['value'] = $invalid_users;
return new WP_Error( 'rest_invalid_param', $error, $data );
}
if ( count( $insufficient_roles ) ) {
$error = sprintf(
_n(
'%1$s must have a user with the %2$s role.',
'%1$s must have a user with one of the following roles: %2$s',
count( $field['role'] ),
'acf'
),
$param,
count( $field['role'] ) > 1 ? implode( ', ', $field['role'] ) : $field['role'][0]
);
$data['value'] = $insufficient_roles;
return new WP_Error( 'rest_invalid_param', $error, $data );
}
return $valid;
}