我正在运行Magento 1.6.2并希望删除PayPal订单状态。他们没有被使用,他们污染我的订单状态列表。禁用PayPal不起作用。Magento 1.6.2删除PayPal订单状态
Magento 1.6.2确实能够管理管理中的订单状态,但Paypal状态是不可移动的。
有什么办法可以将它们从数据库中删除,或者只是将它们隐藏起来?
我正在运行Magento 1.6.2并希望删除PayPal订单状态。他们没有被使用,他们污染我的订单状态列表。禁用PayPal不起作用。Magento 1.6.2删除PayPal订单状态
Magento 1.6.2确实能够管理管理中的订单状态,但Paypal状态是不可移动的。
有什么办法可以将它们从数据库中删除,或者只是将它们隐藏起来?
我可以告诉你,你不想删除它们,Mage_Paypal_Model_Info
使用它们来检查付款是在审查,欺诈,处理或完成。我会建议你只处理它们。尽管你可能没有真正使用它们,但是它们在幕后使用,它们作为const存在。他们做得比他们真正的伤害更好。
/**
* Check whether the payment is in review state
*
* @param Mage_Payment_Model_Info $payment
* @return bool
*/
public static function isPaymentReviewRequired(Mage_Payment_Model_Info $payment)
{
$paymentStatus = $payment->getAdditionalInformation(self::PAYMENT_STATUS_GLOBAL);
if (self::PAYMENTSTATUS_PENDING === $paymentStatus) {
$pendingReason = $payment->getAdditionalInformation(self::PENDING_REASON_GLOBAL);
return !in_array($pendingReason, array('authorization', 'order'));
}
return false;
}
/**
* Check whether fraud order review detected and can be reviewed
*
* @param Mage_Payment_Model_Info $payment
* @return bool
*/
public static function isFraudReviewAllowed(Mage_Payment_Model_Info $payment)
{
return self::isPaymentReviewRequired($payment)
&& 1 == $payment->getAdditionalInformation(self::IS_FRAUD_GLOBAL);
}
/**
* Check whether the payment is completed
*
* @param Mage_Payment_Model_Info $payment
* @return bool
*/
public static function isPaymentCompleted(Mage_Payment_Model_Info $payment)
{
$paymentStatus = $payment->getAdditionalInformation(self::PAYMENT_STATUS_GLOBAL);
return self::PAYMENTSTATUS_COMPLETED === $paymentStatus;
}
/**
* Check whether the payment was processed successfully
*
* @param Mage_Payment_Model_Info $payment
* @return bool
*/
public static function isPaymentSuccessful(Mage_Payment_Model_Info $payment)
{
$paymentStatus = $payment->getAdditionalInformation(self::PAYMENT_STATUS_GLOBAL);
if (in_array($paymentStatus, array(
self::PAYMENTSTATUS_COMPLETED, self::PAYMENTSTATUS_INPROGRESS, self::PAYMENTSTATUS_REFUNDED,
self::PAYMENTSTATUS_REFUNDEDPART, self::PAYMENTSTATUS_UNREVERSED, self::PAYMENTSTATUS_PROCESSED,
))) {
return true;
}
$pendingReason = $payment->getAdditionalInformation(self::PENDING_REASON_GLOBAL);
return self::PAYMENTSTATUS_PENDING === $paymentStatus
&& in_array($pendingReason, array('authorization', 'order'));
}
/**
* Check whether the payment was processed unsuccessfully or failed
*
* @param Mage_Payment_Model_Info $payment
* @return bool
*/
public static function isPaymentFailed(Mage_Payment_Model_Info $payment)
{
$paymentStatus = $payment->getAdditionalInformation(self::PAYMENT_STATUS_GLOBAL);
return in_array($paymentStatus, array(
self::PAYMENTSTATUS_DENIED, self::PAYMENTSTATUS_EXPIRED, self::PAYMENTSTATUS_FAILED,
self::PAYMENTSTATUS_REVERSED, self::PAYMENTSTATUS_VOIDED,
));
}
如果您在app/code/core/Mage/Paypal/etc/config.xml
看可以发现这一点,
<sales>
<order>
<statuses>
<pending_paypal translate="label">
<label>Pending PayPal</label>
</pending_paypal>
</statuses>
</order>
</sales>
但看应用程序/代码/核心/法师/销售/等/ config.xml中
<!-- /**
* @depraceted after 1.4.2, statuses are saved into sales_order_status table
*/
-->
你应该查看数据库中的sales_order_status表,如果您使用的是1.4.2之后的版本,则它们存在于config.xml中的唯一原因是为了确保向后兼容。
这是添加待处理PayPal状态的部分,您可以评论/删除并删除它,但我建议您在删除它之前找出此状态的使用情况,以便您没有任何看不见的冲突,您可以在app/code和lib /中使用grep -r 'sales_order_status' *
来查找可能使用此表的任何内容,以及何时可能使用Pending PayPal
。