Cum excluzi un procesator de plăți la checkout în Woo Commerce?

Cum excluzi un procesator de plăți la checkout în Woo Commerce?

Am o șmecherie la un client: renunță la un procesator de plăți în favoarea altuia. Șmecheria însă aici vine: are subscription activat și nu putem dezactiva procesatorul vechi (braintree) pentru că … vrem să păstrăm abonamentele curente (până găsim o modalitate eficientă de a migra).

În fine, braintree rămâne activ, dar îl vedem la checkout. Cum îl scoatem de acolo?

add_filter('woocommerce_payment_gateways', function ($gateways) {
// vrem să se întâmple asta doar la checkout
    if (!is_checkout()) { 

        return $gateways;
    }

    foreach ($gateways as $key => $gateway) {
        if (is_string($gateway) && class_exists($gateway)) {
// verificarea asta se face pentru că există două modalități
// de a înregistra un gateway: 
// 1. ca instanță sau 
// 2. ca FQN (numele clasei)
// Acoperim ambele variante așa.
            $gateway = new $gateway();
        }

        if (false !== stristr($gateway->id, 'braintree')) {
            unset($gateways[$key]);
        }
    }

    return array_values(array_filter($gateways));
}, PHP_INT_MAX);

Cam atât.

2 Comentarii

Adaugă un comentariurăspuns pentru

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter