The gform_paypal_ipn_{transaction_type} action hook allows you to perform actions for a specific PayPal Instant Payment Notification (IPN) transaction type.
Usage
add_action('gform_paypal_ipn_{transaction_type_to_use}', 'your_function_name', 10, 10);
Parameters
$entry
(Entry Object) – The current entry.$feed
(Feed Object) – The current feed.$status
(string) – The status of the transaction (e.g., completed, reversed, processed, pending, refunded).$txn_type
(string) – The transaction type (e.g., cart, subscr_payment, subscr_cancel).$transaction_id
(int) – The transaction ID.$parent_txn_id
(int) – The parent transaction ID (for transactions like refunds).$subscriber_id
(int) – The subscriber ID.$amount
(string) – The payment amount.$pending_reason
(string) – The pending reason if the payment status is “Pending.”$reason
(string) – The reason code.
More information
See Gravity Forms Docs: gform_paypal_ipn_{transaction_type}
Examples
Add a note for cart transactions
This example adds a note to the entry when a cart transaction occurs.
add_action('gform_paypal_ipn_cart', 'create_note', 10, 10); function create_note($entry, $feed, $status, $txn_type, $transaction_id, $parent_txn_id, $subscriber_id, $amount, $pending_reason, $reason) { GFFormsModel::add_note($entry['id'], 0, 'PayPal', 'Cart transaction occurred.', ''); }
Change entry status for subscription cancellations
This example changes the entry status to “Cancelled” when a subscription is cancelled.
add_action('gform_paypal_ipn_subscr_cancel', 'update_entry_status', 10, 10); function update_entry_status($entry, $feed, $status, $txn_type, $transaction_id, $parent_txn_id, $subscriber_id, $amount, $pending_reason, $reason) { GFAPI::update_entry_property($entry['id'], 'status', 'Cancelled'); }
Send an email when a subscription payment is processed
This example sends an email to the site administrator when a subscription payment is processed.
add_action('gform_paypal_ipn_subscr_payment', 'send_subscription_email', 10, 10); function send_subscription_email($entry, $feed, $status, $txn_type, $transaction_id, $parent_txn_id, $subscriber_id, $amount, $pending_reason, $reason) { $subject = 'Subscription Payment Processed'; $message = 'A subscription payment has been processed. Transaction ID: ' . $transaction_id; wp_mail(get_option('admin_email'), $subject, $message); }