本文整理汇总了PHP中Magento\Framework\Event\Observer::getOldStatus方法的典型用法代码示例。如果您正苦于以下问题:PHP Observer::getOldStatus方法的具体用法?PHP Observer::getOldStatus怎么用?PHP Observer::getOldStatus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\Event\Observer
的用法示例。
在下文中一共展示了Observer::getOldStatus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Observer handler
* @param \Magento\Framework\Event\Observer $observer
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$order = $observer->getOrder();
$riskifiedStatus = (string) $observer->getStatus();
$riskifiedOldStatus = (string) $observer->getOldStatus();
$description = (string) $observer->getDescription();
$newState = $newStatus = null;
$currentState = $order->getState();
$currentStatus = $order->getStatus();
$this->logger->log("Checking if should update order '" . $order->getId() . "' from state: '{$currentState}' and status: '{$currentStatus}'");
$this->logger->log("Data received from riskified: status: " . $riskifiedStatus . ", old_status: " . $riskifiedOldStatus . ", description: " . $description);
$this->logger->log("On Hold Status Code : " . $this->apiOrderConfig->getOnHoldStatusCode() . " and Transport Error Status Code : " . $this->apiOrderConfig->getTransportErrorStatusCode());
switch ($riskifiedStatus) {
case 'approved':
if ($currentState == Order::STATE_HOLDED && ($currentStatus == $this->apiOrderConfig->getOnHoldStatusCode() || $currentStatus == $this->apiOrderConfig->getTransportErrorStatusCode())) {
$newState = $this->apiOrderConfig->getSelectedApprovedState();
$newStatus = $this->apiOrderConfig->getSelectedApprovedStatus();
}
break;
case 'declined':
if ($currentState == Order::STATE_HOLDED && ($currentStatus == $this->apiOrderConfig->getOnHoldStatusCode() || $currentStatus == $this->apiOrderConfig->getTransportErrorStatusCode())) {
$newState = $this->apiOrderConfig->getSelectedDeclinedState();
$newStatus = $this->apiOrderConfig->getSelectedDeclinedStatus();
}
break;
case 'submitted':
if ($currentState == Order::STATE_PROCESSING || $currentState == Order::STATE_HOLDED && $currentStatus == $this->apiOrderConfig->getTransportErrorStatusCode()) {
$newState = Order::STATE_HOLDED;
$newStatus = $this->apiOrderConfig->getOnHoldStatusCode();
}
break;
case 'error':
if ($currentState == Order::STATE_PROCESSING && $this->apiConfig->isAutoInvoiceEnabled()) {
$newState = Order::STATE_HOLDED;
$newStatus = $this->apiOrderConfig->getTransportErrorStatusCode();
}
}
$changed = false;
if ($newState && ($newState != $currentState || $newStatus != $currentStatus) && $this->apiConfig->getConfigStatusControlActive()) {
if ($newState == Order::STATE_CANCELED) {
$this->logger->log("Order '" . $order->getId() . "' should be canceled - calling cancel method");
$order->cancel();
$order->addStatusHistoryComment($description, $newStatus);
} else {
$order->setState($newState, $newStatus, $description);
$order->setStatus($newStatus);
$order->addStatusHistoryComment($description, $newStatus);
$this->logger->log("Updated order '" . $order->getId() . "' to: state: '{$newState}', status: '{$newStatus}', description: '{$description}'");
}
$changed = true;
} elseif ($description && $riskifiedStatus != $riskifiedOldStatus) {
if ($riskifiedStatus != 'approved' || !$this->apiConfig->isAutoInvoiceEnabled()) {
$this->logger->log("Updated order " . $order->getId() . " history comment to: " . $description);
$order->addStatusHistoryComment($description);
$changed = true;
}
} else {
$this->logger->log("No update to state, status, comments is required for " . $order->getId());
}
if ($changed) {
try {
$order->save();
} catch (\Exception $e) {
$this->logger->log("Error saving order: " . $e->getMessage());
return;
}
}
}