0

我需要单击一个按钮并更改订单状态。到目前为止,我已经这样做了:

<?php $_order = $this->getOrder() ?>
<div class="buttons-set">
<p class="btn"><a href="<?php $this->saveState($_order);?>">Button</a></p>
</div>

在我的 php 中,我有:

public function saveState($order)
{
   return $order->setState(Mage_Sales_Model_Order::STATE_NEW, true);
}

问题是每次phtml加载它都会执行saveState函数,每次都改变订单状态,不知道为什么。我需要在单击按钮的地方执行 saveState 函数。请帮我解决这个问题,我真的被卡住了!谢谢

4

1 回答 1

0

<a href="<?php $this->saveState($_order);?>">Button</a>不链接到saveState()方法。它只是立即执行该saveState()方法,并链接到 的返回值saveState(),在这种情况下,我猜这只是一个sales/order对象的字符串表示形式。

您需要做的是创建一个控制器,您可以通过类似的方式链接到其操作

<a href="<?php
    echo Mage::getUrl('YourModule/YourController/YourAction')
?>">Button</a>

另请注意,在简单链接中包含“操作”通常被认为是不好的做法:它不是RESTful

于 2012-09-20T20:34:02.253 回答