我试图将产品的WooCommerce缩略图反映到订单上。
虽然不确定如何。这是我到目前为止所得到的:
<?php echo woocommerce_get_product_thumbnail();?>
这给了我WooCommerce缩略图占位符。 如何为订单中的每个项目选择正确的一个?订单表格包含订单ID,创建日期,状态和价格的字段,因此它确实在某处提取了正确的ID。
这是元键和其他字段的示例,它们为同一表单上的每个订单提取信息,如果其中任何一个有意义的话。
<a href="<?php echo $order->get_view_order_url(); ?>">
<?php echo $order->get_order_number(); ?>
foreach ( $customer_orders as $customer_order ) {
$order = wc_get_order();
$order->populate( $customer_order );
$item_count = $order->get_item_count();
$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())
)
)
);
这就是php的设置方式。我为immage添加了第一个表类。
<tr>
<th class="order-number"><span class="nobr"><?php _e( 'Image', 'woocommerce' ); ?></span></th>
<th class="order-number"><span class="nobr"><?php _e( 'Order', 'woocommerce' ); ?></span></th>
<th class="order-date"><span class="nobr"><?php _e( 'Date', 'woocommerce' ); ?></span></th>
</tr>
然后我试图添加图像。
<td class="order-image”>
<?php echo woocommerce_get_product_thumbnail(); ?>
</td>
<td class="order-number">
<a href="<?php echo $order->get_view_order_url(); ?>">
<?php echo $order->get_order_number(); ?>
</a>
</td>
<td class="order-date”>
<time datetime="<?php echo date( 'Y-m-d', strtotime( $order->order_date ) ); ?>" title="<?php echo esc_attr( strtotime( $order->order_date ) ); ?>"><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></time>
</td>
答案 0 :(得分:1)
请注意,WooCommerce已经拥有“我的帐户”部分中之前订单的所有项目/费用/缩略图,客户可以再次订购&#34;直接从他们的我的帐户区域。
但是,假设您拥有订单ID,您可以使用以下内容访问产品缩略图。这将输出一小部分项目及其缩略图和产品名称:
$order = wc_get_order( $order_id );
$items = $order->get_items();
if( $items ) {
echo '<ul class="ordered-items">';
foreach( $items as $item ){
$id = isset( $item['variation_id'] ) ? $item['variation_id'] : $item['product_id'];
$product = wc_get_product( $id );
echo '<li>'. $product->get_image() . $product->get_title() . '</li>';
}
echo '</ul>';
}
编辑:要集成到您的代码,我可能会执行以下操作
function so_28179558_get_order_thumbnail( $order ){
if( is_numeric( $order ) ){
$order = wc_get_order( $order_id );
}
if( is_wp_error( $order ) ){
return;
}
$order_thumb = '';
$items = $order->get_items();
if( $items ) {
foreach( $items as $item ){
$id = isset( $item['variation_id'] ) ? $item['variation_id'] : $item['product_id'];
$product = wc_get_product( $id );
$order_thumb = $product->get_image();
continue;
}
}
return $order_thumb;
}
然后您可以在模板中使用它,如下所示:
<td class="order-image”>
<?php echo so_28179558_get_order_thumbnail( $order ); ?>
</td>