更改 Woocommerce 中默认选择的支付网关

Posted

技术标签:

【中文标题】更改 Woocommerce 中默认选择的支付网关【英文标题】:Change the default selected payment gateway in Woocommerce 【发布时间】:2018-10-19 02:02:25 【问题描述】:

我在 Woocommerce 结帐页面中有两个不同的支付网关(条带和银行转帐)。但默认情况下始终自动选择“银行转账”(bac)。

这是我结帐页面上支付网关的屏幕截图:

我想更改它并自动选择条带支付网关。

我该怎么做?任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

更新

您可以尝试添加以下代码,以更改结帐页面上的默认支付网关。您必须在此代码中定义默认的所需支付网关 ID:

add_action( 'template_redirect', 'define_default_payment_gateway' );
function define_default_payment_gateway()
    if( is_checkout() && ! is_wc_endpoint_url() ) 
        // HERE define the default payment gateway ID
        $default_payment_id = 'stripe';

        WC()->session->set( 'chosen_payment_method', $default_payment_id );
    

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

您现在将始终默认使用 Stripe:


要获得 Stripe 所需的支付网关 ID,请进入 Woocommerce > 设置 > 结帐并在 “网关 ID”列 中找到它,如以下屏幕截图所示:

【讨论】:

我已按照您的指示完成此操作。但是,当我刷新结帐页面时,它仍然默认选择银行转账网关。我想默认选择信用卡。【参考方案2】:

您可以根据需要重新排列支付网关(在您的情况下是信用卡(条带),然后是直接银行转账),以便在每个新会话中始终选择前一个。

WooCommerce 会自动将当前选择的付款方式(例如直接银行转帐)保存到当前会话中,当您重新加载页面时,将选择该付款方式而不是默认方式。您可以在私有窗口浏览器中进行测试。

更新: 这个答案只是对 WooCommerce 如何处理默认网关的解释。如果通过任何更改它都不起作用。您的主题或插件中可能有一些代码(如 LoicTheAztec 的代码)覆盖了此功能。如果你想强制它默认到一个特定的网关,你可以按照 LoicTheAztec 的回答。

【讨论】:

很棒的评论!最好的解决方案是最简单的 非常感谢! :) 乐于助人。 很好找,cookie 会话有时会很麻烦。您认为您的代码更改不起作用,这完全是因为它们有条件地依赖于设置的 cookie 选项。有时可能会令人沮丧,大声笑。再次感谢。 可能更高,但单选按钮是否也默认选中? 不工作!刚检查。 LoicTheAztec 的上述解决方案运行良好。【参考方案3】:

是的,单选按钮将默认为最高的活动网关。

【讨论】:

以上是关于更改 Woocommerce 中默认选择的支付网关的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 WooCommerce 中管理员端的更改订单设置支付网关

支付网关的 WooCommerce 订单状态更改

在 WooCommerce 中更改特定的支付网关标题

WooCommerce:如果购物车总金额 = 0,则更改支付网关

Woocommerce 中特定支付网关的结帐附加字段

WooCommerce:根据选择的支付网关向卡添加费用