Наверх

Как добавить общее количество товаров в заказе на страницу заказов в админке WooCommerce

В предыдущей статье мы изучили, как добавить общее число товаров включая несколько единиц одного продукта на страницу предпросмотра заказа.

В этой статье рассмотрим, как вывести это же число в общую таблицу заказов:

WordPress хранит эту страницу в папке /wp-content/plugins/woocommerce/includes/admin/list-tables/ в файле class-wc-admin-list-table-orders.php, но там мы, естественно, ничего править не будем, если не хотим потерять все правки с первым же обновлением. Для решения задачи нам послужат фильтр manage_edit-shop_order_columns и хук manage_shop_order_posts_custom_column.

Все изменения нужно вносить в файл functions.php вашей дочерней темы. Если вы ещё не создали дочернюю тему, лучше создайте.
Итак, сначала зарегистрируем колонку  и разместим её после колонки статуса:

add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column($columns)
{
    $reordered_columns = array();
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            $reordered_columns['total_items'] = __( 'Товаров в заказе','woocommerce');
        }
    }
    return $reordered_columns;
}

А теперь добавим в эту колонку данные

add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
    switch ( $column )
    {
        case 'total_items' :
		$order = wc_get_order( $post_id );
		$totals = $order->get_item_count();
		if(!empty($totals))
                	echo $totals;
		 break;
    }
}

Таким образом можно добавить и другие мета-данные, просто зарегистрируйте больше элементов в $reordered_columns в первой функции и заполните их с помощью switch / case во второй.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *