获取先前的订单号WooCommerce



我试图从指定的订单号中获取以前的订单号,例如我们有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...
}

您可以使用2个参数来构建自己的功能:

  • $order_id是起始订单ID。
  • $limit是要从。

功能代码:

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;
}

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


用法(示例)

1)要从当前$order_id获取先前的订单ID,您将在代码中使用:

$previous_order_id = get_orders_from( $order_id );

您将直接获得先前的订单ID…

2)从订单ID 1784获取以前的3个以前的订单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 );

您将得到:1780, 1781, 1782

相关内容

  • 没有找到相关文章

最新更新