Php 获取以前的订单号
我试图从指定的订单号中获取以前的订单号,例如,我们有5个订单。 1780 1781 1782 1784 1786 现在如果我指定订单号 wc_定制_获取_先前订单_编号(1784) 我应该得到1782。我尝试了多种解决方案。例如: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
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查询构建自己的函数:
是起始订单id$order\u 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;
}
您将直接获得上一个订单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 );