Avisos
Vaciar todo

Plugin pedido mínimo  

 
Manuel
 Manuel
Usuario eminente

Algún plugin que permita lo siguiente:

Bloquear el carrito si la cantidad total no supera un determinado importe.

A tener en cuenta:

- Solo suma una categoría específica de productos.

- Hay diferentes importes mínimos por cada país/estado

 

Citar
Respondido : 01/10/2020 10:27 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Manuel.

Tienes el siguiente plugin:

-> https://wordpress.org/plugins/min-and-max-purchase-for-woocommerce/

En su versión Free la configuración es global, es decir, afectaría a todos los productos, en la versión Pro si que tienes más opciones que te permiten configurar el pedido minimo por productos o categorias:

Otra opción sería con una función:

// Define una cantidad mínima por producto
add_action( 'woocommerce_check_cart_items', 'set_min_quantity_per_product' );
function set_min_quantity_per_product() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {
global $woocommerce;
$i = 0;

// Lista de ID de productos y su cantidad mínima correspondiente
$product_min_qty = array(
array( 'id' => 12, 'min' => 10 ),
array( 'id' => 7, 'min' => 5 )
);

// Array para guardar los productos del carrito que no cumplan la condición
$bad_products = array();

// Comprobamos el número de productos del carrito
foreach( $woocommerce->cart->cart_contents as $product_in_cart ) {

foreach( $product_min_qty as $product_to_test ) {

if( $product_to_test['id'] == $product_in_cart['product_id'] ) {

if( $product_in_cart['quantity'] < $product_to_test['min'] ) {

$bad_products[$i]['id'] = $product_in_cart['product_id'];
$bad_products[$i]['in_cart'] = $product_in_cart['quantity'];
$bad_products[$i]['min_req'] = $product_to_test['min'];
}
}
}
$i++;
}

// Crea el mensaje de error que se muestra cuando no se ha alcanzado el mínimo
if( is_array( $bad_products) && count( $bad_products ) >= 1 ) {

$message = 'Lo sentimos. Pero para finalizar su compra debe alcanzar un mínimo de productos.<br/>';
foreach( $bad_products as $bad_product ) {

$message .= 'El producto "'. get_the_title( $bad_product['id'] ) .'" requiere una cantidad mínima de '. $bad_product['min_req'] .' unidades'.'. Usted sólo ha incluido '. $bad_product['in_cart'] .'.';
}
wc_add_notice( $message, 'error' );
}
}
}

Del código tienes que modificar los array del id de producto por los ID de lso productos que quieres que se tomen en cuenta y las cantidades:

// Lista de ID de productos y su cantidad mínima correspondiente
$product_min_qty = array(
array( 'id' => 12, 'min' => 10 ),
array( 'id' => 7, 'min' => 5 )
);

 

 

Un saludo

ResponderCitar
Respondido : 01/10/2020 11:19 am

Manuel
 Manuel
Usuario eminente

Y el código o el plugin, a parte de para definir el pedido mínimo por categorías, serviría para definir el importe mínimo según el país de envío? Como se podría ajustar?

ResponderCitar
Respondido : 01/10/2020 12:16 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Manuel.

El código sirve para definir un pedido mínimo por producto, puedes indicarle que el producto x tiene que tener tantos productos añadido para poder realizar su compra:

En el array del código tienes:

array( 'id' => 12, 'min' => 10 ),

'id' seria el id del producto 

'min' serian las cantidades del producto añadir en a la cesta.

El problema estaría en los países que eso si que no lo tienen en cuenta.

En el plugin en al versión de pago si que puedes definir por categorías, lo que no se es si restringe por países, creo que no pero seria consultarlo con los desarrolladores, lo que si que puedes es crear una regla para usuarios es decir puedes tener roles de usuario que sea por países, por ejemplo creas un Rol de usuario que sea Francia y todos los usuarios de Francia asignarlos a ese grupo.

Para crear roles de usuario puedes utilizar el plugin User Role Editor

-> https://es.wordpress.org/plugins/user-role-editor/

 

Si que podrías establecer un importe mínimo pero sería global para todos los productos y países.

 

Un saludo

 

ResponderCitar
Respondido : 01/10/2020 1:01 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Manuel
 Manuel
Usuario eminente

@pepesoler

No estamos hablando de catidades de un producto, estamos hablando del importe total en el carrito de la suma de productos de una categoría concreta....

ResponderCitar
Respondido : 01/10/2020 1:05 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Manuel,

Pruebes verificar si algunos de los siguiente complementos funcionan para lo que necesitas, no estoy muy segura si te permite restringir por país

-> https://es.wordpress.org/plugins/minimum-purchase-for-woocommerce/

-> https://wordpress.org/plugins/order-minimum-amount-for-woocommerce/

-> Contenido solo visible a usuarios registrados

