The gform_stripe_entry_not_found_status_code filter in Gravity Forms Stripe Add-On allows you to override the status code for the “entry not found” WP_Error.
Usage
add_filter('gform_stripe_entry_not_found_status_code', 'your_function_name', 10, 3);
Parameters
- $status_code (int): The status code. Default is 200.
- $action (array): An associative array containing the event details.
- $event (Stripe Event Object): The Stripe event object for the webhook which was received.
More information
See Gravity Forms Docs: gform_stripe_entry_not_found_status_code
Examples
Changing the status code
Change the status code for the “entry not found” WP_Error.
add_filter('gform_stripe_entry_not_found_status_code', 'change_status_code', 10, 3); function change_status_code($status_code, $action, $event) { return "205"; }
Set a custom status code based on event type
Set a custom status code depending on the Stripe event type.
add_filter('gform_stripe_entry_not_found_status_code', 'custom_status_code', 10, 3); function custom_status_code($status_code, $action, $event) { if ($event->type == "charge.failed") { return "404"; } return "200"; }
Log events with entry not found errors
Log all events that have “entry not found” errors.
add_filter('gform_stripe_entry_not_found_status_code', 'log_entry_not_found_errors', 10, 3); function log_entry_not_found_errors($status_code, $action, $event) { error_log("Entry not found error for event ID: " . $event->id); return $status_code; }
Set different status codes for different actions
Set different status codes depending on the action taken.
add_filter('gform_stripe_entry_not_found_status_code', 'set_status_code_based_on_action', 10, 3); function set_status_code_based_on_action($status_code, $action, $event) { if ($action['type'] == "update") { return "204"; } elseif ($action['type'] == "delete") { return "410"; } return $status_code; }
Set status code based on event metadata
Set a custom status code based on event metadata.
add_filter('gform_stripe_entry_not_found_status_code', 'set_status_code_based_on_metadata', 10, 3); function set_status_code_based_on_metadata($status_code, $action, $event) { if (isset($event->metadata->custom_status_code)) { return $event->metadata->custom_status_code; } return $status_code; }