gform_paypal_request

Description

Use this filter to modify the URL string that will be sent to PayPal. This filter is fired immediately before the user is redirected to PayPal. See the PayPal Standard documentation for supported arguments.

Usage

add_filter( 'gform_paypal_request', 'your_function_name', 10, 5 ) ;

You can also specify this per form by adding the form id after the hook name.

add_filter( 'gform_paypal_request_1', 'your_function_name', 10, 5 ) ;

Parameters

  • $url string

    The entire url that will be sent to PayPal, including the query string; includes the return url, cancel url, notify url, invoice ID, currency, customer fields, products, quantities, prices, and various other PayPal settings.

  • $form Form Object

    The Form Object of the entry created.

  • $entry Entry Object

    The Entry Object created.

  • $feed Feed Object

    The feed currently being processed.

  • $submission_data Submission Data

    Contains the form title, payment amount, setup fee amount, trial amount, line items created using the submitted pricing field values and any discounts from coupons. Added in PayPal 2.4.4.

Examples

Change Return URL

This example changes the “return” url in the query string. This is where PayPal returns to after payment is made and should be your form.

add_filter( 'gform_paypal_request', 'update_url', 10, 3 );
function update_url( $url, $form, $entry ) {
    //parse url into its individual pieces (host, path, querystring, etc.)
    $url_array = parse_url( $url );
    //start rebuilding url
    $new_url = $url_array['scheme'] . '://' . $url_array['host'] . $url_array['path'] . '?';
    $query = $url_array['query']; //get querystring
    //parse querystring into pieces
    parse_str( $query, $qs_param );
    $return = $qs_param['return']; //return url
    //parse return url so the querystring is left alone while modifying the url
    $return_url = parse_url( $return );
    //rebuild url with new location
    $new_return_url = $return_url['scheme'] . '://' . 'rocketgenius.com/contact-us/?' . $return_url['query'];
    $qs_param['return'] = $new_return_url; //update return querystring parameter to new value
    $new_qs = http_build_query( $qs_param ); //rebuild querystring
    $new_url .= $new_qs; //add querystring to url
    return $new_url;
}

Change IPN URL

This example changes IPN URL used by PayPal to notify the payment. Bear in mind using this will avoid Gravity Forms to be able to update entries with the payment details and status. Simply replace https://your_url_here.com with your custom IPN URL.

add_filter( 'gform_paypal_request', 'update_url', 10, 3 );
function update_url( $url, $form, $entry ) {
    //parse url into its individual pieces (host, path, querystring, etc.)
    $url_array = parse_url( $url );
    //start rebuilding url
    $new_url = $url_array['scheme'] . '://' . $url_array['host'] . $url_array['path'] . '?';
    $query = $url_array['query']; //get querystring
    //parse querystring into pieces
    parse_str( $query, $qs_param );
    $qs_param['notify_url'] = 'https://your_url_here.com'; // update notify_url querystring parameter to new value
    $new_qs = http_build_query( $qs_param ); //rebuild querystring
    $new_url .= $new_qs; //add querystring to url
    return $new_url;
}

Placement

This code should be placed in the functions.php file of your active theme.

Source Code

gf_apply_filters( 'gform_paypal_request', $form['id'], $url, $form, $entry, $feed, $submission_data )

This filter is located in GFPayPal::redirect_url() in class-gf-paypal.php.