Trong Magento 2
Hãy tạo một mô-đun. Bước 1) Tạo các thư mục như thế này.
app/code/Pits/PaymentMethod/etc/
app/code/Pits/PaymentMethod/Observer/
Bước 2) Khai báo mô-đun của bạn
app/code/Pits/PaymentMethod/etc/module.xml.
Dán đoạn mã sau vào tập tin trên.
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Pits_PaymentMethod" setup_version="2.0.0" /></config>
Bước 4) Tạo tập tin đăng ký.
ứng dụng / mã / hố / PaymentMethod / đăng ký.php
Dán mã dưới đây.
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Pits_PaymentMethod',
__DIR__
);
Bước 5) Chạy lệnh dưới đây trong dòng lệnh
Mô-đun php bin / magento: bật Pits_PaymentMethod
php bin/magento setup:upgrade
Bước 6) Cho phép tạo tệp event.xml
ứng dụng / mã / Pits / PaymentMethod / etc / event.xml
Dán đoạn mã dưới đây vào nó.
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="payment_method_is_active">
<observer name="Pits_PaymentMethod_DisabledPgByCustomergroup" instance="Pits\PaymentMethod\Observer\DisabledPgByCustomergroup" />
</event>
</config>
Bước 7) Cho phép tạo tập tin quan sát viên
app/code/Pits/PaymentMethod/Observer/DisabledPgByCustomergroup.php.php
<?php
namespace Pits\PaymentMethod\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\App\ObjectManager;
class DisabledPgByCustomergroup implements ObserverInterface
{
public function __construct(\Psr\Log\LoggerInterface $logger)
{
$this->_logger = $logger;
}
/**
*
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$result = $observer->getEvent()->getResult();
$method_instance = $observer->getEvent()->getMethodInstance();
$quote = $observer->getEvent()->getQuote();
$this->_logger->info($method_instance->getCode());
/* If Cusomer group is match then work */
if (null !== $quote && $quote->getCustomerGroupId() != 4) {
/* Disable All payment gateway exclude Your payment Gateway*/
if ($method_instance->getCode() == 'purchaseorder') {
$result->setData('is_available', false);
}
}
/*else{
if($method_instance->getCode() =='purchaseorder'){
$result->setData('is_available', true);
}
}*/
}
}
Bước 8) Chạy này trong dòng lệnh
php bin/magento setup:upgrade