Using Gravity Forms ‘gform_require_login_pre_download’ PHP filter

The gform_require_login_pre_download filter can be used to require the user to be logged in before allowing access to the file through a download URL.

Usage

To apply this filter to all forms, use the following code:

add_filter('gform_require_login_pre_download', 'your_function_name', 10, 3);

Parameters

  • $require_login (bool): Determines if the user needs to be logged in to access the file. Default is false.
  • $form_id (int): The ID of the form used to upload the requested file.
  • $field_id (int): The ID of the field used to upload the requested file.

More information

See Gravity Forms Docs: gform_require_login_pre_download

This filter was added in Gravity Forms 2.2.3.16.

The filter is located in GF_Download::validate_download() in includes/class-gf-download.php.

Examples

Require login for all forms

add_filter('gform_require_login_pre_download', '__return_true');

Require login for a specific form and field

add_filter('gform_require_login_pre_download', 'require_login_for_downloads', 10, 3);

function require_login_for_downloads($require_login, $form_id, $field_id) {
    // Update values below to match your form and field id's
    if ($form_id == '97' && $field_id == '2') {
        $require_login = true;
    }
    return $require_login;
}

Require login for all forms and redirect to the login page

add_filter('gform_require_login_pre_download', function($require_login) {
    $require_login = true;
    if (!is_user_logged_in()) {
        auth_redirect();
    }
    return $require_login;
});