Using Gravity Forms ‘gform_ppcp_webhook’ PHP filter

The gform_ppcp_webhook Gravity Forms PHP filter allows you to customize the webhook events processed by the Gravity Forms PayPal Checkout Add-On.

Usage

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

Parameters

  • $action (array): An associative array containing the event details or an empty array for unsupported event types.
  • $event (array): The PayPal Checkout event object for the webhook received. See the PayPal API Reference for details about the event properties.

More information

See Gravity Forms Docs: gform_ppcp_webhook

Examples

Add a note when authorization is cancelled

add_filter('gform_ppcp_webhook', 'ppcp_webhook_action_note', 10, 2);

function ppcp_webhook_action_note($action, $event) {
    if (rgar($event, 'event_type') === 'PAYMENT.AUTHORIZATION.VOIDED') {
        $action['note'] = sprintf('Authorization has been cancelled (voided). Transaction Id: %s', rgar($action, 'transaction_id'));
    }

    return $action;
}

Process the PAYMENT.CAPTURE.DECLINED event

add_filter('gform_ppcp_webhook', function($action, $event) {
    if (rgar($event, 'event_type') !== 'PAYMENT.CAPTURE.DECLINED' || empty($action['entry_id'])) {
        return $action;
    }

    $entry = GFAPI::get_entry($action['entry_id']);
    $payment_status = rgar($entry, 'payment_status');
    if (!in_array($payment_status, array('Authorized', 'Pending'))) {
        return $action;
    }

    // Custom code to handle the PAYMENT.CAPTURE.DECLINED event
    // ...

    return $action;
}, 10, 2);

Handle PAYMENT.CAPTURE.REFUNDED event

add_filter('gform_ppcp_webhook', 'ppcp_webhook_action_refund', 10, 2);

function ppcp_webhook_action_refund($action, $event) {
    if (rgar($event, 'event_type') === 'PAYMENT.CAPTURE.REFUNDED') {
        // Custom code to handle the PAYMENT.CAPTURE.REFUNDED event
        // ...
    }

    return $action;
}

Handle BILLING.SUBSCRIPTION.PAYMENT.FAILED event

add_filter('gform_ppcp_webhook', 'ppcp_webhook_action_payment_failed', 10, 2);

function ppcp_webhook_action_payment_failed($action, $event) {
    if (rgar($event, 'event_type') === 'BILLING.SUBSCRIPTION.PAYMENT.FAILED') {
        // Custom code to handle the BILLING.SUBSCRIPTION.PAYMENT.FAILED event
        // ...
    }

    return $action;
}