Отобразить комментарии к заказу Magento в print.phtml (заказ на печать для клиентов) - PullRequest
1 голос
/ 13 февраля 2012

Просто интересно, есть ли у кого-нибудь идеи, как показать комментарии к заказу на печать для клиентов - http://www.mydomain.com/sales/order/print/order_id/48/

Я вижу файл, который мне нужно отредактировать, это «/ public_html / app / design / frontend /default / mytemplate / template / sales / order / print.phtml ”, но я не уверен, какой код мне нужно добавить для отображения комментариев.

К вашему сведению: мы используем это расширение, чтобы окно комментариев к заказу отображалось настраница заказа - http://www.magentocommerce.com/magento-connect/catalog/product/view/id/10860/. Комментарии к заказу успешно отображаются в электронном письме с заказом, но нам нужно, чтобы они также отображались на страницах заказов клиентов.

Заранее спасибо за помощь:)

Ответы [ 4 ]

6 голосов
/ 02 мая 2013

+ 1 для code_break, который хорошо ответил на это.Вот моя собственная версия для полноты:

$orders = Mage::getModel('sales/order')
    ->getCollection()
    ->addFieldToFilter('status',array('pending','processing'));

foreach ($orders as $order) {
    $orderComments = $order->getAllStatusHistory();

    foreach ($orderComments as $comment) {
        $body = $comment->getData('comment');
        if (strpos(strtolower($body),'some text') !== false) {
            // do something cool here...
        }
    }
}

Используйте по своему желанию.Надеюсь, это поможет.

4 голосов
/ 10 апреля 2013

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

При этом нам может потребоваться перечислить все комментарии, помеченные как видимые на передней панели, и первый комментарий, введенный при создании заказа. Я заменил ваше форматирование тегом <p>.

<?php $_history = $order->getAllStatusHistory(); ?>
<?php $_buffer = array(); ?>
<?php $_i=1; ?>

<?php foreach ($_history as $_historyItem): ?>
    <?php // Ignore the visibility for the first comment ?>
    <?php if ( $_historyItem->getData('is_visible_on_front') == 1 || $_i == count($_history) ): ?>
        <?php $_buffer[] = $_historyItem->getData('comment'); ?>
    <?php endif; ?>
    <?php $_i++; ?>
<?php endforeach; ?>

<?php if ( count($_buffer) > 0 ): ?>
    <p><?php echo implode( $_buffer, '</p><p>' ); ?></p>
<?php endif ?>
2 голосов
/ 27 августа 2013

Поскольку вы специально запрашиваете комментарий от MageMaven OrderComment, это будет самое простое решение:

<p><?php echo nl2br($_order->getCustomerNote()); ?></p>
0 голосов
/ 13 февраля 2012

Эй, попробуйте добавить этот код, я не проверял его, но у меня есть ощущение, что он будет работать для вас:

<?php $_history = $_order->getVisibleStatusHistory() ?>
                                                    <?php if (count($_history)): ?>
                                                    <div class="order-additional order-comments">
                                                        <dl class="order-about">
                                                            <?php foreach ($_history as $_historyItem): ?>
                                                                <dd>
                                                                    <span class='lowcase'><?php echo $_historyItem->getComment()?></span>
                                                                </dd>
                                                            <?php endforeach; ?>
                                                        </dl>
                                                    </div>
                                                    <?php endif?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...