更改 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 中管理员端的更改订单设置支付网关