如何通过 id 检查 WooCommerce 订单的付款方式?

Posted

技术标签:

【中文标题】如何通过 id 检查 WooCommerce 订单的付款方式?【英文标题】:How to check payment method on a WooCommerce order by id? 【发布时间】:2014-11-18 15:32:57 【问题描述】:

如果选择的付款方式是货到付款,我想进行一些更改。在我使用过的现有 WC_Order 上

($order->payment_method_title == 'Cash On Delivery' ? ... : ... );

检索标题。 但我想检查 id (cod),因为标题字符串被翻译成不同的语言,这并不是一个好的解决方案。

有没有办法在 woocommerce 中检索 WC_Order 上的 id?

【问题讨论】:

【参考方案1】:

支付方式 ID 的 post meta key 就是 _payment_method

因此,如果 $order->payment_method 没有适当的神奇方法来自动获取它,您可以使用传统的 WordPress 检索帖子元

get_post_meta( $order->id, '_payment_method', true );

WooCommerce 3.0 更新

$order->get_payment_method();

【讨论】:

很高兴听到。不要忘记通过单击旁边的复选框将其标记为答案。 @helgatheviking 我可以获取客户在感谢页面上输入的信用卡信息吗? 请搜索该网站以查看是否已被询问,如果没有,请尝试询问您自己的问题。 订单类的正确函数是get_payment_method() 所以使用$order->get_payment_method();比使用旧的 post_meta 函数更好的方法 同意,这个答案来自 2014 年,所以现在已经过时了。【参考方案2】:

如果您需要支付网关对象本身,您可以使用wc_get_payment_gateway_by_order 函数。

$payment_gateway = wc_get_payment_gateway_by_order( $order );

【讨论】:

【参考方案3】:

如果您想要付款方式的标题,您可以这样做:

$order = new WC_Order( $order_id );
$payment_title = $order->get_payment_method_title();

这将返回在 Woocommerce > 付款方式中设置的字符串,例如:Paypal

这里有一些非常有用的参考资料和文档,可以帮助您使用 WooCommerce 做任何您想做的事情。

WooCommerce Order Class WooCommerce Reference Docs

干杯。

【讨论】:

以上是关于如何通过 id 检查 WooCommerce 订单的付款方式?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?

如何通过 WooCommerce 中的时间限制限制每个客户的订单数量

如何从 WooCommerce 中的订单密钥中获取订单 ID?

如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]

如何在 WooCommerce 的订单支付页面上检索订单 ID

Woocommerce Subscription 使用 API 从订单 id 获取 id