2012-02-13 38 views
1

只是想知道如果任何人有任何想法如何顯示客戶打印順序評論 - http://www.mydomain.com/sales/order/print/order_id/48/顯示Magento的訂單註釋(客戶prinable順序)

我可以看到,我需要修改的是「文件/public_html/app/design/frontend/default/mytemplate/template/sales/order/print.phtml「,但我不確定需要添加哪些代碼才能顯示評論。

僅供參考:我們使用此擴展功能使訂單評論框顯示在訂單頁面上 - http://www.magentocommerce.com/magento-connect/catalog/product/view/id/10860/。訂單註釋已成功顯示在訂單電子郵件上,但我們也需要將它們顯示在客戶訂單頁面上。

感謝您的幫助提前:)

+0

還要補充一點,我們使用Magento的1.6社區;) – MWD 2012-02-13 16:00:10

回答

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

我想你的代碼片段可惜當時不工作:( – MWD 2012-02-14 13:10:38

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

對於code_break +1,他很好地回答了這個問題。這是我自己的版本完整性:

$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... 
     } 
    } 
} 

如你所願使用。希望能幫助到你。

2

正如你所要求特別是從MageMaven OrderComment奧德評論這將是最簡單的解決方案:

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

謝謝,這正是我正在尋找;) – 2014-09-19 12:34:50