如何在magento 2中覆盖受保护的变量

时间:2018-08-07 12:10:48

标签: variables magento magento2 protected

我想覆盖类Magento\Paypal\Model\Config中的受保护变量

变量是

protected $_supportedCurrencyCodes = [
    'AUD',
    'CAD',
    'CZK',
    'DKK',
    'EUR',
    'HKD',
    'HUF',
    'ILS',
    'JPY',
    'MXN',
    'NOK',
    'NZD',
    'PLN',
    'GBP',
    'RUB',
    'SGD',
    'SEK',
    'CHF',
    'TWD',
    'THB',
    'USD',
    'INR',
];

根据我的经验,我可以说在这种情况下我们不能使用插件。因此,我使用了<preference>标签,但没有帮助。

下面是di.xml中的代码

<preference for="Magento\Paypal\Model\Config" type="Shawkatsoft\Customcheckoutapi\Model\Config" />

这是我的模型文件

    <?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile

namespace Shawkatsoft\Customcheckoutapi\Model;

/**
 * Config model that is aware of all \Magento\Paypal payment methods
 * Works with PayPal-specific system configuration

 * @SuppressWarnings(PHPMD.ExcessivePublicCount)
 * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
 */
class Config extends \Magento\Paypal\Model\Config
{


    protected $_supportedCurrencyCodes = [
        'AUD',
        'CAD',
        'CZK',
        'DKK',
        'EUR',
        'HKD',
        'HUF',
        'ILS',
        'JPY',
        'MXN',
        'NOK',
        'NZD',
        'PLN',
        'GBP',
        'RUB',
        'SGD',
        'SEK',
        'CHF',
        'TWD',
        'THB',
        'USD',
        'INR',
    ];


}

我也在di.xml

中尝试了以下代码
<type name="Magento\Paypal\Model\Config">
    <arguments>
        <argument name="supportedCurrencyCodes" xsi:type="array">
                <item name="INR" xsi:type="string">INR</item>
        </argument>
    </arguments>
    </type>

但这也没有用!!

0 个答案:

没有答案