Se sei un esperto di tecnologia, puoi limitare i metodi di pagamento WooCommerce utilizzando una funzione hooked personalizzata nel hook del filtro woocommerce_available_payment_gateways. Ciò richiede l’aggiunta di uno snippet di codice al file PHP.
Dopo aver eseguito correttamente il backup del tuo sito, segui questa guida per disabilitare i gateway di pagamento WooCommerce in base agli articoli del carrello (tipo di prodotto):
Nella dashboard di WordPress, vai al menu Aspetto > Menu Editor temi.
Cerca il file function.php del tema e aggiungi il codice seguente a questo file.
add_filter('woocommerce_available_payment_gateways', 'conditional_payment_gateways', 10, 1);
function conditional_payment_gateways($available_gateways)
{
// Not in backend (admin)
if (is_admin())
return $available_gateways;
$prod_variable = $prod_simple = $prod_subscription = false;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item)
{
// Get the WC_Product object
$product = wc_get_product($cart_item['product_id']);
// Get the product types in cart (example)
if ($product->is_type('simple')) $prod_simple = true;
if ($product->is_type('variable')) $prod_variable = true;
if ($product->is_type('subscription')) $prod_subscription = true;
}
// Remove Cash on delivery (cod) payment gateway for simple products
if ($prod_simple)
unset($available_gateways['cod']); // unset 'cod'
// Remove Paypal (paypal) payment gateway for variable products
if ($prod_variable)
unset($available_gateways['paypal']); // unset 'paypal'
// Remove Bank wire (Bacs) payment gateway for subscription products
if ($prod_subscription)
unset($available_gateways['bacs']); // unset 'bacs'
return $available_gateways;
}
Questo è tutto!
Per gli altri che vorrebbero portare a termine il lavoro senza toccare alcun bit di codice, puoi chiedere aiuto ai plugin di WordPress. Ci sono centinaia di plugin che eccellono nel nascondere i metodi di pagamento WooCommerce.