Jak wyłączyć metodę płatności dla określonej kategorii?

Opublikowany: 2020-09-01

WooCommerce Wyłącz metodę płatności dla określonej kategorii Prowadzisz sklep WooCommerce i chcesz wiedzieć, jak możesz wyłączyć metodę płatności dla określonej kategorii lub wiele metod płatności w oparciu o kategorie produktów obecne w koszyku? Jeśli szukasz rozwiązania, które koncentruje się na kategoriach produktów, ale po niewielkich zmianach można je również zmienić dla klas wysyłkowych, na przykład na samych produktach, ten artykuł podpowie Ci, jak to osiągnąć.

Wyłącz metodę płatności dla określonej kategorii

Dobrym przykładem, w którym takie podejście jest przydatne, jest sytuacja, gdy właściciele sklepów WooCommerce mają kategorię zawierającą tylko produkty o wysokiej cenie i chcą, aby klienci płacili przelewami bankowymi zamiast kartą kredytową. To tylko przykład wielu sytuacji, w których konieczne może być wyłączenie metody płatności dla kategorii.

Jeśli nie znasz się na technologii, możesz zdecydować się na wtyczkę premium, która wykona tę pracę za Ciebie. Przykładem jest wtyczka płatności warunkowej WooCommerce, która pomaga tworzyć warunki, w których metody płatności będą włączone lub wyłączone. Jeśli nie jesteś tak dobry w posługiwaniu się kodem, będzie to najlepsze rozwiązanie premium, które powinieneś rozważyć.

Co więcej, ta wtyczka pozwala tworzyć nieograniczone warunki i używać, na przykład, sum koszyka, kraju rozliczenia, roli użytkownika i wielu innych, aby określić, która bramka płatności pokazuje, a która nie.

Wtyczka płatności warunkowej WooCommerce

Jednak w tym krótkim samouczku pokażę, jak wyłączyć metodę płatności dla określonej kategorii za pomocą fragmentów kodu PHP.

Kroki, aby wyłączyć metodę płatności dla określonej kategorii za pomocą fragmentu kodu PHP

Oto proste kroki, które musisz wykonać:

  1. Zaloguj się do swojej witryny WordPress i uzyskaj dostęp do pulpitu nawigacyjnego jako administrator.
  2. Z menu Dashboard kliknij menu Wygląd > Menu edytora motywów . Po otwarciu strony Theme Editor poszukaj pliku funkcji motywu, w którym dodamy funkcję, która wyłączy metodę płatności dla określonej kategorii.
  3. Dodaj następujący kod do pliku php :
 /**
 * @snippet Wyłącz metodę płatności dla określonej kategorii
*/


add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' );


funkcja njengah_unset_gateway_by_category( $available_gateways) {

    if ( is_admin() ) zwraca $available_gateways;

    if ( ! is_checkout() ) zwraca $available_gateways;

    $unset = fałsz;

    $category_ids = tablica( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() as $klucz => $wartości ) {

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

        foreach ( $terms jako $term ) {       

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

                $unset = prawda;

                złamać;

            }

        }

    }

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

    zwróć $available_gateways;

}
  1. To będą wyniki wyłączyć metodę płatności dla określonej kategorii

Pamiętaj, aby dodać prawidłowy identyfikator kategorii, który znajduje się w Twoim sklepie WooCommerce, aby ten kod działał.

Jeśli nie lubisz używać identyfikatora kategorii, możesz również użyć ślimaka kategorii w swoim sklepie WooCommerce. Możesz zdecydować się na ich użycie, ponieważ są one łatwiejsze do zrozumienia na przyszłość.

Kroki, aby wyłączyć metodę płatności dla określonej kategorii przy użyciu ślimaków kategorii

  1. Zaloguj się do swojej witryny WordPress i uzyskaj dostęp do pulpitu nawigacyjnego jako administrator.
  2. Z menu Dashboard kliknij menu Wygląd > Menu edytora motywów . Po otwarciu strony Theme Editor poszukaj pliku funkcji motywu, w którym dodamy funkcję, która wyłączy metodę płatności dla określonej kategorii.
  3. Dodaj następujący kod do pliku php :
 /**

 * @snippet Wyłącz bramkę płatności na podstawie kategorii.

*/

funkcja njengah_disable_payment_gateway_category ( $ bramki ) {

// Kategorie, które wyłączą bramkę płatności

$category_slugs = array( ' akcesoria', 'inna-kategoria' );

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


// Sprawdź każdy element koszyka dla danej kategorii

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

$produkt = $pozycja['dane'];

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

unset( $gateways['cod'] ); // Wyłącz „kod” bramki płatności, gdy produkt ma jedną z kategorii

złamać;

}

}

zwróć $bramy;

}

add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
  1. To będzie wynik wyłącz metodę płatności dla określonej kategorii

Pamiętaj, aby dodać właściwy slug kategorii i musisz zdefiniować bramkę płatności, którą chcesz wyłączyć. W moim przykładzie użyłem słowa „kod” do przedstawienia gotówki przy odbiorze.

Ważne jest, aby pamiętać, że identyfikator bramki płatności również musi zostać zmieniony na taki, który chcesz wyłączyć, gdy dana kategoria jest obecna w koszyku.

  • Przelew bankowy (bac)
  • Czek (czek)
  • Pobranie (kod)
  • PayPal (PayPal)

Jeśli jednak nie korzystasz z jednej z domyślnych bramek płatności, nie martw się, ponieważ nadal istnieje łatwy sposób na znalezienie identyfikatora bramki płatności. Możesz to zrobić, przechodząc na stronę ustawień bramki płatności i tam znajdziesz identyfikator.

Na przykład dla opcji Płatność przy odbiorze na stronie ustawień będzie to adres URL: wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

Wniosek

W tym poście dowiedziałeś się, jak wyłączyć metodę płatności dla określonej kategorii za pomocą dwóch metod. Możesz je zdefiniować za pomocą identyfikatorów kategorii produktów lub informacji o kategorii, aby móc je łatwo wykorzystać w przyszłości. Pamiętaj, aby użyć identyfikatora kategorii lub ślimaka, który znajduje się w Twoim sklepie WooCommerce, aby dodać tę funkcję.

Podobne artykuły