Wordpress - woocommerce - myaccount / orders-list.php - получить изображения продуктов - PullRequest
1 голос
/ 11 декабря 2019

Я сделал заказной шаблон order-list.php, но я хочу иметь здесь изображение продукта. В каждом заказе всегда только один товар, поэтому всегда есть только одна миниатюрная фотография. Как я могу получить URL этой фотографии?

Мой код при необходимости:

 <?php foreach ( $customer_orders->orders as $customer_order ) {
                $order      = wc_get_order( $customer_order ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
                $item_count = $order->get_item_count() - $order->get_item_count_refunded();

                ?>               
                        <div class="product_list">
                                    <div class="product_item">
                                        <div class="product_home">
                                            <div class="text-center">
                                                <a href="<?php echo esc_url( $order->get_view_order_url() ); ?>" title="<?php echo esc_html( _x( '#', 'hash before order number', 'woocommerce' ) . $order->get_order_number() ); ?>">

//i want to place image here

</a>
                                            </div>
                                            <div class="content_product_home">
                                                <a href="<?php echo esc_url( $order->get_view_order_url() ); ?>" title="<?php echo esc_html( _x( '#', 'hash before order number', 'woocommerce' ) . $order->get_order_number() ); ?>"><h4> Zamówienie <?php echo esc_html( _x( '#', 'hash before order number', 'woocommerce' ) . $order->get_order_number() ); ?></h4></a>

                                                <p><?php echo $order->get_formatted_order_total() ?><span class="per_month">including tax</span></p>

                                            </div>
                                            <div class="text-center">
                                                <a href="<?php echo esc_url( $order->get_view_order_url() ); ?>" class="btn btn-more" title="Details">Details</a>
                                            </div>
                                        </div>
                                    </div>
                        </div>
                <?php } ?>

Спасибо! :)

1 Ответ

1 голос
/ 11 декабря 2019

Вы можете получить изображение с помощью wp_get_attachment_image_src (), просто сначала получите идентификатор продукта из $ order-> get_items (), как показано ниже:

        foreach ( $customer_orders->orders as $customer_order ) {
            $order      = wc_get_order($customer_order); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
            $item_count = $order->get_item_count() - $order->get_item_count_refunded();

                // first get product id
            foreach($order->get_items() as $order_key => $order_value) {
              $product_id = $order_value->get_data()['product_id'];
            }
                // get image
                if (isset($product_id)) {   
                    $image = wp_get_attachment_image_src( get_post_thumbnail_id($product_id));
                }
            ?>
            <div class="product_list">
                <div class="product_item">
                    <div class="product_home">
                        <div class="text-center">
                            <a href="<?php echo esc_url($order->get_view_order_url()); ?>" title="<?php echo esc_html(_x('#', 'hash before order number', 'woocommerce') . $order->get_order_number()); ?>">

                              <?php if (isset($image)) { ?>
                                                        <img src="<?php echo $image[0] ?>" />
                                                    <?php } ?>

                            </a>
                        </div>
                        <div class="content_product_home">
                            <a href="<?php echo esc_url($order->get_view_order_url()); ?>" title="<?php echo esc_html(_x('#', 'hash before order number', 'woocommerce') . $order->get_order_number()); ?>">
                                <h4> Zamówienie
                                    <?php echo esc_html(_x('#', 'hash before order number', 'woocommerce') . $order->get_order_number()); ?>
                                </h4>
                            </a>

                            <p>
                                <?php echo $order->get_formatted_order_total() ?><span class="per_month">including tax</span></p>

                        </div>
                        <div class="text-center">
                            <a href="<?php echo esc_url($order->get_view_order_url()); ?>" class="btn btn-more" title="Details">Details</a>
                        </div>
                    </div>
                </div>
            </div>
        <?php } ?>
...