如何调用woocommerce的订单列表

woocommerce的订单列表

woocommerce的订单列表在我的账户(我的个人中心)下的订单链接打开可以看到如下图:

订单列表的模板在woocommerce模板文件中的myaccount/orders.php中。

那么如果我们想要将这个订单列表,比如“未完成的订单”调用到其他的地方应该如何去做呢?

woocommerce的订单列表调用

woocommerce的我的个人中心进入主页是比较简单的界面,只有一段文字和几个链接,这样一来,和我们所看到的大部分的电子商务网站就很不一样了。

一般的电子商务网站,在我的个人中心主页会放一个“未完成的订单”等等信息,让这个个人中心内容更加丰富。

woocommerce的默认个人中心如下图所示:

而我们所改造的个人中心,调用了未完成的订单,以及特色推荐产品:

这样的设定和我们所看到的很多电子商务网站就非常接近了,用户体验也更好。

那么我们如何将订单列表调用到其他的地方呢?

首先我们需要使用woocommerce的钩子,获取订单列表的数据:

global $woocommerce;
$customer_orders = get_posts( apply_filters( ‘woocommerce_my_account_my_orders_query‘, array(
‘numberposts‘ => $order_count,
‘meta_key‘    => ‘_customer_user‘,
‘meta_value‘  => get_current_user_id(),
‘post_type‘   => wc_get_order_types( ‘view-orders‘ ),
‘post_status‘ => array_keys( wc_get_order_statuses() ),
‘posts_per_page‘ => 10,//每页显示10个
) ) );

然后我们建立一个循环,输出每一条订单的内容:

foreach ( $customer_orders as $customer_order ){
$order      = wc_get_order( $customer_order );
$item_count = $order->get_item_count();
if( $order->get_status()!="completed"){//过滤未完成的订单
//此处输出订单的内容
echo  $order->get_order_number();//订单号
echo  wc_get_order_status_name( $order->get_status() );//订单状态
echo  order_details_in($order->get_order_number());//下面的函数调用订单每个商品的简介
echo $item_count;//这个订单中一共有多少个商品
echo $order->get_formatted_order_total();//总金额
}}

上面的循环就可以将我们订单输出出来,你可以使用订单的状态进行过滤,将未完成的订单过滤出来。

如果你想要调用每一条订单下的产品简介信息 ,那么可以通过订单号进行调用,使用函数添加进入上面的循环

function  order_details_in($order_number){
$order = wc_get_order( $order_number );//使用订单号获取信息
foreach( $order->get_items() as $item_id => $item ) {//开始循环
$product = apply_filters( ‘woocommerce_order_item_product‘, $order->get_product_from_item( $item ), $item );
$is_visible        = $product && $product->is_visible();
//获取产品信息
$image   = get_the_post_thumbnail( $item[‘product_id‘], apply_filters( ‘single_product_small_thumbnail_size‘, ‘shop_thumbnail‘ ), array(‘title‘     => $item[‘name‘],‘alt‘    => $item[‘name‘]) );//获取略缩图
$product_permalink = get_permalink( $item[‘product_id‘] );//获取产品链接
echo   $image;//输出产品的特色图片
echo   $product_permalink//输出产品的链接
echo $item[‘name‘];//产品名称
echo $item[‘qty‘];//购买数量
};
return $order_details;
}

以上的代码是将可输出的内容都输出出来了,具体的样式和html结构还需要自己的去组件好。

这样我们就可以讲订单列表输出到任意我们想要的地方了。

原文地址:https://www.cnblogs.com/guo671/p/11660791.html

时间: 2024-10-12 18:09:54

如何调用woocommerce的订单列表的相关文章

在ECSHOP后台的订单列表中显示配送方式

熟悉ECSHOP后台的人都知道,只有点击某个具体的订单,进入订单详细页面才能看到该订单的配送方式,最模板修改的目的,是想让管理者在订单列表页面 就能看到该订单的配送方式. 下面是修改方法:首先来修改 程序文件, 打开文件 /admin/order.php 将 $sql = "SELECT o.order_id, o.order_sn, o.add_time, o.order_status, o.shipping_status, o.order_amount, o.money_paid,"

关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法

文章转载自:关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法 | TeachCourse

Ecshop后台订单列表增加”商品名”检索字段

近期ecshop网站做活动,统计商品订单量的时候没有按商品名搜索的选项,只能手动查询.这样效率很低下,而且容易出错. 现在为列表增加一个简单的“按商品名搜索”表单项.效果如下图 涉及到2个文件,分别是/admin/order.php,/admin/templates/order_list.htm,下面详说. 第一步,增加表单项 在/admin/templates/order_list.htm第11行下面增加 1 商品名<input name="goods_name" type=&

调用淘宝订单接口想到的一个问题

在淘宝提供的SDK中,并没有对接口调用返回结果进行安全性验证. 这样就存在一种可能,比如我的订单接口调用在网络传输过程中被劫持了(hacker伪造了格式一样的返回信息),那么就可能导致我的订单系统会引入一些实际上并没有在淘宝平台存在的订单,此时,如果订单系统的客服人员没有比对两个平台的订单的话,订单系统上多出的伪造的订单就可能被发货出去. 解决办法: 淘宝订单接口可以在接口返回的信息中,返回签名,然后sdk中对接口返回信息中的签名进行验证即可

getMyOrderListV2 我的订单列表

http://localhost:2448/api/ashx/service.ashx POST request: { "action":"getMyOrderListV2", "token":"4056b02d-912e-4ab5-869d-8e3c34f610f1", "isDebug":1, "requestData": { "PageSize":3, &quo

后台订单列表的样式

效果如下图,商品件数可以根据自己 的需要调整,<td rowspan="2"><p>6760.0</p> 数字2代表需要合并的行数: 以下为css样式,可以根据自己的需要进行调整. <style> .ordertab1{border-top:1px solid #e6e6e6;border-left:1px solid #e6e6e6;} .ordertab1 td{border-right:1px solid #e6e6e6;borde

编程算法 - 合并订单列表

合并有序链表 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29352997 题目: 合并有序链表, 给定两个升序的链表, 返回一个合并之后的升序链表. 节点结构: struct Node{     int val;     Node *next; }; 要求实现的函数: Node* mergeList(Node *list_a, Node* list_b) 代码: /* * test.cpp * * Created on:

jquery点击一组按钮中的一个,跳转至对应页面处理策略。(如点击订单列表中的一个订单,跳转至该订单的详情)

将改组按钮的数据设置一个相同的属性(如class),然后每个按钮设置不同的id 当用户点击属性为class的按钮,根据id属性来判断点击的是哪个按钮,然后进行相关操作. 代码示例: <script> $("body").on("click",".tiaozhuan",function(){ window.location="http://www.baidu.com"; }); </script> 原文地

网上订单管理-级联;可编辑列表

1.订单列表中新增.详情按钮的跳转操作,它们都需要跳转到订单详情页面,但是页面的显示上会有所不同,点击新增或详情按钮时需要修改queryorder.js中的js跳转函数modify. 2.修改orderdetail.jsp页面中dom结构 3.重新建orderdetail.js文件,并在$(document).ready({})函数中添加处理新增.详情的逻辑. 4.添加级联的事件,如果是订单明细的新增,则需要为下拉框添加触发事件 在$(document).ready({})函数中添加代码. 在o