Magento “设定付款方式”;“货到付款”;仅限特定状态

Magento “设定付款方式”;“货到付款”;仅限特定状态,magento,payment,magento-1.8,Magento,Payment,Magento 1.8,我只想为站点所有者的状态设置“货到付款” 我知道如何设置“指定国家” 我正在使用Magento 1.8 我如何才能做到这一点?LuFFy,您可以使用magento event observer执行此操作: 创建一个扩展,然后执行以下步骤: 在以下位置创建config.xml:app/code/community/Devamitbera/Statewisecod/etc/config.xml <?xml version="1.0" encoding="utf-8"?> <!--

我只想为站点所有者的状态设置“货到付款”

我知道如何设置“指定国家”

我正在使用Magento 1.8


我如何才能做到这一点?

LuFFy,您可以使用magento event observer执行此操作:

创建一个扩展,然后执行以下步骤:

在以下位置创建config.xml:app/code/community/Devamitbera/Statewisecod/etc/config.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
@Author Amit Bera
@Email dev.amitbera@gmail.com
@ Website: www.amitbera.com
*/-->
<config>
    <modules>
        <Devamitbera_Statewisecod>
            <version>1.0.0</version>
        </Devamitbera_Statewisecod>
    </modules>
    <global>
        <models>
            <statewisecod>
                <class>Devamitbera_Statewisecod_Model</class>
            </statewisecod>
        </models>
    </global>
    <frontend> <!--  run observer  event for frontend -->
        <events>
            <payment_method_is_active>
                <observers>
                    <enable_cod_for_some_state>
                        <class>statewisecod/observer</class>
                        <method>EnableCod</method>
                    </enable_cod_for_some_state>
                </observers>
            </payment_method_is_active>
        </events>
    </frontend>
</config>
app/etc/modules

<?xml version="1.0" encoding="utf-8"?>
<!--
@Author Amit Bera
@Email dev.amitbera@gmail.com
@ Website: www.amitbera.com
-->
<config>
    <modules>
    <Devamitbera_Statewisecod>
        <codePool>community</codePool>
        <active>true</active>
        <depends><Mage_Payment/></depends>
    </Devamitbera_Statewisecod>
    </modules>
</config>
如果状态/区域不是下拉列表,则下面的逻辑是工作

elseif(is_null($ShippingAddress->getRegionId()) && !is_null($ShippingAddress->getRegion())):
$textListRegionName=array('West bengal','Delhi');
    if(in_array($ShippingAddress->getRegion(),$textListRegionName)){
      $result->isAvailable=true;
    }else{
      $result->isAvailable=false;
    }

“if($method->getCode()='code')”中的“code”是什么?对不起,每次付款都有付款代码,请转到app\code\core\Mage\payment\Model\method查看所有付款方法列表。例如:Open Cashondelivery.php查看代码保护$\u code='Cashondelivery';好的,兄弟,谢谢,我试着。。!!如果有任何问题,请告诉我
if(in_array($ShippingAddress->getRegionId(),$CodEnableRegionIds)):
                      $result->isAvailable=true;
elseif(is_null($ShippingAddress->getRegionId()) && !is_null($ShippingAddress->getRegion())):
$textListRegionName=array('West bengal','Delhi');
    if(in_array($ShippingAddress->getRegion(),$textListRegionName)){
      $result->isAvailable=true;
    }else{
      $result->isAvailable=false;
    }