Sin embargo tal vez lo que necesitas requiere desarrollo a la medida por lo que es posible que necesites adaptar tu código, te recomiendo consultes con nuestros colaboradores quienes puede ayudarte a desarrollar lo que necesitas -> https://www.webempresa.com/directorio-colaboradores.html

Un Saludo

ResponderCitar
Respondido : 01/10/2020 2:18 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Manuel.

Co el plugin que te indique puedes crear reglas una de ellas por categorías, es decir puedes asignar un importe mínimo a una categoría pero como te indico el problema lo tendrías con los países que en un principio se podría asignar creando un regla por el grupo de usuarios.

Tienes documentación del plugin en este enlace:

-> https://www.varktech.com/woocommerce/min-and-max-purchase-for-woocommerce/?active_tab=tutorial

En el código que te pase puedes asignar por producto y productos añadidos pero no por categoría, puedes restringir por categorías pero no a un total seria por productos añadidos de la misma categoría:

// Permite sólo un producto (o un número predefinido de productos) por categoría en el carrito
add_filter( 'woocommerce_add_to_cart_validation', 'we_cantidad_permitida_por_categoria_en_carrito', 10, 2 );
function we_cantidad_permitida_por_categoria_en_carrito( $passed, $product_id) {

$max_num_products = 1;// cambia el número máximo de productos permitidos por categoría
$running_qty = 0;

$restricted_product_cats = array();

//Restringe a categoría o categorías particulares por slug
$restricted_product_cats[] = 'cat-slug-one';
//$restricted_product_cats[] = 'cat-slug-two';// descomenta para activar la restricción en una segunda categoría

// Obtiene el slug de la categoría de producto actual en un array
$product_cats_object = get_the_terms( $product_id, 'product_cat' );
foreach($product_cats_object as $obj_prod_cat) $current_product_cats[]=$obj_prod_cat-&gt;slug;

// Itera a través de cada artículo del carrito
foreach (WC()-&gt;cart-&gt;get_cart() as $cart_item_key=&gt;$cart_item ){

// Restringe el $max_num_products de cada categoría
if( has_term( $current_product_cats, 'product_cat', $cart_item['product_id'] )) {

// Restringe el $max_num_products de categorías con productos restringidos
//if( array_intersect($restricted_product_cats, $current_product_cats) &amp;&amp; has_term( $restricted_product_cats, 'product_cat', $cart_item['product_id'] )) {

// count(selected category) quantity
$running_qty += (int) $cart_item['quantity'];

// No se permiten más de los productos permitidos en el carrito
if( $running_qty &gt;= $max_num_products ) {
wc_add_notice( sprintf( 'Sólo está permitido %s '.($max_num_products&gt;1?'productos de esta categoría':'producto de esta categoría').' en el carrito.', $max_num_products ), 'error' );
$passed = false; // no agrega el nuevo producto al carrito
// Para el loop
break;
}

}
}
return $passed;
}

Solo tendrias que modificar $max_num_products = 1 por el número de productos que quieres que se pueda añadir y $restricted_product_cats[] = 'cat-slug-one'; por el slug de la categoría

 

Si necesitas algo más especial de todo lo que te hemos ofrecido, tendría que ser algo a medida pero creo que con el plugin puedes hacer lo que buscas.

Puedes probar la versión Free y te haces una idea , alguna de las opciones estan bloqueadas pero te puedes hacer una idea de las posibilidades que tiene en su versión pro.

 

Un saludo

ResponderCitar
Respondido : 01/10/2020 2:30 pm
Manuel
 Manuel
Usuario eminente

@pepesoler

Creando los roles se añaden los usuarios de un idioma concreto al grupo de usuarios?

El problema con esto es que quiero limitar el precio por la dirección de envío, y puede que así un usuario de francia pueda enviar a alemania con un precio que no le corresponde.

ResponderCitar
Respondido : 01/10/2020 2:45 pm

Cursos Gratuitos WordPress

Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Manuel.

Creando los roles se añaden los usuarios de un idioma concreto al grupo de usuarios?

Si te refieres a si es automático, no.

Una vez registrados tendrías que acceder al usuario y asignarlo al rol de cada país, es decir, tendrías que crear roles por países y una vez que se registre el cliente hay que acceder a ese usuario y asignarlo al rol de su  país.

 

Un saludo

ResponderCitar
Respondido : 01/10/2020 2:52 pm
Manuel
 Manuel
Usuario eminente

@pepesoler

Entonces esa funcionalidad es inviable...

ResponderCitar
Respondido : 01/10/2020 3:15 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Manuel.

Pues no hay más es todo lo que te podemos ofrecer, lo siguiente sería realizar un plugin a medida que se adapte a lo que necesitas, par eso ya tienes que contactar con algún colaborador:

-> https://www.webempresa.com/directorio-colaboradores.html

 

Un saludo

ResponderCitar
Respondido : 01/10/2020 4:04 pm