Как добавить общее количество товаров в информацию о заказе WooCommerce
Никто не любит, когда его обсчитывают, или недокладывают заказанный и оплаченный товар. Но, к сожалению, это иногда случается, не от желания недобросовестного продавца нажиться на клиентах, но по банальной невнимательности.
Если вы владелец интернет-магазина, или работник-комплектовщик, для вас при сборке заказа может быть важно не только количество каждого товара, но и общее число элементов в заказе, особенно если товары однотипные, например бусины, бутылочки или открытки.
Можно было бы вручную подкрутить счётчик элементов заказа в таблице, но, как известно, WordPress не одобряет ручную правку файлов плагинов, тем более все правки будут стёрты при первом же обновлении плагина.
Самое простое решение - добавить искомое число в конец страницы предпросмотра заказа
Во-первых, если вы ещё не создали дочернюю тему вашей основной темы, создайте её и в файл functions.php добавьте следующий фрагмент:
// Register custom order meta data to make it accessible in Order preview template add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_meta_data', 10, 2 ); function admin_order_preview_add_custom_meta_data( $data, $order ) { if( $total_items = $order->get_item_count() ) $data['total_items'] = $total_items; //Store the value in the data array. return $data; } // Display custom value in Order preview add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' ); function custom_display_order_data_in_admin(){ // Call the stored value and display it echo '<div class="total">Всего товаров в заказе: {{data.total_items}}</div>'; } |
Первая функция регистрирует пользовательские данные, чтобы во второй можно было их вывести.
Во-вторых, добавим немного стилей в файл style.css дочерней темы:
.wc-order-preview .total{ font-size: 1.3em; font-weight: 600; margin: 1em 0; text-align: center; } |
Чтобы увидеть результат, перейдем на страницу заказов.
Нажмем на иконку с глазом в второй колонке и увидим в конце списка заказов следующее: