Belirli Kategori için Ödeme Yöntemi Nasıl Devre Dışı Bırakılır

Yayınlanan: 2020-09-01

WooCommerce Belirli Kategori için Ödeme Yöntemini Devre Dışı Bırak Bir WooCommerce mağazası mı işletiyorsunuz ve sepette bulunan ürün kategorilerine dayalı olarak belirli bir kategori veya birden fazla ödeme yöntemi için ödeme yöntemini nasıl devre dışı bırakabileceğinizi bilmek mi istiyorsunuz? Ürün kategorilerine odaklanan bir çözüm arıyorsanız, ancak nakliye sınıfları için, örneğin ürünlerin kendisinde de bazı küçük değişiklikler değiştirilebilirse, bu makale size bunu nasıl başaracağınız konusunda rehberlik edecektir.

Belirli Kategori için Ödeme Yöntemini Devre Dışı Bırak

Bu yaklaşımın yararlı olduğu iyi bir örnek, WooCommerce mağaza sahiplerinin yalnızca yüksek fiyatlı ürünleri içeren bir kategoriye sahip olması ve müşterilerin kredi kartı kullanmak yerine banka havalesi ile ödeme yapmasını istemesidir. Bu, bir kategori için bir ödeme yöntemini devre dışı bırakmanız gerekebilecek birçok duruma sadece bir örnektir.

Teknoloji konusunda bilgili değilseniz, işi sizin yerinize yapması için premium bir eklentiyi tercih edebilirsiniz. Bir örnek, ödeme yöntemlerinizin etkinleştirileceği veya devre dışı bırakılacağı koşulları oluşturmanıza yardımcı olan WooCommerce Koşullu Ödeme Eklentisidir. Kodu kullanmakta o kadar iyi değilseniz, bu, göz önünde bulundurmanız gereken en iyi premium çözüm olacaktır.

Ayrıca, bu eklenti, sınırsız koşullar oluşturmanıza ve örneğin alışveriş sepeti toplamları, fatura ülkesi, kullanıcı rolü ve çok daha fazlasını kullanarak hangi ödeme ağ geçidinin gösterilip hangilerinin gösterilmeyeceğini tanımlamanıza olanak tanır.

WooCommerce Koşullu Ödeme Eklentisi

Ancak, bu kısa eğitimde, PHP kod parçacıklarını kullanarak belirli bir kategori için bir ödeme yöntemini nasıl devre dışı bırakacağınızı göstereceğim.

PHP Kod Parçacığı Kullanarak Belirli Bir Kategori için Ödeme Yöntemini Devre Dışı Bırakma Adımları

İşte izlemeniz gereken basit adımlar:

  1. WordPress sitenize giriş yapın ve yönetici kullanıcı olarak Gösterge Tablosuna erişin.
  2. Pano menüsünden Görünüm Menüsü > Tema Düzenleyici Menüsü öğesine tıklayın. Tema Editörü sayfası açıldığında, belirli bir kategori için ödeme yöntemini devre dışı bırakacak işlevi ekleyeceğimiz tema işlevleri dosyasını arayın.
  3. php dosyasına aşağıdaki kodu ekleyin :
 /**
 * @snippet Belirli Kategori için Ödeme Yöntemini Devre Dışı Bırak
*/


add_filter('woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category');


function njengah_unset_gateway_by_category($mevcut_gateways) {

    if ( is_admin() ) $available_gateways döndürür;

    if ( ! is_checkout() ) $available_gateways döndürür;

    $unset = yanlış;

    $category_ids = dizi( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() as $key => $değerler ) {

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

        foreach ( $terms as $term ) {       

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

                $unset = true;

                kırmak;

            }

        }

    }

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

    $available_gateways döndür;

}
  1. Bu sonuçlar olacak belirli bir kategori için bir ödeme yöntemini devre dışı bırak

Bu kodun çalışması için WooCommerce mağazanızda bulunan doğru kategori kimliğini eklemeyi unutmayın.

Kategori Kimliğini kullanmayı sevmiyorsanız, WooCommerce mağazanızda kategori bilgisini de kullanabilirsiniz. İleride başvurmak üzere anlaşılması daha kolay olduğu için bunları kullanmayı tercih edebilirsiniz.

Kategori Slugs Kullanarak Belirli Kategori için Ödeme Yöntemini Devre Dışı Bırakma Adımları

  1. WordPress sitenize giriş yapın ve yönetici kullanıcı olarak Gösterge Tablosuna erişin.
  2. Pano menüsünden Görünüm Menüsü > Tema Düzenleyici Menüsü öğesine tıklayın. Tema Editörü sayfası açıldığında, belirli bir kategori için ödeme yöntemini devre dışı bırakacak işlevi ekleyeceğimiz tema işlevleri dosyasını arayın.
  3. php dosyasına aşağıdaki kodu ekleyin :
 /**

 * @snippet Kategoriye göre ödeme ağ geçidini devre dışı bırakın.

*/

function njengah_disable_payment_gateway_category($ağ geçitleri) {

// Ödeme ağ geçidini devre dışı bırakacak kategoriler

$category_slugs = dizi( 'aksesuarlar', 'başka bir kategori');

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


// Verilen kategori için her sepet öğesini kontrol edin

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

$ürün = $item['veri'];

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

unset( $ağ geçitleri['kod']); // Ürün kategorilerden birine sahip olduğunda ödeme ağ geçidi 'kodunu' devre dışı bırak

kırmak;

}

}

$ ağ geçitlerini döndür;

}

add_filter('woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category');
  1. sonuç bu olacak belirli kategori için ödeme yöntemini devre dışı bırak

Doğru kategori bilgisini eklemeyi unutmayın ve devre dışı bırakmak istediğiniz ödeme ağ geçidini tanımlamanız gerekir. Örneğimde, teslimatta nakit ödemeyi temsil etmek için 'morina' kullandım.

Belirtilen kategori sepette mevcut olduğunda, ödeme ağ geçidi tanımlayıcısının da devre dışı bırakmak istediğiniz şekilde değiştirilmesi gerektiğini unutmamak önemlidir.

  • Banka havalesi (bacs)
  • Çek (çek)
  • Kapıda ödeme (kod)
  • PayPal (PayPal)

Ancak, varsayılan ödeme ağ geçitlerinden birini kullanmıyorsanız endişelenmeyin, çünkü ödeme ağ geçidi kimliğini bulmanın hala kolay bir yolu var. Bunu, ödeme ağ geçidi ayarları sayfasına giderek yapabilirsiniz ve kimliği orada bulacaksınız.

Örneğin, ayarlar sayfasındaki Kapıda Ödeme seçeneği için bu, URL olacaktır: wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod

Çözüm

Bu gönderide, iki yöntem kullanarak Belirli Kategori için Ödeme Yöntemini nasıl devre dışı bırakacağınızı öğrendiniz. Bunları, ileride kolayca başvurmak için ürün kategorisi kimliklerini veya kategori bilgi işaretlerini kullanarak tanımlayabilirsiniz. Bu işlevi eklemek için WooCommerce mağazanızdaki kategori kimliğini veya bilgi bilgisini kullanmayı unutmayın.

Benzer Makaleler