获取之前的订单号WooCommerce

时间:2017-12-10 06:51:05

标签: php wordpress woocommerce orders

我正在尝试从指定的订单号获取先前的订单号,例如我们有5个订单。 1780 1781 1782 1784 1786 现在,如果我指定订单号

wc_custom_get_previous_order_number(1784)

我应该得到1782.我尝试了多种解决方案。例如:

add_filter( 'woocommerce_order_number', 'custom_woocommerce_order_number', 1, 2 );
function custom_woocommerce_order_number( $oldnumber, $order ) {
  $lastorderid = $order->id-1; // here is i am trying to get previous order number.
// other code...
}

1 个答案:

答案 0 :(得分:1)

您可以使用带有2个参数的SQL查询构建自己的函数:

  • private static int Factorial2(int v) { int i = 1; int accum = 1; while (i++ < v) accum *= i; return accum; } 是起始订单ID。
  • $order_id是Ids的订单数量。

功能代码:

$limit

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

USAGE (示例)

1)从您将在代码中使用的当前function get_orders_from( $order_id, $limit = 1 ){ global $wpdb; // The SQL query $results = $wpdb->get_col( " SELECT ID FROM {$wpdb->prefix}posts WHERE post_type LIKE 'shop_order' AND ID < $order_id ORDER BY ID DESC LIMIT $limit " ); return $limit == 1 ? reset( $results ) : $results; } 获取以前的订单ID:

$order_id

您将直接获得以前的订单ID ...

2)从订单ID 1784获取3个先前的订单ID:

$previous_order_id = get_orders_from( $order_id );

您将获得:// Get the array of orders_ids $orders_ids = get_orders_from( 1784, 3 ); // Converting and displaying a string of IDs (coma separated) echo implode( ', ', $orders_ids );