在 WooCommerce 中获取信用卡支付的订单
Get orders paid by credit card in WooCommerce
在 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 ?
首先,您的 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();
How to get the correct payment ID in WooCommerce:
Go in backend, on Settings > Payments, when you click on a payment method, you can see in the URL: ?page=wc-settings&tab=checkout§ion=paypal
, where paypal
will change for each payment method to the corresponding payment method ID slug.
Or also in checkout page, you can inspect with your browser tools, the payment radio buttons on the value
attribute like: value="paypal">
如果您设置了正确的付款 ID,您的条件将会起作用。
参见:
在 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 ?
首先,您的 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();
How to get the correct payment ID in WooCommerce:
Go in backend, on Settings > Payments, when you click on a payment method, you can see in the URL:
?page=wc-settings&tab=checkout§ion=paypal
, wherepaypal
will change for each payment method to the corresponding payment method ID slug.Or also in checkout page, you can inspect with your browser tools, the payment radio buttons on the
value
attribute like:value="paypal">
如果您设置了正确的付款 ID,您的条件将会起作用。
参见: