0

Magento 1.6.2を実行していて、Paypalの注文ステータスを削除したい。それらはまったく使用されておらず、私の注文ステータスリストを汚染しています。Paypalを無効にしても機能しません。

Magento 1.6.2には、管理者の注文ステータスを管理する優れた機能がありますが、Paypalステータスは削除できません。

それらをデータベースから完全に削除する方法、または単にそれらを何らかの方法で非表示にする方法はありますか?

4

1 に答える 1

2

私はあなたがそれらを削除したくないとあなたに言うことができます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>

しかし、app / code / core / Mage / Sales / etc/config.xmlを見てください

        <!-- /**
              * @depraceted after 1.4.2, statuses are saved into sales_order_status table
              */
        -->

1.4.2以降のバージョンを使用している場合は、データベースのsales_order_statusテーブルを確認する必要があります。これは、下位互換性を確保するためにconfig.xmlに存在する唯一の理由です。

これは保留中のPayPalステータスを追加するセクションです。コメント/削除して削除することができますが、目に見えない競合が発生しないように、削除する前にこのステータスが使用されている場所を確認することをお勧めします。grep -r 'sales_order_status' *app /codeとlib/で使用して、このテーブルを使用する可能性のあるものと、を使用する可能性のあるものを見つけることができますPending PayPal

于 2012-04-16T18:41:58.197 に答える