Hola
Tienes opciones más elegante que añadir un producto ficticio que no vas a enviar. Revisa este snippet de WooCommerce, basándote en eso puedes forzar el total del carrito al mínimo mientras no se alcance esa cantidad.
Minimum Order Amount
Iniciador del debate
Eva
(@evasonder)
Gracias por el código,
pero es que mi jefe quiere que si piden un producto con un precio menor a 10€, se les cobre como mínimo un importe de 10€ a parte enví e IVA
Gracias
Hola @evasonder
Revisa este otro snippet de WooCommerce:
Add a surcharge to cart and checkout – uses fees API
Prueba este código en el archivo functions.php de tu tema hijo o en un plugin de personalizaciones:
add_action( 'woocommerce_cart_calculate_fees','woocommerce_minimal_order' );
function woocommerce_minimal_order() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
/*
// Asigna a $minimalorder el valor mínimo del pedido
*/
$minimalorder = 10;
$currentorder = $woocommerce->cart->cart_contents_total;
$extrafee = $minimalorder - $currentorder;
if ( $extrafee > 0 ) {
wc_print_notice(
sprintf( 'El total de tu pedido es %s. Compra algún artículo más para alcanzar el mínimo de %s o se añadirá un suplemento de %s a la hora del pago.' ,
wc_price( $currentorder ),
wc_price( $minimalorder ),
wc_price( $extrafee )
), 'error'
);
$woocommerce->cart->add_fee( 'Suplemento pedido mínimo', $extrafee, true, '' );
}
}
Si te funciona correctamente recuerda comentarlo y cerrar el debate marcándolo como resuelto, así nos ayudas a mantener el foro al día.
Iniciador del debate
Eva
(@evasonder)
Gracias Jose Luis,
No me dejaba incluir el código desde el editor de temas de wordpress, así que he abierto el archivo directamente, pero al incluir el código me ha dado error fatal y he tenido que deshacer los cambios.
Tengo instalado woocommerce con el tema customify y la plantilla OUTFIT.
Gracias
Hola,
¿Pusiste el código entre etiquetas php?
Deberías poner
<?php
//codigo q te paso @jose64
?>
Espero que así se te solucione.
Iniciador del debate
Eva
(@evasonder)
me sigue dando error, código ( no tengo ni idea de código, será mi próxima meta):
}
<?php
//add_action( ‘woocommerce_cart_calculate_fees’,’woocommerce_minimal_order’ );
function woocommerce_minimal_order() {
global $woocommerce;
if ( is_admin() && ! defined( ‘DOING_AJAX’ ) )
return;
/*
// Asigna a $minimalorder el valor mínimo del pedido
*/
$minimalorder = 10;
$currentorder = $woocommerce->cart->cart_contents_total;
$extrafee = $minimalorder – $currentorder;
if ( $extrafee > 0 ) {
wc_print_notice(
sprintf( ‘El total de tu pedido es %s. Compra algún artículo más para alcanzar el mínimo de %s o se añadirá un suplemento de %s a la hora del pago.’ ,
wc_price( $currentorder ),
wc_price( $minimalorder ),
wc_price( $extrafee )
), ‘error’
);
$woocommerce->cart->add_fee( ‘Suplemento pedido mínimo’, $extrafee, true, » );
}
?>
}
Customify();
Hola @evasonder
El código está preparado para añadirlo al archivo functions.php de tu tema hijo o a un plugin de personalizaciones como Code Snippets.
Lo ideal es que uses un tema hijo para evitar que con las actualizaciones pierdas personalizaciones, puedes crearlo manualmente o con un plugin, tienes más información en este debate:
problemas tema hijo
Con respecto al plugin de personalizaciones (Code Snippets) tienes la ventaja de puedes activar, desactivar y exportar el código fácilmente.
En los dos casos el código no lleva etiqueta de apertura parque ya está previamente en el archivo functios.php y Code Snippets la pone automáticamente.
Hola @evasonder
Haz caso a @jose64. Al no entender como funciona el código utilizalo dentro del plugin Code Snippets.
Copia el código que te pasó inicialmente en su primer comentario, el segundo que pasas tu tienen errores de formato.
Espero que no te haya mareado y que puedas conseguirlo.
Iniciador del debate
Eva
(@evasonder)
Muchas Gracias
me ha funcionado perfectamente