Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Добавить заказ из админки - Произвольные поля

Тема в разделе "Вопросы, советы и доработки.", создана пользователем Ria, 28 сен 2016.

  1. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Здравствуйте, при добавлении заказа из админки, есть блок "Произвольные поля"
    [​IMG]
    Подскажите пожалуйста, а где они должны выводиться? Что-то я не могу с ними разобраться, что это именно такое?
     
    Последнее редактирование: 28 сен 2016
  2. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Это механизм произвольных полей для постов Wordpress (товары, заказы - это разные типы постов).
    Выводить можно в любых шаблонах с помощью функции get_post_meta().
    Примеры приводились на форуме, н-р, в теме . Там речь про товары, но суть одна и та же, т.е. вместо ID товара (ID поста) можно подставить ID заказа (ID поста) и получить произвольное поля заказа.
     
    • Нравится Нравится x 2
  3. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Я просто вот что не могу понять:
    смотрим файл order-details.php:
    Код:
    <?php
                foreach( $order->get_items() as $item_id => $item ) {
                    $product = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
    
                    wc_get_template( 'order/order-details-item.php', array(
                        'order'                 => $order,
                        'item_id'             => $item_id,
                        'item'                 => $item,
                        'show_purchase_note' => $show_purchase_note,
                        'purchase_note'         => $product ? get_post_meta( $product->id, '_purchase_note', true ) : '', //здесЯ
                        'product'             => $product,
                    ) );
                }
            ?>
            <?php do_action( 'woocommerce_order_items_table', $order ); ?>
    Далее смотрим order-details-item.php
    Код:
    <?php
                $is_visible        = $product && $product->is_visible();
                $product_permalink = apply_filters( 'woocommerce_order_item_permalink', $is_visible ? $product->get_permalink( $item ) : '', $item, $order );
    
                echo apply_filters( 'woocommerce_order_item_name', $product_permalink ? sprintf( '<a href="%s">%s</a>', $product_permalink, $item['name'] ) : $item['name'], $item, $is_visible );
                echo apply_filters( 'woocommerce_order_item_quantity_html', ' <strong class="product-quantity">' . sprintf( '&times; %s', $item['qty'] ) . '</strong>', $item );
    
                do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order );
    
                $order->display_item_meta( $item ); // И здесЯ
                $order->display_item_downloads( $item );
    
                do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order );
            ?>
    Я так понимаю что все правильно должно быть, но я не вижу этих полей в карточке заказа и т.п. Может я что не так понял и отдельно нужно их добавить еще через get_post_meta(). ?
     
  4. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Дополнительные поля нужно выводить самому в нужном месте шаблона через get_post_meta().
     
    • Нравится Нравится x 1
  5. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Ага, я уже так и понял, но не разберусь, вот к примеру хочу вставить поле в orders.php
    В ячейку таблици добавлять как уже только не пробовал:
    Код:
    <?php echo get_post_meta($order->id, 'key', true); ?>
    и т.п. Может я вообще не в ту сторону смотрю? Как его правильно указать что вывести доп поля нужно именно с этого ордера?
     
  6. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Все разобрался)) Туплю, нужно же было 'key' указать)
     
    • Победитель Победитель x 1