Come disabilitare il metodo di pagamento per una categoria specifica

Pubblicato: 2020-09-01

WooCommerce Disabilita il metodo di pagamento per una categoria specifica Gestisci un negozio WooCommerce e vuoi sapere come disabilitare il metodo di pagamento per una categoria specifica o più metodi di pagamento in base alle categorie di prodotti presenti nel carrello? Se stai cercando una soluzione che sia incentrata sulle categorie di prodotto, ma con alcune piccole modifiche potrebbe essere modificata anche per le classi di spedizione ad esempio sui prodotti stessi, questo articolo ti guiderà su come raggiungerlo.

Disattiva il metodo di pagamento per una categoria specifica

Un buon esempio in cui questo approccio è utile è quando i proprietari dei negozi WooCommerce hanno una categoria contenente solo prodotti di prezzo elevato e desiderano che i clienti paghino con bonifici bancari anziché utilizzare una carta di credito. Questo è solo un esempio delle molte situazioni in cui potrebbe essere necessario disabilitare un metodo di pagamento per una categoria.

Se non sei un esperto di tecnologia, potresti optare per un plug-in premium per fare il lavoro per te. Un esempio è il WooCommerce Conditional Payment Plugin, che ti aiuta a creare condizioni in cui i tuoi metodi di pagamento saranno abilitati o disabilitati. Se non sei così bravo a usare il codice, questa sarà la migliore soluzione premium che dovresti considerare.

Inoltre, questo plug-in consente di creare condizioni illimitate e di utilizzare, ad esempio, i totali del carrello, il paese di fatturazione, il ruolo dell'utente e molto altro per definire quale gateway di pagamento mostrare e quale no.

Plugin di pagamento condizionale WooCommerce

Tuttavia, per questo breve tutorial, ti mostrerò come disabilitare un metodo di pagamento per una categoria specifica utilizzando frammenti di codice PHP.

Passaggi per disabilitare il metodo di pagamento per una categoria specifica utilizzando lo snippet di codice PHP

Ecco i semplici passaggi che devi seguire:

  1. Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
  2. Dal menu Dashboard, fai clic su Menu Aspetto > Menu Editor temi . Quando viene aperta la pagina Editor temi , cerca il file delle funzioni del tema in cui aggiungeremo la funzione che disabiliterà il metodo di pagamento per una categoria specifica.
  3. Aggiungi il seguente codice al file php :
 /**
 * @snippet Disabilita il metodo di pagamento per una categoria specifica
*/


add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category');


funzione njengah_unset_gateway_by_category ($ gateway_disponibili) {

    if ( is_admin() ) restituisce $ gateway_disponibili;

    if ( ! is_checkout() ) restituisce $ gateway_disponibili;

    $non impostato = falso;

    $ ID_categoria = array( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() as $key => $values ​​) {

        $termini = get_the_terms($valori['id_prodotto'], 'gatto_prodotto');   

        foreach ( $ termini come $ termine ) {       

            if (in_array($term->term_id, $category_ids)) {

                $non impostato = vero;

                rottura;

            }

        }

    }

    if ($unset == true) unset($available_gateways['assegno']);

    restituisci $ gateway_disponibili;

}
  1. Questi saranno i risultati disabilitare un metodo di pagamento per una categoria specifica

Ricorda di aggiungere l'ID di categoria corretto che si trova nel tuo negozio WooCommerce affinché questo codice funzioni.

Se non ti piace usare l'ID categoria, puoi anche utilizzare lo slug della categoria nel tuo negozio WooCommerce. Puoi scegliere di usarli, poiché sono più facili da capire per riferimento futuro.

Passaggi per disabilitare il metodo di pagamento per una categoria specifica utilizzando gli slug di categoria

  1. Accedi al tuo sito WordPress e accedi alla Dashboard come utente amministratore.
  2. Dal menu Dashboard, fai clic su Menu Aspetto > Menu Editor temi . Quando viene aperta la pagina Editor temi , cerca il file delle funzioni del tema in cui aggiungeremo la funzione che disabiliterà il metodo di pagamento per una categoria specifica.
  3. Aggiungi il seguente codice al file php :
 /**

 * @snippet Disabilita il gateway di pagamento in base alla categoria.

*/

funzione njengah_disable_payment_gateway_category($gateway) {

// Categorie che disabiliteranno il gateway di pagamento

$category_slugs = array( 'accessori', 'un'altra-categoria');

$category_ids = get_terms( array( 'taxonomy' => 'product_cat', 'slug' => $category_slugs, 'fields' => 'ids' ));


// Controlla ogni articolo del carrello per una determinata categoria

foreach ( WC()->cart->get_cart() as $item ) {

$prodotto = $elemento['dati'];

if ($product && array_intersect($category_ids, $product->get_category_ids() ) ) {

unset($gateway['cod']); // Disabilita il "cod" del gateway di pagamento quando il prodotto ha una delle categorie

rottura;

}

}

restituisci $gateway;

}

add_filter('woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category');
  1. Questo sarà il risultato disabilitare il metodo di pagamento per una categoria specifica

Ricordati di aggiungere la categoria slug corretta e devi definire il gateway di pagamento che vuoi disabilitare. Per il mio esempio, ho usato 'cod' per rappresentare il contrassegno.

È importante notare che anche l'identificatore del gateway di pagamento deve essere modificato in quello che si desidera disabilitare quando la categoria specificata è presente nel carrello.

  • Bonifico bancario (bac)
  • Assegno (assegno)
  • Contrassegno (cod)
  • PayPal (PayPal)

Tuttavia, se non stai utilizzando uno dei gateway di pagamento predefiniti, non preoccuparti, poiché esiste ancora un modo semplice per scoprire l'ID del gateway di pagamento. Puoi farlo andando alla pagina delle impostazioni del gateway di pagamento e troverai l'ID lì.

Ad esempio per l'opzione Contrassegno nella pagina delle impostazioni, questo sarà l'URL: wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

Conclusione

In questo post, hai imparato come disabilitare il metodo di pagamento per una categoria specifica utilizzando due metodi. Puoi definirli utilizzando ID di categoria di prodotto o slug di categoria per un facile riferimento futuro. Ricorda di utilizzare l'ID categoria o lo slug che si trova nel tuo negozio WooCommerce per aggiungere questa funzionalità.

Articoli simili