Using Gravity Forms ‘gform_rest_api_capability_put_feeds’ PHP filter

The gform_rest_api_capability_put_feeds filter allows you to modify the capability required to update feeds using the Gravity Forms REST API v2.

Usage

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

Parameters

  • $capability (string): The capability required, defaults to ‘gravityforms_edit_forms’.
  • $request (WP_REST_Request): Full data about the request.

More information

See Gravity Forms Docs: gform_rest_api_capability_put_feeds

Examples

Change the required capability to update feeds

Allow users with the ‘my_custom_capability’ capability to update feeds through the REST API v2.

add_filter('gform_rest_api_capability_put_feeds', 'get_rest_api_capability_put_feeds', 10, 2);
function get_rest_api_capability_put_feeds($capability, $request) {
    return 'my_custom_capability';
}

Restrict updating feeds based on user role

Restrict feed updates via REST API to users with an ‘editor’ role.

add_filter('gform_rest_api_capability_put_feeds', 'restrict_feed_update_to_editors', 10, 2);
function restrict_feed_update_to_editors($capability, $request) {
    $user = wp_get_current_user();
    if (in_array('editor', $user->roles)) {
        return $capability;
    }
    return 'do_not_allow';
}

Allow feed updates only for specific form IDs

Allow feed updates via REST API only for specific form IDs.

add_filter('gform_rest_api_capability_put_feeds', 'allow_specific_forms_feed_update', 10, 2);
function allow_specific_forms_feed_update($capability, $request) {
    $allowed_form_ids = array(1, 3, 5);
    $form_id = $request->get_param('form_id');
    if (in_array($form_id, $allowed_form_ids)) {
        return $capability;
    }
    return 'do_not_allow';
}

Check custom user meta before allowing feed update

Allow feed updates via REST API only if the user has a specific custom meta value.

add_filter('gform_rest_api_capability_put_feeds', 'check_custom_user_meta_for_feed_update', 10, 2);
function check_custom_user_meta_for_feed_update($capability, $request) {
    $user = wp_get_current_user();
    $allow_feed_update = get_user_meta($user->ID, 'allow_feed_update', true);
    if ('yes' === $allow_feed_update) {
        return $capability;
    }
    return 'do_not_allow';
}

Restrict feed updates based on request data

Restrict feed updates via REST API based on specific request data conditions.

add_filter('gform_rest_api_capability_put_feeds', 'restrict_feed_update_based_on_request_data', 10, 2);
function restrict_feed_update_based_on_request_data($capability, $request) {
    $request_data = $request->get_params();
    if (isset($request_data['meta']) && isset($request_data['meta']['custom_field']) && 'some_value' === $request_data['meta']['custom_field']) {
        return $capability;
    }
    return 'do_not_allow';
}