Toutes les méthodes de paiement ne viennent pas dans la règle de prix du panier

Réponses:

10

fournisseur de fichiers ouverts / magento / module-payment / Helper / data.php

au numéro de ligne 268 mettre cette ligne

$data['active'] = 1;

si vous ne voulez pas modifier le fichier principal, vous devez remplacer ce fichier, suivez le code ci-dessous

Allez dans Vendor / Extension / etc / di.xml et écrivez le code ci-dessous dans di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Payment\Helper\Data" type="Vendor\Extension\Helper\Data"/>
</config>

L'étape suivante consiste à créer un fichier Data.php dans Vendor \ Extension \ Helper \ Data.php

<?php
namespace Vendor\Extension\Helper;

use Magento\Payment\Helper\Data as MainHelper;

class Data extends MainHelper
{
    public function getPaymentMethodList($sorted = true, $asLabelValue = false, $withGroups = false, $store = null)
    {
        $methods = [];
        $groups = [];
        $groupRelations = [];


        foreach ($this->getPaymentMethods() as $code => $data) {

            $data['active'] = 1;

            if (!empty($data['active'])) {
                $storedTitle = $this->getMethodInstance($code)->getConfigData('title', $store);
                if (isset($storedTitle)) {
                    $methods[$code] = $storedTitle;
                } elseif (isset($data['title'])) {
                    $methods[$code] = $data['title'];
                }
            }
            if ($asLabelValue && $withGroups && isset($data['group'])) {
                $groupRelations[$code] = $data['group'];
            }
        }
        if ($asLabelValue && $withGroups) {
            $groups = $this->_paymentConfig->getGroups();
            foreach ($groups as $code => $title) {
                $methods[$code] = $title;
            }
        }
        if ($sorted) {
            asort($methods);
        }
        if ($asLabelValue) {
            $labelValues = [];
            foreach ($methods as $code => $title) {
                $labelValues[$code] = [];
            }
            foreach ($methods as $code => $title) {
                if (isset($groups[$code])) {
                    $labelValues[$code]['label'] = $title;
                    if (!isset($labelValues[$code]['value'])) {
                        $labelValues[$code]['value'] = null;
                    }
                } elseif (isset($groupRelations[$code])) {
                    unset($labelValues[$code]);
                    $labelValues[$groupRelations[$code]]['value'][$code] = ['value' => $code, 'label' => $title];
                } else {
                    $labelValues[$code] = ['value' => $code, 'label' => $title];
                }
            }

            return $labelValues;
        }


        return $methods;
    }
}
Jigs Parmar
la source
Ne fonctionne pas et je ne peux pas modifier les fichiers de base.
Magecode
Dans Magento 2.3.1, nous pouvons créer une règle en utilisant le mode de paiement, mais pourquoi tous les modes de paiement ne viennent-ils pas dans la sélection des conditions?
Magecode
son travail pour moi pouvez-vous partager la capture d'écran de ce que vous placez exactement, si vous ne voulez pas éditer le fichier core que vous remplacez ce fichier et changez
Jigs Parmar
meetanshi.d.pr/ynAITh
Jigs Parmar
5

Vous pouvez utiliser le lien ci-dessous

https://magento.stackexchange.com/a/128606/70565

J'espère que c'est utile pour vous.

Sweety Masmiya
la source
Dans Magento 2.3.1, nous pouvons créer une règle en utilisant le mode de paiement, mais pourquoi tous les modes de paiement ne viennent-ils pas dans la sélection des conditions?
Magecode
J'ai un chèque dans la version magento 231, dans la mesure où la condition du mode de paiement n'est pas disponible.
Sweety Masmiya
Utilisez-vous une extension ou une fonctionnalité par défaut de Magento?
Sweety Masmiya
Fonctionnalité Magento par défaut
Magecode
J'ai vérifié dans la version par défaut de magento 231, dans la mesure où la condition du mode de paiement n'est pas disponible.
Sweety Masmiya