我想检查客户是否被允许使用其中一种激活的付款方式。验证Magento 2中的付款方式
例如:
如果客户启用了“货到付款”,他应该看到的方法,但我不能在代码中查找类似的事情。
在Magento 1有:
public function isAvailable()
是否有任何类似的方式与Magento的2做呢?
我想检查客户是否被允许使用其中一种激活的付款方式。验证Magento 2中的付款方式
例如:
如果客户启用了“货到付款”,他应该看到的方法,但我不能在代码中查找类似的事情。
在Magento 1有:
public function isAvailable()
是否有任何类似的方式与Magento的2做呢?
有2种方法,你可以采取:
如果你看一看在isAvailable
方法\Magento\Payment\Model\Method\AbstractMethod
(父类的\Magento\OfflinePayments\Model\Cashondelivery
),你会发现它分派payment_method_is_active
事件,可用于执行一些额外的逻辑(诸如确定如果客户已使具体的方法或不):
$this->eventManager->dispatch( 'payment_method_is_active', [ 'result' => $checkResult, 'method_instance' => $this, 'quote' => $quote ] );
由于isAvailable
是一种公共方法,因此您可以为该方法添加一个插件。无论您使用之前,之后或周围取决于您的具体需求。然而,学习如何做到这一点的好地方是Magento DevDocs网站:http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html