如何检测 WooCommerce 订阅结帐页面是否用于更改支付网关请求?

How to detect if WooCommerce subscriptions checkout page is for a change payment gateway request?

我有一个使用 WooCommerce 订阅的网站。我在 woocommerce_available_payment_gateways($available_gateways) 过滤器处理函数中做了一些处理,我需要检测结帐过程是否由想要更改其订阅付款方式的用户触发(woo 用户文档:https://woocommerce.com/document/subscriptions/customers-view/#section-11)。

经过大量谷歌搜索后,我能想到的是:

WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment;

这是 WC_Subscriptions_Change_Payment_Gateway 上的 public 静态 属性,但使用起来感觉有点恶心!

有人知道更简洁的方法吗?

-C

更改支付网关请求的 URL 看起来像 www.example.com/checkout/order-pay/1631818391/?pay_for_order=true&key=wc_order_3Qcv1jNShbWNt&change_payment_method=1631818391&_wpnonce=35a514c6ed。所以 isset() of $_GET['change_payment_method'] 可以用在这种情况下。