alex-omega
Новичок

В своем woocommerce я сделал Два типа Заказов:
- Просто заказ на Инвойс
- Заказ на регистрацию Проекта (Тоже самое что и Заказ, но добавил дополнительные поля с помощью плагина "Checkout Field Editor for WooCommerce", в которых клиент указывает данные заказчика)
Если первое дополнительное поле заполнено (Название Проекта), тогда Заказ принимает статус "ПРОЕКТ", если не заполнено - Инвойс.
Вот это дополнительное поле в "Checkout Field Editor for WooCommerce":

На просторах инета, нашел как добавить в Админку Wordpres эту колонку в таблицу заказов, и как сделать определение Типа Заказа.
Вот как это выглядит:

Для этого в functions.php прописал такой код:
ВСЕ РАБОТАЕТ ОТЛИЧНО.
Теперь появилась задача, добавить такую же колонку в Личный кабинет на странице заказов.
Мозгов не хватает (
Нашел код, как добавить в эту таблицу перечень товаров по Заказу, а вот как вместо Товаров показывать значение Инвойс/ПРОЕКТ (по принципу кода выше) знаний не хватает (
Прошу помощи!
Вот код который добавляет колонку и содержимое по товарам:
В личном кабинете сейчас это выглядит так:

А надо - вместо перечня товаров чтобы ВЫВОДИЛОСЬ Значение Инвойс или ПРОЕКТ как в Админке.
- Просто заказ на Инвойс
- Заказ на регистрацию Проекта (Тоже самое что и Заказ, но добавил дополнительные поля с помощью плагина "Checkout Field Editor for WooCommerce", в которых клиент указывает данные заказчика)
Если первое дополнительное поле заполнено (Название Проекта), тогда Заказ принимает статус "ПРОЕКТ", если не заполнено - Инвойс.
Вот это дополнительное поле в "Checkout Field Editor for WooCommerce":

На просторах инета, нашел как добавить в Админку Wordpres эту колонку в таблицу заказов, и как сделать определение Типа Заказа.
Вот как это выглядит:

Для этого в functions.php прописал такой код:
HTML:
// 1.ДОБАВЛЯЕМ КОЛОНКУ В ТАБЛИЦУ ЗАКАЗОВ АДМИНКИ САЙТА
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column',11);
function custom_shop_order_column($columns)
{
$reordered_columns = array();
foreach( $columns as $key => $column){
$reordered_columns[$key] = $column;
if( $key == 'order_number' ){
$reordered_columns['my-column1'] = __( 'Тип Заказа','theme_slug');
}
}
return $reordered_columns;
}
// 2.ДОБАВЛЯЕМ ЗНАЧЕНИЕ В КОЛОНКУ ПРОЕКТЫ
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column, $post_id )
{
if( 'my-column1' == $column )
{
// Get custom post meta data 1
$my_var_one = get_post_meta( $post_id, 'name_project_', true );
if(!empty($my_var_one))
echo 'ПРОЕКТ';
// Testing (to be removed) - Empty value case
if( empty($my_var_one) && empty($my_var_two) )
echo 'Инвойс';
}
}
ВСЕ РАБОТАЕТ ОТЛИЧНО.
Теперь появилась задача, добавить такую же колонку в Личный кабинет на странице заказов.
Мозгов не хватает (
Нашел код, как добавить в эту таблицу перечень товаров по Заказу, а вот как вместо Товаров показывать значение Инвойс/ПРОЕКТ (по принципу кода выше) знаний не хватает (
Прошу помощи!
Вот код который добавляет колонку и содержимое по товарам:
HTML:
// Добавить новую колонку по Типу Заказа на странице заказов в личном кабинете
//1. Добавляем колонку после колонки с датой
add_filter( 'woocommerce_account_orders_columns', 'my_column_product');
function my_column_product($columns) {
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key == 'order-date' ) $new_columns['order-products'] = "Тип Заказа";
}
return $new_columns;
}
// 2. Заполняем колонку "Тип Заказа"
add_action( 'woocommerce_my_account_my_orders_column_order-products', 'get_column_order_product');
function get_column_order_product($order) {
foreach( $order->get_items() as $item_id => $item ) {
$product = $order->get_product_from_item( $item );
$product_permalink = $product->get_permalink( $item );
echo sprintf( '<a href="%s">%s</a>', $product_permalink, $item['name'] );
echo ' <strong class="product-quantity">' . sprintf( '× %s', $item['qty'] ) . '</strong>';
}
}
В личном кабинете сейчас это выглядит так:

А надо - вместо перечня товаров чтобы ВЫВОДИЛОСЬ Значение Инвойс или ПРОЕКТ как в Админке.