我在下面有一个代码(简化),可以在客户帐户 -> 订单 -> 视图(订单详细信息)中为当前订单添加评论。
代码工作正常。唯一的问题是,在处理表单和调用发送的评论后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; ?>
有谁知道是什么原因,为什么最后添加的评论没有在其他评论中正确排序?