在 WooCommerce 中获取通过信用卡支付的订单
Posted
技术标签:
【中文标题】在 WooCommerce 中获取通过信用卡支付的订单【英文标题】:Get orders paid by credit card in WooCommerce 【发布时间】:2019-08-29 10:26:36 【问题描述】:在 Woocommerce 中,我正在尝试通过信用卡获取所有已付款订单,为此我尝试使用以下代码:
// Get Report for orders made by credit card
foreach( $orders as $order )
if ( $order->get_payment_method() = 'nmwoo_2co' )
$order_data = $order->get_data(); // The Order data
$orders_by_credit .= 'Order Number: #' . $order->id . '<br>' .'Order Status: '. $order->status . '<br>' . 'Order Creation Date: ' . $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->total . '<br>' . 'Customer Username: ' . $order_billing_first_name = $order_data['billing']['first_name'] . '<br>' . 'Customer E-Mail: '. $order_billing_email = $order_data['billing']['email'] . '<br>' . 'Customer Phone: ' . $order_billing_phone = $order_data['billing']['phone'] . '<br>' . $order->get_payment_method();
但条件$orders->get_payment_method() = 'nmwoo_2co'
不起作用。
无效,如何查看订单中使用的支付方式是否为 nmwoo_2co?
【问题讨论】:
【参考方案1】:首先,您的 IF 语句中有一个错误,应该改为 (使用 ===
而不是 =
):
if ( $order->get_payment_method() === 'nmwoo_2co' )
现在您的代码中还有一些其他错误:
$orders_by_credit .= 'Order Number: #' . $order->id . '<br>' .'Order Status: '. $order->status . '<br>' . 'Order Creation Date: ' . $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->total . '<br>' . 'Customer Username: ' . $order_billing_first_name = $order_data['billing']['first_name'] . '<br>' . 'Customer E-Mail: '. $order_billing_email = $order_data['billing']['email'] . '<br>' . 'Customer Phone: ' . $order_billing_phone = $order_data['billing']['phone'] . '<br>' . $order->get_payment_method();
应该是:
$orders_by_credit .= 'Order Number: #' . $order->get_order_number() . '<br>' .'Order Status: '. $order->get_status() . '<br>' . 'Order Creation Date: ' . $order->get_date_created()->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->get_total() . '<br>' . 'Customer Username: ' . $order->get_billing_first_name() . '<br>' . 'Customer E-Mail: '. $order->get_billing_email() . '<br>' . 'Customer Phone: ' . $order->get_billing_phone() . '<br>' . $order->get_payment_method();
如何在 WooCommerce 中获取正确的付款 ID:
进入后台,在设置>支付,当你点击支付方式时,可以在URL中看到:
?page=wc-settings&tab=checkout&section=paypal
,其中paypal
会为每种支付方式更改为对应的支付方式ID蛞蝓。或者在结帐页面,您可以使用浏览器工具检查
value
属性上的付款单选按钮,例如:value="paypal">
如果您设置了正确的付款 ID,您的条件将起作用。
见:How to get WooCommerce order details
【讨论】:
非常感谢我得到了正确的 id 但是 if 语句给我一个语法错误if ( $order->get_payment_method() = 'nmwoo_2co' )
这个条件有什么问题> 不能在写上下文中使用返回值
非常感谢你真棒
@mohamedadel 是的,退款订单没有付款方式,正常……您只需在订单查询中获取正常订单。问题在于您的查询(关于您如何获得订单),而不是我的代码。
所以如果我添加了 if ( !$order->get_status() === 'refunded') // 代码在这里 ?它会工作吗?
@mohamedadel 您应该只查询已付款订单(状态为“处理中”和“完成”)以上是关于在 WooCommerce 中获取通过信用卡支付的订单的主要内容,如果未能解决你的问题,请参考以下文章
如果在 Woocommerce 中应用了任何优惠券代码,请删除一些支付网关
使用自定义 Woocommerce 支付网关的“下订单按钮”的 Javascript 覆盖