Mit folgendem PHP-Code lassen sich relativ einfach die Bezahlmethoden in WooCommerce filtern:
<?php
// WooCommerce Bezahlmethoden anpassen
function custom_disable_payment_gateways($available_gateways)
{
// Variablen bestimmen
$disable_german_market_purchase_on_account=false;
// Warenkorb laden
$woocommerce_cart = WC()->cart;
$cart_items = $woocommerce_cart->get_cart();
// Einträge durchgehen
foreach ($cart_items as $cart_item)
{
// Gutscheine-Kategorie prüfen
$product_id=$cart_item['product_id'];
if (has_term('gutscheine', 'product_cat', $product_id)) $disable_german_market_purchase_on_account=true;
}
// Zahlung auf Rechnung deaktivieren
if ($disable_german_market_purchase_on_account) unset($available_gateways['german_market_purchase_on_account']);
unset($available_gateways['german_market_purchase_on_account']);
return $available_gateways;
}
add_filter('woocommerce_available_payment_gateways', 'custom_disable_payment_gateways');
In diesem Beispiel wird die Bezahlart auf Rechnung deaktiviert, falls ein Gutschein im Warenkorb liegt.