orders.php我在這里有這個簡單的代碼,可以獲取模板上訂單的縮略圖。
<div class="product-img-col">
<div class="product-img-list">
<?php foreach( $order->get_items() as $item_id => $item ) {
$product = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
echo $product->get_image();
}
?>
</div>
</div>
如果訂單包含 1 個產品或多個產品,我想要實作的是按類別分隔縮略圖。
例子:
<div class="product-img-col">
<div class="single-product-img">
<!-- Insert code to fetch the product thumbnail for single order here -->
</div>
<div class="product-img-list">
<!-- Insert code to fetch the product thumbnails for orders with multiple products here -->
</div>
</div>
這可能嗎?我知道 foreach 函式只是獲取該特定訂單的所有產品縮略圖。如果訂單 # 僅包含 1 個產品,我如何替換要添加的代碼if condition,然后獲取產品縮略圖。
編輯:更新
<div class="product-img-col">
<div class="<?php echo count( $order->get_items() ) > 1 ? 'product-img-list' : 'single-product-img'; ?>">
<?php foreach( $order->get_items() as $item_id => $item ) {
$product = $item->get_product();
echo $product->get_image();
}
?>
</div>
</div>
uj5u.com熱心網友回復:
您可以使用內部 WooCommerceget_item_count()功能來檢查訂單中有多少商品。您可以在三元運算子中實作此功能。
<div >
另請注意,$order->get_product_from_item( $item )已棄用。你應該$item->get_product()改用。這也將消除添加woocommerce_order_item_product 過濾器的使用,因為這是在get_product()函式中呼叫的。
您還需要檢查$product變數。現在,如果遇到產品目錄中不再存在的產品的訂單,您的代碼將會崩潰。
所以是這樣的:
<div class="product-img-col">
<div class="<?php echo $order->get_item_count() > 1 ? 'product-img-list' : 'single-product-img'; ?>">
<?php
foreach( $order->get_items() as $item_id => $item ) {
if ( $product = $item->get_product() ) {
echo $product->get_image();
}
}
?>
</div>
</div>
uj5u.com熱心網友回復:
這是一個可行的解決方案 - 單個專案:https ://prnt.sc/HhclHKDpJ1YA多個專案:https ://prnt.sc/Zb9MeWUlIw6v
<?php
defined( 'ABSPATH' ) || exit;
do_action( 'woocommerce_before_account_orders', $has_orders ); ?>
<?php if ( $has_orders ) : ?>
<?php
foreach($customer_orders->orders as $customer_order):
$order = wc_get_order( $customer_order );
$items = $order->get_items();
$items_count = $order->get_item_count();
?>
<div class="product-img-col"><div class="<?php echo count( $order->get_items() ) > 1 ? 'product-img-list' : 'single-product-img'; ?>">
<?php foreach ( $items as $item ) {
$product = $item->get_product();
echo $product->get_image();
}?></div></div>
<?php endforeach; ?>
<?php if ( 1 < $customer_orders->max_num_pages ) : ?>
<div class="woocommerce-pagination woocommerce-pagination--without-numbers woocommerce-Pagination">
<?php if ( 1 !== $current_page ) : ?>
<a class="woocommerce-button woocommerce-button--previous woocommerce-Button woocommerce-Button--previous button" href="<?php echo esc_url( wc_get_endpoint_url( 'orders', $current_page - 1 ) ); ?>"><?php esc_html_e( 'Previous', 'woocommerce' ); ?></a>
<?php endif; ?>
<?php if ( intval( $customer_orders->max_num_pages ) !== $current_page ) : ?>
<a class="woocommerce-button woocommerce-button--next woocommerce-Button woocommerce-Button--next button" href="<?php echo esc_url( wc_get_endpoint_url( 'orders', $current_page 1 ) ); ?>"><?php esc_html_e( 'Next', 'woocommerce' ); ?></a>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endif; ?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/459549.html
標籤:php WordPress 模板 woocommerce 订单
