Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Deshabilitar métodos de pago en WooCommerce según el total de pedido

En este artículo veremos cómo quitar ciertos métodos de pago cuando el pedido excede un determinado monto, veremos como hacerlo directamente a través de código.

 

Generalidades

Al final lo que queremos obtener es que al finalizar el proceso de compra, y si el pedido ha pasado un determinado monto, entonces se oculten ciertos métodos de pago, tal como se muestra en la siguiente imagen:

Eliminar método de pago resultado final

 

Código para remover método de pago de acuerdo al monto del pedido

En el siguiente código tienes que realizar algunos cambios:

  • La variable $greater_than_amount, para definir el monto del pedido en el cual se ocultaran los métodos de pago
  • La variable $exclude_payments_ids, contendrá los identificadores de los métodos de pago, por ejemplo bacs, cheque, cod, paypal, etc.
Desde WooCommerce > Ajustes > Pagos, al ingresar a un método de pago tendrás el identificador en la parte final de la URL: &section=XXX
Puedes agregar el siguiente código como parte del archivo functions.php de tu tema hijo.
add_filter( 'woocommerce_available_payment_gateways', 'dcms_remove_gateways_by_total_amount', 1, 10 );
function dcms_remove_gateways_by_total_amount( $gateways ){
  
        $greater_than_amount = 30; // Cambiar el monto del pedido
        $exclude_payments_ids = array("cod", "paypal"); 

        if( WC()->cart->total > $greater_than_amount ) {

                foreach($exclude_payments_ids as $payment_id){
                        if ( isset($gateways[$payment_id]) ){
                                unset( $gateways[ $payment_id ] );
                        }
                }

        }
        
        return $gateways;
}

En el código anterior:

  • Utilizamos el Hook de filtro woocommerce_available_payment_gateways que hace referencia a la función dcms_remove_gateways_by_total_amount
  • La función tiene un parámetro, es un array con toda la información de las pasarelas de pago configuradas
  • Establecemos las variables $greater_than_amount y $exclude_payments_ids
  • Usamos el método del objeto de WooCommerce para saber el total del pedido y lo comparamos
  • Si se cumple la condición recorremos los identificadores de los pagos que se excluyen
  • Si alguno de des esos identificadores forma parte del parámetro, entonces lo quitamos
  • Finalmente devolvemos el parámetro de los métodos de pago modificado

 

Conclusión

Como has podido comprobar, puedes eliminar ciertos métodos de pago cuando el monto del pedido sea mayor a determinado valor, en este artículo hemos visto como realizar esto directamente a través de código.

 

La entrada Deshabilitar métodos de pago en WooCommerce según el total de pedido es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires