13. November 2023

WooCommerce:
Zahlarten mit PHP filtern

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.