¡Nuevo servicio! ❤️ Conoce nuestras invitaciones virtuales AQUÍ

Logo Graphica Digital Projects
Soporte y Gestión Web
Liston que indica si un servicio es detacado

Mantén tu sitio web actualizado y seguro siempre.

Branding

Construye una marca que te lleve al reconocimiento.

Accede a una
asesoría gratuita

Te ayudamos a resolver dudas.
Blog

Actualizar carrito automáticamente

Lo que vamos a lograr:

Vamos a agregar los botones de + y – a cada lado del input número tanto en el Detalle de Producto como en el Carrito de Compras:

Agregar botones al input numerico

Y en el carrito de compras agregaremos la función para el update automático:

 

¿Cómo lo hacemos?

Para lograrlo vamos a agregar el siguiente script en nuestro custom.js (o la hoja de javascript que manejes en tu tema hijo):

La clase .pi-addCart es la clase que le ponemos al widget de Elementor en la plantilla de Detalle de Producto. Puedes reemplazar la clase con la que tú desees. 

				
					(function($) {
	$(document).ready(function() {

// **************************************************
// AÑADIR + Y - EN QUANTITY
// **************************************************

	if ($('.pi-addCart').length || $('.shop_table').length) {
		attachQtyButtons();
		if ($('.shop_table').length) {
			$(document.body).on("updated_cart_totals", function () {
				attachQtyButtons();
			});
		}
	}

	let updateCartTimeout;

	function attachQtyButtons() {
		const inputs = document.querySelectorAll(".input-text.qty");

		inputs.forEach((input) => {
			const decrementButton = document.createElement("button");
			decrementButton.textContent = "-";
			decrementButton.classList.add("decrement-button");

			const incrementButton = document.createElement("button");
			incrementButton.textContent = "+";
			incrementButton.classList.add("increment-button");

			input.insertAdjacentElement("beforebegin", decrementButton);
			input.insertAdjacentElement("afterend", incrementButton);

			decrementButton.addEventListener("click", function (e) {
				e.preventDefault();

				if (e.pointerType === "mouse" && input.value > input.min) {
					input.value = parseInt(input.value) - 1;
					$(input).change();
					updateCartAfterDelay(e);
				}
			});

			incrementButton.addEventListener("click", function (e) {
				e.preventDefault();
				if (input.max != ' ' || parseInt(input.value) < parseInt(input.max)) {
					input.value = parseInt(input.value) + 1;
					$(input).change();
					updateCartAfterDelay(e);
				}
			});
		});

		function updateCartAfterDelay(e) {
			if (updateCartTimeout) {
				clearTimeout(updateCartTimeout);
			}

			updateCartTimeout = setTimeout(() => {
				updateCartProducts(e);
			}, 1000); // Espera 1 segundo antes de ejecutar la actualización del carrito
		}
	}

	function updateCartProducts(e) {
		let cartForm = $('form.woocommerce-cart-form');

		if ($(cartForm).length) {
			$('[name="update_cart"]').click();
			e.preventDefault();
		}
	}
	
		}); //Cerrar function
})(jQuery); //Cerrar jquery
				
			

Ahora, vamos a agregar algunos estilos sencillos:

				
					/* ***************************************** */
/* BOTONES DE CANTIDAD */
/* ***************************************** */

.quantity input.qty{
    border: none !important;
}
.quantity{
	display: flex;
	gap: 0px;
	padding-right: 20px;
	align-items: center;
}
.quantity input{
	display: block !important;
	text-align: center !important;
	width: 40px !important;
	height: 10px !important;
	padding: 0px !important;
	font-size: 16px !important;
	background: red;
	pointer-events: none !important;
}
.quantity button{
	color: #000 !important;
	background: transparent !important;
	border: none !important;
	min-width: auto !important;
	width: auto !important;
	padding: 0px !important;
	margin: 0px !important;
	font-family: var(--e-global-typography-0c26c95-font-family), Sans-serif  !important;
	font-size: 28px !important;
	font-weight: normal !important;
	text-align: center !important;
}
.quantity button.increment-button{
	font-size: 19px !important;
}
.quantity input[type=number]::-webkit-inner-spin-button, 
.quantity input[type=number]::-webkit-outer-spin-button { 
	-webkit-appearance: none; 
	margin: 0; 
}
.quantity input[type=number] { 
    -moz-appearance:textfield;
}


				
			

Listo! con eso estamos. 

Picture of Graphica Digital Projects
Graphica Digital Projects

Agencia de Desarrollo Web

¿Deseas revertir tu compra?

1. Generalidades

Nuestra política de devoluciones establece los términos y condiciones bajo los cuales ofrecemos reembolsos o cambios por productos virtuales adquiridos en nuestro sitio web. Al realizar una compra, aceptas esta política en su totalidad.

2. Elegibilidad para Devoluciones

  1. Plazo de Solicitud: Las solicitudes de devolución deben realizarse dentro de los 5 días posteriores a la compra.
  2. Condiciones de Devolución: No se realizarán devoluciones una vez que el producto virtual haya sido publicado en un dominio de producción o si el diseño previo ha sido aprobado por el cliente.
  3. Pagos por Error: En caso de haber realizado un pago por error, las devoluciones solo serán permitidas si no han pasado más de 2 días hábiles. Si han pasado más días, se retendrá el 5% del monto como compensación por gastos de comisiones.

3. Proceso de Devolución

  1. Solicitud: Para iniciar una devolución, contacta a nuestro equipo de atención al cliente a través de [email/contacto] con el número de pedido y una descripción detallada del problema.
  2. Revisión de la Solicitud: Revisaremos tu solicitud y te notificaremos el estado de la devolución en un plazo de 10 días hábiles.
  3. Tiempo de Devolución: El proceso de devolución de dinero tomará un mínimo de 10 días hábiles. El tiempo total de reembolso dependerá también de los plazos de procesamiento de cada entidad bancaria.

4. Excepciones y Reembolsos

  1. Excepciones: En casos de defectos técnicos o errores atribuibles a nosotros, que impidan el funcionamiento adecuado del producto, se considerará la posibilidad de una corrección o reemplazo, en lugar de una devolución.
  2. Reembolsos: No se emitirán reembolsos una vez que el producto haya sido publicado en un dominio de producción o si el diseño ha sido previamente aprobado. Para pagos por error, se aplicará una retención del 5% si han pasado más de 2 días hábiles.

5. Cambios

En lugar de un reembolso, puedes optar por solicitar modificaciones o ajustes, sujeto a evaluación y acuerdo mutuo.

6. Contacto

Para cualquier pregunta o inquietud sobre nuestra política de devoluciones, por favor contacta a nuestro equipo de atención al cliente a través de [email protected].

Nota: Nos reservamos el derecho de actualizar esta política en cualquier momento, y cualquier cambio será efectivo inmediatamente después de su publicación en esta página.

Paga seguro con izipay

Pagos seguros con la plataforma izipay.

Aplican los Términos y condiciones de izipay.

 

Tu privacidad es nuestra prioridad

Al comprar productos aquí, aceptas nuestros Términos y condiciones.