Using Gravity Forms ‘gform_rest_api_capability_get_results’ PHP filter

The gform_rest_api_capability_get_results filter allows you to modify the capability required to get form results via the Gravity Forms REST API v2.

Usage

add_filter('gform_rest_api_capability_get_results', 'your_function_name', 10, 2);

Parameters

  • $capability (string) – The capability required. Defaults to ‘gravityforms_view_entries’.
  • $request (WP_REST_Request) – Full data about the request.

More information

See Gravity Forms Docs: gform_rest_api_capability_get_results

Examples

Change the required capability

Modify the required capability to access form results through the REST API.

add_filter('gform_rest_api_capability_get_results', 'get_rest_api_capability_get_results', 10, 2);

function get_rest_api_capability_get_results($capability, $request) {
    return 'my_custom_capability';
}

Allow access based on user role

Allow only users with the ‘editor’ role to access form results through the REST API.

add_filter('gform_rest_api_capability_get_results', 'allow_editors_to_get_results', 10, 2);

function allow_editors_to_get_results($capability, $request) {
    $user = wp_get_current_user();
    if (in_array('editor', $user->roles)) {
        return $capability;
    }
    return 'do_not_allow';
}

Restrict access to specific form

Restrict access to form results through the REST API for a specific form.

add_filter('gform_rest_api_capability_get_results', 'restrict_specific_form_results', 10, 2);

function restrict_specific_form_results($capability, $request) {
    $form_id = $request->get_param('form_id');
    if ($form_id == 5) {
        return 'do_not_allow';
    }
    return $capability;
}

Allow access for specific IP addresses

Allow access to form results through the REST API only for specific IP addresses.

add_filter('gform_rest_api_capability_get_results', 'allow_specific_ips', 10, 2);

function allow_specific_ips($capability, $request) {
    $allowed_ips = ['192.168.1.1', '192.168.1.2'];
    if (in_array($_SERVER['REMOTE_ADDR'], $allowed_ips)) {
        return $capability;
    }
    return 'do_not_allow';
}

Conditionally allow access based on form metadata

Allow access to form results through the REST API only if the form has a specific meta key.

add_filter('gform_rest_api_capability_get_results', 'allow_based_on_form_meta', 10, 2);

function allow_based_on_form_meta($capability, $request) {
    $form_id = $request->get_param('form_id');
    $meta_key = 'custom_meta_key';
    $meta_value = gform_get_meta($form_id, $meta_key);
    if ($meta_value == 'some_value') {
        return $capability;
    }
    return 'do_not_allow';
}