Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取以前的订单号_Php_Wordpress_Woocommerce_Orders - Fatal编程技术网

Php 获取以前的订单号

Php 获取以前的订单号,php,wordpress,woocommerce,orders,Php,Wordpress,Woocommerce,Orders,我试图从指定的订单号中获取以前的订单号,例如,我们有5个订单。 1780 1781 1782 1784 1786 现在如果我指定订单号 wc_定制_获取_先前订单_编号(1784) 我应该得到1782。我尝试了多种解决方案。例如: add_filter( 'woocommerce_order_number', 'custom_woocommerce_order_number', 1, 2 ); function custom_woocommerce_order_number( $oldnumbe

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

wc_定制_获取_先前订单_编号(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个参数的SQL查询构建自己的函数:

  • $order\u id
    是起始订单id
  • $limit
    是要从中获取的订单ID数
功能代码:

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

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

您将得到:
17801782

是的,这是肯定的:)
// 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 );