我删除了以前的问题,因为它是对我的一部分措辞不好.我试图创建一个Woocommerce我的帐户订单页面,只显示完成的订单.我已经尝试了以下代码,但所有的订单仍然显示,无论状态.
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return
do_shortcode('[woocommerce_my_account]');
} else {
$orders = wc_get_orders(array(
'customer' => $user_id,
'status' => 'completed', // You can
modify the order status as needed
));
$order_count = count($orders);
ob_start();
wc_get_template('myaccount/my-orders.php',
array(
'current_user' => get_user_by('id',
$user_id),
'order_count' => $order_count
));
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
字符串
1条答案
按热度按时间js81xvg61#
自WooCommerce 3以来,模板
myaccount/my-orders.php
已被弃用,不再使用并被myaccount/orders.php取代。这些模板之间的区别在于,旧的模板使用硬编码在模板本身中的WP_Query,而最新的模板使用WC_Query (与WooCommerce HPOS兼容)。
当你在简码中使用
myaccount/my-orders.php
模板 (不推荐使用的模板) 时,你需要一些不同的东西来定位客户完成的订单:字符串
代码放在你的子主题的functions.php文件中(或插件中)。测试和工作。