2016-08-02 65 views
0

我想检查客户是否被允许使用其中一种激活的付款方式。验证Magento 2中的付款方式

例如:

如果客户启用了“货到付款”,他应该看到的方法,但我不能在代码中查找类似的事情。

在Magento 1有:

public function isAvailable() 

是否有任何类似的方式与Magento的2做呢?

回答

0

有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