顧客のアカウント -> 注文 -> ビュー (注文の詳細) で現在の注文にコメントを追加するコード (簡略化) を以下に示します。
コードは正常に動作しています。唯一のことは、フォームによって送信されたコメントを処理して を呼び出した後getVisibleStatusHistory()
、顧客によって最近追加されたコメントを除いて、すべてのコメントが日付/時刻 (降順) で正しく並べ替えられることです。そのコメントは、結果の最後のコメントとして追加されます。これは、結果の降順の並べ替えには対応していませんgetVisibleStatusHistory()
。ページをリロードすると、正しくソートされます。
すべてのコードは、カスタマイズされた view.phtml にあります
コメントを送信するフォームがあります:
<form action="" method="post">
<textarea name="ordercomment" maxlength="1000"></textarea>
<input type="submit" value="Send" />
</form>
これは、view.phtml によっても処理されます。
$ordcomment = $_POST['ordercomment'];
$_order->addStatusHistoryComment($ordcomment)->setIsVisibleOnFront(1);
$_order->save();
そのスクリプトの後に、表示されているすべてのコメントを出力します。
<?php $_history = $this->getOrder()->getVisibleStatusHistory() ?>
<?php if (count($_history)): ?>
<div class="order-additional order-comments">
<h2 class="sub-title"><?php echo $this->__('About Your Order') ?></h2>
<dl class="order-about">
<?php foreach ($_history as $_historyItem): ?>
<dt><?php echo $this->formatDate($_historyItem->getCreatedAtStoreDate(), 'medium', true) ?></dt>
<dd><?php echo $this->escapeHtml($_historyItem->getComment()) ?></dd>
<?php endforeach; ?>
</dl>
</div>
<?php endif; ?>
最後に追加されたコメントが他のコメントの中で適切にソートされない理由を誰かが知っていますか?