Created
May 13, 2026 20:16
-
-
Save aheckler/4d59986496dba91a6062651c09098075 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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