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