在print.phtml中显示Magento订单注释(客户可打印订单)

时间:2012-02-13 15:56:30

标签: magento

只是想知道是否有人知道如何在客户可打印订单上显示评论 - 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 个答案:

答案 0 :(得分:6)

+1 for 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...
        }
    }
}

根据需要使用。希望它有所帮助。

答案 1 :(得分:4)

最后一篇文章使用了订单对象的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 :(得分:2)

正如您特别要求MageMaven OrderComment发表的评论,这将是最简单的解决方案:

<p><?php echo nl2br($_order->getCustomerNote()); ?></p>

答案 3 :(得分:0)

嘿尝试添加此代码我还没有测试过,但我觉得它会对你有用:

<?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?>