The gform_paypalpaymentspro_args_before_payment Gravity Forms PHP filter allows you to modify the product transaction arguments before they are sent to PayPal.
Usage
add_filter('gform_paypalpaymentspro_args_before_payment', 'your_function_name', 10, 5);
Parameters
- $args (array) – An associative array containing the billing details, payment amount, and line items created using the submitted pricing field values and any discounts from coupons.
- $form_id (integer) – The ID of the form 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. Available from v2.0.
- $feed (Feed Object) – The Feed which is currently being processed. Available from v2.0.
- $entry (Entry Object) – The Entry which is currently being processed. Available from v2.0.
More information
See Gravity Forms Docs: gform_paypalpaymentspro_args_before_payment
Examples
Add New Parameter
This example sets the COMMENT1 parameter using the value from a form field. Check the PayPal API documentation for supported parameters.
add_filter('gform_paypalpaymentspro_args_before_payment', function($args, $form_id) { // Change 3 to the id number of your form. if ($form_id == 3) { // Change 5 to the id number of the field containing the information. $args['COMMENT1'] = rgpost('input_5'); } return $args; }, 10, 2);
Map Billing Address to Shipping Address
This example maps the billing address to the shipping address.
add_filter('gform_paypalpaymentspro_args_before_payment', 'gf_add_shipping_address', 10, 2); function gf_add_shipping_address($args, $form_id) { gf_paypalpaymentspro()->log_debug(__METHOD__ . '(): Running...'); $args["SHIPTOLASTNAME"] = $args["LASTNAME"]; $args["SHIPTOSTREET"] = $args["STREET"]; $args["SHIPTOCITY"] = $args["CITY"]; $args["SHIPTOSTATE"] = $args["STATE"]; $args["SHIPTOZIP"] = $args["ZIP"]; $args["SHIPTOCOUNTRY"] = $args["BILLTOCOUNTRY"]; gf_paypalpaymentspro()->log_debug(__METHOD__ . '(): Modified $args: ' . print_r($args, true)); return $args; }
Placement: Your code snippet should be placed in the functions.php file of your active theme.
Source Code: This filter is located in GFPayPalPaymentsPro::authorize() in class-gf-paypalpaymentspro.php.