So deaktivieren Sie die Zahlungsmethode für eine bestimmte Kategorie

Veröffentlicht: 2020-09-01

WooCommerce Zahlungsmethode für bestimmte Kategorie deaktivieren Betreiben Sie einen WooCommerce-Shop und möchten wissen, wie Sie die Zahlungsmethode für eine bestimmte Kategorie oder mehrere Zahlungsmethoden basierend auf den im Warenkorb vorhandenen Produktkategorien deaktivieren können? Wenn Sie nach einer Lösung suchen, die sich auf Produktkategorien konzentriert, aber mit einigen kleinen Änderungen auch für Versandklassen geändert werden könnte, beispielsweise für Produkte selbst, wird Ihnen dieser Artikel zeigen, wie Sie dies erreichen können.

Deaktivieren Sie die Zahlungsmethode für eine bestimmte Kategorie

Ein gutes Beispiel dafür, wo dieser Ansatz nützlich ist, ist, wenn die WooCommerce-Ladenbesitzer eine Kategorie haben, die nur hochpreisige Produkte enthält, und möchten, dass Kunden mit Banküberweisungen bezahlen, anstatt eine Kreditkarte zu verwenden. Dies ist nur ein Beispiel für die vielen Situationen, in denen Sie möglicherweise eine Zahlungsmethode für eine Kategorie deaktivieren müssen.

Wenn Sie nicht technisch versiert sind, können Sie sich für ein Premium-Plugin entscheiden, das die Arbeit für Sie erledigt. Ein Beispiel ist das WooCommerce Conditional Payment Plugin, mit dem Sie Bedingungen erstellen können, unter denen Ihre Zahlungsmethoden aktiviert oder deaktiviert werden. Wenn Sie nicht so gut mit Code umgehen können, ist dies die beste Premium-Lösung, die Sie in Betracht ziehen sollten.

Darüber hinaus können Sie mit diesem Plugin unbegrenzte Bedingungen erstellen und beispielsweise Warenkorbsummen, Rechnungsland, Benutzerrolle und vieles mehr verwenden, um festzulegen, welches Zahlungsgateway angezeigt wird und welches nicht.

WooCommerce-Plugin für bedingte Zahlungen

In diesem kurzen Tutorial werde ich Ihnen jedoch zeigen, wie Sie eine Zahlungsmethode für eine bestimmte Kategorie mithilfe von PHP-Code-Snippets deaktivieren.

Schritte zum Deaktivieren der Zahlungsmethode für bestimmte Kategorien mithilfe des PHP-Code-Snippets

Hier sind die einfachen Schritte, die Sie befolgen müssen:

  1. Melden Sie sich bei Ihrer WordPress-Site an und greifen Sie als Admin-Benutzer auf das Dashboard zu.
  2. Klicken Sie im Dashboard-Menü auf Darstellungsmenü > Themen-Editor-Menü . Wenn die Seite „ Theme-Editor “ geöffnet wird, suchen Sie nach der Theme-Funktionsdatei, in der wir die Funktion hinzufügen, die die Zahlungsmethode für eine bestimmte Kategorie deaktiviert.
  3. Fügen Sie der PHP -Datei den folgenden Code hinzu:
 /**
 * @snippet Zahlungsmethode für bestimmte Kategorie deaktivieren
*/


add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' );


Funktion njengah_unset_gateway_by_category( $available_gateways ) {

    if ( is_admin() ) $ available_gateways zurückgeben;

    if ( ! is_checkout() ) return $available_gateways;

    $unset = falsch;

    $category_ids = array( 8, 37 );

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

        $terms = get_the_terms( $values['product_id'], 'product_cat' );   

        foreach ( $terms als $term ) {       

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

                $unset = wahr;

                brechen;

            }

        }

    }

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

    $verfügbare_Gateways zurückgeben;

}
  1. Das werden die Ergebnisse sein Deaktivieren Sie eine Zahlungsmethode für eine bestimmte Kategorie

Denken Sie daran, die richtige Kategorie-ID hinzuzufügen, die sich in Ihrem WooCommerce-Shop befindet, damit dieser Code funktioniert.

Wenn Sie die Kategorie-ID nicht verwenden möchten, können Sie auch den Kategorie-Slug in Ihrem WooCommerce-Shop verwenden. Sie können sich dafür entscheiden, sie zu verwenden, da sie zum späteren Nachschlagen leichter verständlich sind.

Schritte zum Deaktivieren der Zahlungsmethode für eine bestimmte Kategorie mithilfe von Kategorie-Slugs

  1. Melden Sie sich bei Ihrer WordPress-Site an und greifen Sie als Admin-Benutzer auf das Dashboard zu.
  2. Klicken Sie im Dashboard-Menü auf Darstellungsmenü > Themen-Editor-Menü . Wenn die Seite „ Theme-Editor “ geöffnet wird, suchen Sie nach der Theme-Funktionsdatei, in der wir die Funktion hinzufügen, die die Zahlungsmethode für eine bestimmte Kategorie deaktiviert.
  3. Fügen Sie der PHP -Datei den folgenden Code hinzu:
 /**

 * @snippet Zahlungsgateway basierend auf Kategorie deaktivieren.

*/

Funktion njengah_disable_payment_gateway_category( $gateways ) {

// Kategorien, die das Zahlungsgateway deaktivieren

$category_slugs = array( 'accessories', 'another-category' );

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


// Überprüfen Sie jeden Warenkorbartikel auf die angegebene Kategorie

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

$product = $item['data'];

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

unset( $gateways['cod'] ); // Zahlungs-Gateway 'cod' deaktivieren, wenn das Produkt eine der Kategorien hat

brechen;

}

}

gib $gateways zurück;

}

add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
  1. Das wird das Ergebnis sein Deaktivieren Sie die Zahlungsmethode für eine bestimmte Kategorie

Denken Sie daran, den richtigen Kategorie-Slug hinzuzufügen, und Sie müssen das Zahlungsgateway definieren, das Sie deaktivieren möchten. In meinem Beispiel habe ich „Kabeljau“ verwendet, um Nachnahme darzustellen.

Es ist wichtig zu beachten, dass die Zahlungs-Gateway-ID ebenfalls in die geändert werden muss, die Sie deaktivieren möchten, wenn die angegebene Kategorie im Warenkorb vorhanden ist.

  • Banküberweisung (bacs)
  • Scheck (Scheck)
  • Nachnahme (Kabeljau)
  • PayPal (PayPal)

Wenn Sie jedoch keines der Standard-Zahlungsgateways verwenden, machen Sie sich keine Sorgen, da es immer noch eine einfache Möglichkeit gibt, die ID des Zahlungsgateways herauszufinden. Sie können dies tun, indem Sie zur Seite mit den Zahlungsgateway-Einstellungen gehen und dort die ID finden.

Zum Beispiel für die Option Nachnahme auf der Einstellungsseite ist dies die URL: wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

Fazit

In diesem Beitrag haben Sie gelernt, wie Sie die Zahlungsmethode für bestimmte Kategorien mit zwei Methoden deaktivieren können. Sie können sie mithilfe von Produktkategorie-IDs oder Kategorie-Slugs für eine einfache zukünftige Bezugnahme definieren. Denken Sie daran, die Kategorie-ID oder den Slug in Ihrem WooCommerce-Shop zu verwenden, um diese Funktionalität hinzuzufügen.

Ähnliche Artikel