Skip to content

Instantly share code, notes, and snippets.

@aheckler
Created May 13, 2026 20:16
Show Gist options
  • Select an option

  • Save aheckler/4d59986496dba91a6062651c09098075 to your computer and use it in GitHub Desktop.

Select an option

Save aheckler/4d59986496dba91a6062651c09098075 to your computer and use it in GitHub Desktop.
# Action and Filter Hooks — Wiki Audit (vs. 10.7.0 code)
Wiki page audited: <https://github.com/woocommerce/woocommerce-gateway-stripe/wiki/Action-and-Filter-Hooks>
Source compared: `woocommerce/woocommerce-gateway-stripe` master at commit pinned to `WC_STRIPE_VERSION 10.7.0`.
A few framing notes before the findings:
- The wiki currently has **no "Deprecated Actions" section**, but 10.7.0 emits three actions via `do_action_deprecated()`. You'll want to add that section.
- Several entries the wiki lists as *deprecated filters* are not deprecated in code — they're plain `apply_filters()` calls. They should be moved back into the active Filters list.
- A handful of entries on the wiki have been fully removed from the code.
- The plugin fires a few non-Stripe-namespaced hooks (`woocommerce_*`, `wc-booking-*`). The wiki currently includes two of these (`woocommerce_credit_card_form_start/end`) — neither of which is still fired. I've noted the cross-namespace ones but flagged them separately since you may not want to document hooks the plugin doesn't own.
---
## 1. Actions
### 1a. Actions to ADD (in 10.7.0 code, not on the wiki)
| Hook | Parameters | Fired in (file:line) | Suggested description |
|---|---|---|---|
| `woocommerce_stripe_update_customer` | `$args, $response` | `class-wc-stripe-customer.php:572` | Called after updating an existing Stripe customer. |
| `wc_stripe_set_default_payment_method` | `$stripe_customer_id, $response` | `class-wc-stripe-customer.php:1014` | Called after setting a default PaymentMethod (UPE successor to `wc_stripe_set_default_source`). |
| `woocommerce_stripe_add_payment_method` | `$user_id, $payment_method_object` | `class-wc-stripe-upe-payment-gateway.php:1991, 2444, 3616, 3798` | Called after a PaymentMethod is added/saved to a customer (UPE). |
| `wc_stripe_change_subs_payment_method_success` | `$source_or_payment_method_id, $prepared_source_or_payment_information_object` | `trait-wc-stripe-subscriptions.php:260, 338` | Called after a subscription's payment method is successfully changed. |
| `wc_gateway_stripe_process_payment_charge` | `$response, $order` | `abstract-wc-stripe-payment-gateway.php:601` | Called after a charge is processed during a payment. Replaces the deprecated `wc_gateway_stripe_process_payment`, `wc_gateway_stripe_process_redirect_payment`, and `wc_gateway_stripe_process_webhook_payment` actions. |
| `wc_gateway_stripe_process_payment_authentication_required` | `$order, $response` (some callsites pass only `$order`) | `trait-wc-stripe-subscriptions.php:638, 1305`; `trait-wc-stripe-pre-orders.php:290` | Called when a payment requires SCA/3DS authentication. |
| `wc_gateway_stripe_process_payment_subscription_charge_attempt_delayed` | `$response, $renewal_order` | `trait-wc-stripe-subscriptions.php:680` | Called when a subscription renewal charge attempt is delayed (e.g., requires async processing). |
| `wc_gateway_stripe_process_payment_intent_requires_action` | `$order, $payment_intent_object` | `class-wc-stripe-webhook-handler.php:1142` | Called from the webhook handler when a PaymentIntent requires customer action. |
| `wc_gateway_stripe_process_payment_intent_incomplete` | `$order` | `class-wc-stripe-webhook-handler.php:1185` | Called from the webhook handler when a PaymentIntent is in an incomplete state. |
| `wc_stripe_webhook_received` | `$webhook_type, $notification, $resolved_order` | `class-wc-stripe-webhook-handler.php:1938` | Called for every Stripe webhook event after it has been parsed and the related order (if any) has been resolved. |
| `wc_stripe_agentic_commerce_initialized` | `$integration` | `class-wc-stripe.php:1031` | Called after the Agentic Commerce integration is initialized. |
| `wc_stripe_agentic_order_created` | `$order, $session` | `class-wc-stripe-webhook-handler.php:2193` | Called after an order is created from an Agentic Commerce checkout session. |
| `wc_stripe_agentic_order_creation_failed` | `$exception, $session` | `class-wc-stripe-webhook-handler.php:2221` | Called when order creation from an Agentic Commerce checkout session fails. |
| `wc_stripe_express_checkout_after_checkout_validation` | `$custom_checkout_data, $errors` | `class-wc-stripe-express-checkout-custom-fields.php:83` | Called after express checkout custom-field validation runs. |
| `wc_stripe_express_checkout_update_order_meta` | `$order_id, $custom_checkout_data` | `class-wc-stripe-express-checkout-custom-fields.php:100` | Called after order meta is written from an express checkout's custom fields. |
| `woocommerce_stripe_updated` | *none* | `class-wc-stripe.php:407` | Called after the plugin runs a version upgrade routine. |
| `wc_stripe_gateway_admin_options_wrapper` | `$gateway` | `class-wc-stripe-upe-payment-gateway.php:4195` | Called when rendering the gateway settings screen wrapper. |
| **`wc_stripe_payment_fields_{$payment_method_id}`** (dynamic) | `$payment_method_id` | `class-wc-stripe-upe-payment-method.php:675`; `-blik.php:136`; `-acss.php:88`; `class-wc-stripe-upe-payment-gateway.php:1153` | Dynamic action fired at the bottom of each UPE payment method's checkout form. `{$payment_method_id}` is the gateway/method id, e.g. `stripe_klarna`. |
| **`wc_stripe_add_payment_method_{$payment_method_name}_success`** (dynamic) | `$source_id, $source_object` | `abstract-wc-stripe-payment-gateway.php:1393` | Dynamic action fired after a payment method is successfully added (legacy flow). |
Non-Stripe-namespaced actions the plugin fires (decide whether to document):
- `woocommerce_refund_deleted` — `$refund_id, $order_id` — `class-wc-stripe-webhook-handler.php:884` (re-firing the WC core hook when a Stripe-initiated refund is removed).
- `wc-booking-remove-inactive-cart` — `$booking_id` — `class-wc-stripe-express-checkout-ajax-handler.php:118, 162` (re-firing the WC Bookings hook during express-checkout flows).
### 1b. Actions to REMOVE from the active list
| Hook | Reason |
|---|---|
| `woocommerce_credit_card_form_start` | Not fired anywhere in 10.7.0. The classic credit-card form path no longer exists (UPE is the default and the legacy gateway form was retired). |
| `woocommerce_credit_card_form_end` | Same as above. |
| `wc_gateway_stripe_process_payment` | **Reclassify** — this is now `do_action_deprecated` (since 9.7.0), replaced by `wc_gateway_stripe_process_payment_charge`. Move to a new Deprecated Actions section. |
| `wc_gateway_stripe_process_redirect_payment` | **Reclassify** — `do_action_deprecated` since 9.7.0, replaced by `wc_gateway_stripe_process_payment_charge`. Move to Deprecated Actions. |
| `wc_gateway_stripe_process_webhook_payment` | **Reclassify** — `do_action_deprecated` since 9.7.0, replaced by `wc_gateway_stripe_process_payment_charge`. Move to Deprecated Actions. |
### 1c. Parameter / description corrections for kept actions
| Hook | Issue | Fix |
|---|---|---|
| `wc_gateway_stripe_process_webhook_payment_error` | Wiki lists `$order, $notification, $error` as required. In code, only two of the five callsites pass the third argument (`$e`); the others pass `$order, $notification`. | Document the third argument as **optional**, e.g. `$order, $notification, $exception (optional)`. |
| `wc_gateway_stripe_process_payment_error` | Wiki params `$error, $order` are correct, but the description ("Called when an error occurs during the process payment event") could be sharper — this hook is fired from many payment paths (intent controller, voucher abstract, subscriptions, UPE gateway), not just one. | Reword to: "Fired when an exception is caught during any payment-processing flow (legacy gateway, UPE, subscriptions, vouchers, redirect handling)." |
| `wc_gateway_stripe_process_redirect_payment_error` | Description "Called after a failed redirect payment process" is fine but only the *legacy* redirect-payment handler still fires it. Worth noting. | Reword: "Fired when the legacy redirect payment handler catches an exception while processing the redirect response." |
---
## 2. Filters
### 2a. Filters to ADD (in 10.7.0 code, not on the wiki)
Grouped so wiki additions are easier to organize.
**Customer / account creation**
- `wc_stripe_update_customer_args` — `$args` — `class-wc-stripe-customer.php:509, 555` — Args used when updating an existing Stripe customer.
- `wc_stripe_create_customer_required_fields` — `$required_fields, $create_customer_request` — `class-wc-stripe-customer.php:273` — Required fields the customer object must include before creation.
- `wc_stripe_create_customer_disallowed_order_statuses` — `$order_statuses` — `class-wc-rest-stripe-orders-controller.php:120` — Order statuses for which a Stripe customer will NOT be created on the order admin side.
**Force-save / replacement of the deprecated `wc_stripe_force_save_source`**
- `wc_stripe_force_save_payment_method` — `$force_save_payment_method, $order_id` — `class-wc-stripe-helper.php:1794` — Whether to force-save the payment method for this order (replacement for `wc_stripe_force_save_source`).
**Payment intents / request building**
- `wc_stripe_generate_create_intent_request` — `$request, $order, $prepared_source_or_null, $is_setup_intent (optional)` — `abstract-wc-stripe-payment-gateway.php:1512, 2038`; `class-wc-stripe-intent-controller.php:922, 974, 1023`; `class-wc-stripe-upe-payment-gateway.php:1851` — Request body used when creating a PaymentIntent or SetupIntent.
- `wc_stripe_update_existing_intent_request` — `$request, $order, $prepared_source` — `abstract-wc-stripe-payment-gateway.php:1665` — Request body used when updating an existing PaymentIntent.
- `wc_stripe_intent_metadata` — `$metadata, $order` — `class-wc-stripe-upe-payment-gateway.php:2940` — Metadata applied to a PaymentIntent.
- `wc_stripe_owner_details` — `$details, $order` — `abstract-wc-stripe-payment-gateway.php:800`; `class-wc-stripe-order-helper.php:1097` — Owner/billing details object included with payment requests.
- `wc_stripe_payment_request_level3_data` — `$level3_data, $order` — `abstract-wc-stripe-payment-gateway.php:1592` — Level 3 line-item data sent with the payment request.
- `wc_stripe_request_headers` — `$headers` — `class-wc-stripe-api.php:170` — HTTP headers used for Stripe API requests (replacement for `woocommerce_stripe_request_headers`).
- `wc_stripe_request_body` — `$request, $api` — `class-wc-stripe-api.php:237` — Request body sent to the Stripe API (replacement for `woocommerce_stripe_request_body`).
**Webhook handling**
- `wc_stripe_webhook_dispute_change_order_status` — `$bool, $order, $notification` — `class-wc-stripe-webhook-handler.php:493` — Whether to change the order status when a dispute event arrives.
- `wc_stripe_process_payment_intent_webhook_async` — `$bool, $order, $intent, $notification` — `class-wc-stripe-webhook-handler.php:1153` — Whether to process the payment-intent webhook asynchronously.
**Express checkout (replaces "Payment Request Button" filters)**
- `wc_stripe_express_checkout_params` — `$params` — `class-wc-stripe-blocks-support.php:259`; `class-wc-stripe-express-checkout-element.php:446` — Localized JS key/value pairs for the express checkout element.
- `wc_stripe_express_checkout_hide_itemization` — `$bool` — `class-wc-stripe-express-checkout-helper.php:1559`; `class-wc-stripe-express-checkout-element.php:288` — Whether to hide itemized line items in the express-checkout sheet (replacement for `wc_stripe_payment_request_hide_itemization`).
- `wc_stripe_express_checkout_add_to_cart_sold_individually_quantity` — `$qty, $qty_passed, $product_id, $variation_id` — `class-wc-stripe-express-checkout-ajax-handler.php:302` — Quantity applied when adding a sold-individually product through express checkout (replacement for `wc_stripe_payment_request_add_to_cart_sold_individually_quantity`).
- `wc_stripe_express_checkout_normalize_address` — `$normalized_data, $data` — `class-wc-stripe-express-checkout-ajax-handler.php:194` — Normalized address data returned from the express-checkout AJAX flow.
- `wc_stripe_express_checkout_countries_with_optional_postcode` — `$countries_array` — `class-wc-stripe-express-checkout-ajax-handler.php:475` — Country codes for which a postcode is treated as optional in express checkout.
- `wc_stripe_express_checkout_enable_classic_checkout_custom_fields` — `$bool` — `class-wc-stripe-express-checkout-element.php:109` — Whether classic-checkout custom fields are enabled in the express-checkout element.
- `wc_stripe_calculated_total` — `$calculated_total, $order_total, $cart` — `class-wc-stripe-express-checkout-helper.php:1581` — Express-checkout calculated cart total (replacement for `woocommerce_stripe_calculated_total`).
- `wc_stripe_payment_request_payment_method_title_suffix` — `$suffix` — `class-wc-stripe-express-checkout-helper.php:63` — Suffix appended to the express-checkout payment-method title shown on orders/emails.
- `wc_stripe_payment_request_product_data` — `$data, $product` — `class-wc-stripe-express-checkout-helper.php:301` — Product data returned to the express-checkout sheet.
- `wc_stripe_payment_request_shipping_posted_values` — `$shipping_address` — `class-wc-stripe-express-checkout-helper.php:1018` — Shipping address values posted from the express-checkout sheet.
- `wc_stripe_payment_request_button_locale` — `$locale` — `class-wc-stripe-express-checkout-helper.php:1473` — Locale code used by the express-checkout button.
**UPE / Stripe Elements / OCS (Optimized Checkout)**
- `wc_stripe_upe_params` — `$params` — `class-wc-stripe-upe-payment-gateway.php:507` — Localized JS key/value pairs for the UPE element.
- `wc_stripe_upe_permitted_font_domains` — `$domains_array` — `class-wc-stripe-upe-payment-gateway.php:611` — Domains permitted for custom Stripe Elements fonts.
- `wc_stripe_show_stripe_developer_widget` — `$bool` — `class-wc-stripe-upe-payment-gateway.php:593` — Whether to show the Stripe developer widget in the admin.
- `wc_stripe_ocs_non_excludable_payment_methods` — `$method_ids_array` — `class-wc-stripe-upe-payment-gateway.php:771` — Payment methods that should never be excluded when Optimized Checkout (OCS) is enabled.
- `wc_stripe_optimized_checkout_title` — `$title, $context` (`'classic'` or `'blocks'`) — `class-wc-stripe-upe-payment-method-oc.php:87, 103` — Title displayed for the Optimized Checkout payment method.
- `wc_stripe_preselect_payment_method_configuration` — `$pmc_id_or_null, $is_test_mode` — `class-wc-stripe-payment-method-configurations.php:133` — Preselected Payment Method Configuration ID for the account.
- `wc_stripe_expand_ocs_in_legacy_checkout` — `$bool` — `class-wc-stripe-feature-flags.php:202` — Whether to expand OCS in the legacy checkout.
- `wc_stripe_is_checkout_sessions_available` — `$bool` — `class-wc-stripe-feature-flags.php:139` — Whether the Stripe Checkout Sessions feature is available.
- `wc_stripe_is_optimized_checkout_available` — `$bool, $pmc_setting, $pmc_enabled` — `class-wc-stripe-feature-flags.php:226` — Whether Optimized Checkout is available for the store.
- `wc_stripe_is_agentic_commerce_enabled` — `$bool` — `class-wc-stripe-feature-flags.php:249` — Whether the Agentic Commerce feature is enabled.
- `wc_stripe_adaptive_pricing_email_notice_styles` — `$styles_array, $order, $sent_to_admin` — `class-wc-stripe-upe-payment-gateway.php:1307` — CSS styles applied to the adaptive pricing email notice.
- `wc_stripe_sepa_elements_options` — `$options` — `abstract-wc-stripe-payment-gateway.php:2334` — Options applied to the legacy SEPA Stripe Elements instance.
- `wc_stripe_is_verbose_debug_mode_enabled` — `$bool` — `class-wc-stripe-helper.php:1999` — Whether verbose debug mode is enabled.
**Captcha / rate limiting**
- `wc_stripe_is_valid_create_and_confirm_setup_intent_captcha` — `$bool` — `class-wc-stripe-intent-controller.php:1263` — Whether the captcha challenge for create-and-confirm SetupIntent flows is valid.
- `wc_stripe_add_payment_method_on_error_rate_limit_delay` — `$delay_seconds, $exception` — `class-wc-stripe-intent-controller.php:1324` — Delay applied when rate-limiting `add_payment_method` retries after an error.
**Subscriptions**
- `wc_stripe_display_update_subs_payment_method_card_checkbox` — `$bool` — `trait-wc-stripe-subscriptions.php:127` — Whether to show the "update all subscriptions" checkbox.
- `wc_stripe_detached_subscriptions_maximum_count` — `$max_count` — `class-wc-stripe-status.php:253` — Maximum number of detached subscriptions to process in the status report.
- `wc_stripe_detached_subscriptions_maximum_time` — `$max_time` — `class-wc-stripe-subscriptions-helper.php:87` — Maximum lookback time when identifying detached subscriptions.
- `wc_stripe_privacy_eraser_subs_statuses` — `$statuses` — `class-wc-stripe-privacy.php:366` — Subscription statuses considered "active" for the WP privacy eraser.
**Database cache / scripts**
- `wc_stripe_database_cache_is_expired` — `$bool, $prefixed_key, $cache_contents` — `class-wc-stripe-database-cache.php:276` — Whether a cached entry is considered expired.
- `wc_stripe_database_cache_prefetch_window` — `$window_seconds, $cache_key` — `class-wc-stripe-database-cache-prefetch.php:152` — Prefetch window for the database cache.
- `wc_stripe_load_scripts_on_product_page_when_prbs_disabled` — `$bool` — `class-wc-stripe-helper.php:1274` — Whether to still load Stripe scripts on product pages when payment request buttons are disabled.
- `wc_stripe_load_scripts_on_cart_page_when_prbs_disabled` — `$bool` — `class-wc-stripe-helper.php:1291` — Same as above for cart pages.
**Connect / OAuth**
- `wc_stripe_connection_refresh_interval` — `$interval_seconds` — `class-wc-stripe-connect.php:473` — Interval (in seconds) before the Stripe Connect token is refreshed.
**Settings**
- `wc_stripe_settings` — `$settings_array` — `includes/admin/stripe-settings.php:11` — Admin settings array for the main Stripe gateway. (Long-standing but undocumented.)
**Agentic Commerce (10.7.0 feature)**
- `wc_stripe_agentic_approve_order` — `$decline, $event, $invalid_line_item` — `class-wc-stripe-agentic-commerce-manual-approval.php:58` — Whether to decline an agentic order.
- `wc_stripe_agentic_commerce_files_api_pre_request` — `$pre, $file_path` — `class-wc-stripe-agentic-commerce-files-api-delivery.php:217` — Short-circuit the Files API request when truthy.
- `wc_stripe_agentic_commerce_import_set_pre_request` — `$pre, $file_id, $standard_data_format` — `class-wc-stripe-agentic-commerce-files-api-delivery.php:315` — Short-circuit the import-set request when truthy.
- `wc_stripe_agentic_commerce_map_product` — `$row, $product, $parent_product` — `class-wc-stripe-agentic-commerce-product-mapper.php:100` — Row data mapped from a WooCommerce product into the agentic feed.
- `wc_stripe_agentic_commerce_product_query_args` — `$args` — `class-wc-stripe-agentic-commerce-integration.php:229` — Product query args used to build the agentic feed.
- `wc_stripe_agentic_commerce_sync_history_limit` — `$limit` — `class-wc-stripe-agentic-commerce-integration.php:527` — Number of sync history entries retained.
- `wc_stripe_agentic_commerce_tax_code` — `$tax_code_or_null, $tax_class, $product` — `class-wc-stripe-agentic-commerce-product-mapper.php:642` — Tax code applied to an agentic feed row.
- `wc_stripe_agentic_commerce_validation_errors` — `$errors, $row, $product` — `class-wc-stripe-agentic-commerce-feed-validator.php:112` — Validation errors for an agentic feed row.
- `wc_stripe_agentic_commerce_feed_sync_interval` — `$interval` — `class-wc-rest-stripe-agentic-commerce-controller.php:237` — Sync interval (seconds) for the agentic feed.
**Dynamic filters worth listing explicitly**
- `wc_stripe_{stripe_id}_supported_currencies` — `$currencies` — `abstracts/abstract-wc-stripe-payment-gateway-voucher.php:186` — Supported currencies for voucher methods (Boleto, OXXO, Multibanco). NOTE: the wiki currently labels this as deprecated; it is **not** deprecated for voucher methods (still used as a regular `apply_filters`). The UPE counterpart is `wc_stripe_{stripe_id}_upe_supported_currencies`, which IS the active path for UPE methods.
### 2b. Filters to REMOVE from the active list
| Hook | Reason |
|---|---|
| `wc_stripe_logging` | Not present anywhere in 10.7.0 — fully removed. |
| `woocommerce_stripe_request_headers` | **Reclassify as deprecated** — now `apply_filters_deprecated` since 9.7.0, replaced by `wc_stripe_request_headers`. |
| `woocommerce_stripe_request_body` | **Reclassify as deprecated** — `apply_filters_deprecated` since 9.7.0, replaced by `wc_stripe_request_body`. |
| `wc_stripe_payment_request_hide_itemization` | **Reclassify as deprecated** — `apply_filters_deprecated` since 10.6.0, replaced by `wc_stripe_express_checkout_hide_itemization`. |
### 2c. Parameter / description corrections for kept filters
| Hook | Wiki says | Code says | Fix |
|---|---|---|---|
| `wc_stripe_payment_metadata` | params: `$metadata, $order, $prepared_source` — description: "Metadata that gets passed during an express checkout." | params: `$metadata, $order, $prepared_payment_method` — fired from the **legacy gateway** and **checkout sessions** (both `$order` and `$prepared_payment_method` can be `null` in the sessions path). | Description is wrong. Suggest: "Metadata sent with the PaymentIntent/charge. Fired from the legacy gateway and from the Checkout Sessions flow." Also rename the third doc'd param to `$prepared_payment_method`. |
| `wc_stripe_generate_payment_request` | description: "Post data that gets passed during an express checkout." | Fired from the legacy gateway (`abstract-wc-stripe-payment-gateway.php:566`). Express checkout has its own filters. | Reword: "Request body assembled for the legacy Stripe charge/payment request before being sent to the API." Also rename the third doc'd param to `$prepared_payment_method`. |
| `wc_stripe_allowed_payment_processing_statuses` | params: `$order_statuses` | params: `$order_statuses, $order` — the order is passed at every callsite. | Add `$order` to the documented signature. |
| `wc_stripe_payment_request_total_label` | Description fine, but worth noting this filter only fires for the **legacy** payment-request flow; the rebrand-to-"express checkout" code paths use their own filters (`wc_stripe_payment_request_payment_method_title_suffix` etc.). | — | Optional: add a note that it applies to the legacy payment-request total label. |
| `wc_stripe_PAYMENT_METHOD_upe_supported_currencies` | params: `$currencies` | params: `$currencies` ✓ | No change. (But note this is the UPE variant — see voucher-method counterpart above.) |
---
## 3. Deprecated Filters
### 3a. Deprecated filters to ADD
| Hook | Params | Since | Replacement | Source |
|---|---|---|---|---|
| `wc_gateway_stripe_allowed_payment_processing_statuses` | `$allowed_statuses` | 9.7.0 | `wc_stripe_allowed_payment_processing_statuses` | `class-wc-stripe-webhook-handler.php:1233` |
| `woocommerce_stripe_request_headers` | `$headers` | 9.7.0 | `wc_stripe_request_headers` | `class-wc-stripe-api.php:154` *(currently on wiki under active Filters — move it here)* |
| `woocommerce_stripe_request_body` | `$request, $api` | 9.7.0 | `wc_stripe_request_body` | `class-wc-stripe-api.php:221` *(currently on wiki under active Filters — move it here)* |
| `woocommerce_stripe_calculated_total` | `$calculated_total, $order_total, $cart` | 9.6.0 | `wc_stripe_calculated_total` | `class-wc-stripe-express-checkout-helper.php:1564` |
| `wc_stripe_payment_request_hide_itemization` | `$bool` | 10.6.0 | `wc_stripe_express_checkout_hide_itemization` | `class-wc-stripe-express-checkout-helper.php:1553`; `-element.php:282` *(currently on wiki under active Filters — move it here)* |
| `wc_stripe_payment_request_add_to_cart_sold_individually_quantity` | `1, $qty, $product_id, $variation_id` | 10.6.0 | `wc_stripe_express_checkout_add_to_cart_sold_individually_quantity` | `class-wc-stripe-express-checkout-ajax-handler.php:296` |
| `wc_connect_server_url` | `$url` | 9.6.0 | *(no replacement)* | `connect/class-wc-stripe-connect-api.php:128` |
| `wc_connect_api_client_body` | `$body` | 9.6.0 | *(no replacement)* | `connect/class-wc-stripe-connect-api.php:141` |
| `wc_connect_request_args` | `$args` | 9.6.0 | *(no replacement)* | `connect/class-wc-stripe-connect-api.php:174` |
### 3b. Deprecated filters to REMOVE from the wiki (no longer in code at all)
| Hook | Status |
|---|---|
| `wc_stripe_description` | Fully removed — no callsite anywhere in 10.7.0. |
| `wc_stripe_payment_request_params` | Fully removed — no callsite anywhere in 10.7.0. |
| `wc_stripe_PAYMENT_METHOD_settings` | Fully removed as an `apply_filters` call — no callsite anywhere. (The string `'woocommerce_stripe_<method>_settings'` only survives as an *option name* for storing per-method settings.) |
| `wc_stripe_elements_options` | Not deprecated — **still an active `apply_filters` in 10.7.0**. Move back to active Filters. |
| `wc_stripe_elements_styling` | Not deprecated — still an active `apply_filters`. Move back to active Filters. |
| `wc_stripe_elements_classes` | Not deprecated — still an active `apply_filters`. Move back to active Filters. |
| `wc_stripe_sepa_mandate_notification` | Not deprecated — still an active `apply_filters` at `abstract-wc-stripe-payment-gateway.php:2348`. Move back to active Filters. |
| `wc_stripe_hide_payment_request_on_product_page` | Not deprecated — still an active `apply_filters` at `class-wc-stripe.php:537` and `express-checkout-helper.php:941`. Move back to active Filters. Params: `$bool, $post` (the wiki only documents `$bool`). |
| `wc_stripe_show_payment_request_on_checkout` | Not deprecated — still an active `apply_filters` at `class-wc-stripe.php:539` and `express-checkout-helper.php:913`. Move back to active Filters. Params: `$bool, $post`. |
| `wc_stripe_show_payment_request_on_cart` | Not deprecated — still an active `apply_filters` at `class-wc-stripe.php:538` and `express-checkout-helper.php:896`. Move back to active Filters. Params: `$bool`. |
| `wc_stripe_PAYMENT_METHOD_supported_currencies` | Misclassified — still an active `apply_filters` for **voucher** methods (`abstract-wc-stripe-payment-gateway-voucher.php:186`). For UPE methods the active filter is `wc_stripe_PAYMENT_METHOD_upe_supported_currencies`. Either move this to the active Filters list with a note that it applies to voucher methods, or remove it and reword the wiki to clarify the UPE-vs-voucher split. |
| `wc_stripe_force_save_source` | Truly deprecated (since 9.6.0 in `helper.php:1776`), but **also still called as a regular `apply_filters`** at three other sites (`abstract-wc-stripe-payment-gateway.php:959, 1481`; `upe-payment-gateway.php:4352`). Wiki description "Override force save customer" is misleading — it's about whether to save the payment method/source, not the customer object. Also the **params are wrong**: wiki says `$force_save_source, $customer` but the canonical deprecated call passes `$force_save, $order_id`, and the legacy callsites pass either `$force_save_source, $customer` or just `$force_save_source`. Suggest documenting it as `$force_save, $order_id_or_customer` and noting the call-site variation. |
### 3c. Deprecated *actions* (new section to add to the wiki)
The wiki has no Deprecated Actions section today. Add one with these three entries:
| Hook | Params | Since | Replacement |
|---|---|---|---|
| `wc_gateway_stripe_process_payment` | `$charge_or_response, $order` | 9.7.0 | `wc_gateway_stripe_process_payment_charge` |
| `wc_gateway_stripe_process_redirect_payment` | `$response, $order` | 9.7.0 | `wc_gateway_stripe_process_payment_charge` |
| `wc_gateway_stripe_process_webhook_payment` | `$response, $order` | 9.7.0 | `wc_gateway_stripe_process_payment_charge` |
---
## Summary
- **Actions** — 19 net additions, 2 removals (`woocommerce_credit_card_form_*`), 3 reclassifications to a new Deprecated Actions section, 1 param fix (`wc_gateway_stripe_process_webhook_payment_error` — third arg is optional).
- **Filters** — ~50 net additions (heavily driven by Agentic Commerce, OCS, express-checkout rename, and previously undocumented helpers), 1 removal (`wc_stripe_logging`), 3 reclassifications to deprecated (`woocommerce_stripe_request_headers`, `woocommerce_stripe_request_body`, `wc_stripe_payment_request_hide_itemization`), 8 reclassifications back from deprecated to active (elements_*, sepa_mandate_notification, hide_payment_request_on_product_page, show_payment_request_on_cart, show_payment_request_on_checkout), 2 description rewrites (`wc_stripe_payment_metadata`, `wc_stripe_generate_payment_request`), 1 missing param (`wc_stripe_allowed_payment_processing_statuses`).
- **Deprecated filters** — 7 additions, 3 entries to delete entirely (`wc_stripe_description`, `wc_stripe_payment_request_params`, `wc_stripe_PAYMENT_METHOD_settings`), and `wc_stripe_force_save_source` needs its params and description rewritten.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment