Pregunta sobre WooCommerce Cart Stock Reducer de Wordpress:

Mostrar temporizador en artículos de carrito individuales

Un usuario preguntó 👇

Hola, ¿hay alguna forma sencilla en la que pueda modificar este plugin para mostrar los temporizadores de cuenta regresiva para elementos individuales en el gráfico? Es decir, en lugar de renunciar a un aviso que diga «Por favor, verifique en 5 minutos, un elemento caduca antes», cada elemento tendría su propio temporizador y, cuando llega a cero, el temporizador elimina ese elemento.

Parece que esto solo requeriría algunos ajustes, pero no veo de inmediato cómo hacerlo. ¿Algunas ideas?

(@jamesgol)

Hace 3 años, 1 mes

He estado trabajando lentamente hacia esa habilidad, pero aún no he terminado. El carrito de la compra de página completa no debería ser demasiado difícil de implementar, pero hacer el mini carrito requeriría mucho trabajo.

Si completa esto, consideraría fusionar los cambios con el código fuente, envíe una solicitud de extracción a GitHub si lo hace.

(@keithpickeringkmg)

Hace 3 años, 1 mes

Tengo que hacer que esto funcione, así que definitivamente puedo hacer una solicitud de remolque cuando trabajo.

¿Por dónde crees que empezarías con esto? ¿Tiene una idea general, quizás, de cómo se debe hacer?

(@jamesgol)

Hace 3 años, 1 mes

No puedo decirlo con certeza sin profundizar en el código, pero debería haber una acción / filtro de WooCommerce que se ejecute en cada línea del gráfico y que pueda usar para agregar elementos. Cada artículo que vence tiene un tiempo en el que caduca el artículo, debería poder agregar una cuenta regresiva.

Cuando expire la cuenta atrás, se actualizará la página.

(@keithpickeringkmg)

Hace 3 años, 1 mes

De acuerdo, hice esto de una manera un poco hacky que viola la plantilla cart.php, pero ya lo estaba haciendo, así que funcionó para mí.

Afortunadamente, el tiempo de vencimiento se almacena en los datos de cada artículo del carrito (¡gracias!) Y por eso agregué esto al bucle foreach en cart.php donde quería que aparecieran los temporizadores:

<div class="cart-item-countdown" data-time="<?php echo $cart_item['csr_expire_time'] - time(); ?>">
	<?php _e('Reserved for', 'kincaid'); ?> <span></span>
</div>

La hora actual de Epoch se resta de csr_expire_time, que es exactamente lo que el plugin ya hace para el temporizador de tiempo de actividad, por lo que no hay discrepancias.

Entonces solo necesita algo de javascript para ejecutar en la página del carrito:

jQuery('.cart-item-countdown').each(function() {
	var $this = jQuery(this),
	     time = parseInt($this.data('time')),
	     soon = false;
	$this.find('span').countdown({
		until: time,
		format: 'dhmS',
		layout: '{mnn}{sep}{snn}',
		onTick: function(periods) {
			if (periods[5] <= 1 && !soon) {
				$this.addClass('cart-item-countdown--soon');
				soon = true;
			}
		}
	});
});

Estoy tomando una clase para poner la cuenta regresiva en rojo cuando al temporizador le quedan menos de 2 minutos, pero eso es completamente opcional. Espero que esto ayude a alguien más.

Editar: Oh, también, esa verificación de 2 minutos probablemente no funcione correctamente si su tiempo de vencimiento es de 1 hora o más. El nuestro es de solo 5 minutos (impresiones de edición muy limitada, por lo que la gente tiene el cheque o sale), así que verifique que el valor de los minutos funcione.

Esta respuesta fue modificada hace 3 años, hace un mes por.

(@jamesgol)

Hace 3 años, 1 mes

Si desea hacerlo sin modificar el archivo de tema, debería haber una acción / filtro para usar, solo accesorios para encontrar una solución que funcione para usted.

Esta respuesta fue modificada hace 3 años, hace un mes por.

(@keithpickeringkmg)

Hace 3 años, 1 mes

Gracias por el plugin, por cierto, es extremadamente útil y tuve la suerte de conseguirlo. Parece una locura que esta funcionalidad no sea parte de WC al principio, podría establecer la configuración predeterminada (sin reducir la cantidad hasta que se complete el pedido) agregando muchos dolores de cabeza en las tiendas de alta demanda.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.