Добавление миниатюры товаров в список заказов администратора Woocommerce - PullRequest
1 голос
/ 12 мая 2019

Я хотел бы добавить будущее изображение на страницах заказа администратора просмотра в Woocommerce. Новый столбец создан, но изображение товара не появляется. Что я должен сделать, чтобы показать эскиз заказа? Спасибо.

// Admin Order page new colums
add_filter( 'manage_edit-shop_order_columns', 'add_account_orders_column', 10, 1 );
function add_account_orders_column( $columns ){
    $columns['custom-column'] = __( 'New Column', 'woocommerce' );

    return $columns;
}

add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'add_account_orders_column_rows' );
function add_account_orders_column_rows( $order ) {
    // Example with a custom field
    if ( $value = $order->get_meta( 'order_received_item_thumbnail_image' ) ) {
        echo esc_html( $value );
    }
}

1 Ответ

0 голосов
/ 12 мая 2019

Остерегайтесь, так как в заказах может быть много товаров (много элементов заказа), и в этом случае у вас будет много изображений (также это отразится на странице)

Теперь ваш второй функциональный хук неверен и ничего не будет делать.

Для этого вам нужно перебрать элементы заказа следующим образом:

// Add a new custom column to admin order list
add_filter( 'manage_edit-shop_order_columns', 'admin_orders_list_add_column', 10, 1 );
function admin_orders_list_add_column( $columns ){
    $columns['custom_column'] = __( 'New Column', 'woocommerce' );

    return $columns;
}

// The data of the new custom column in admin order list
add_action( 'manage_shop_order_posts_custom_column' , 'admin_orders_list_column_content', 10, 2 );
function admin_orders_list_column_content( $column, $post_id ){
    global $the_order;

    if( 'custom_column' === $column ){
        $count = 0;

        // Loop through order items
        foreach( $the_order->get_items() as $item ) {
            $product = $item->get_product(); // The WC_Product Object
            $style   = $count > 0 ? ' style="padding-left:6px;"' : '';

            // Display product thumbnail
            printf( '<span%s>%s</span>', $style, $product->get_image( array( 50, 50 ) ) );

            $count++;
        }
    }
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...