Eliminar cupones caducados automáticamente en WooCommerce

Eliminar cupones caducados automáticamente en WooCommerce

Eliminar cupones caducados automáticamente en WooCommerce

Tiempo de lectura: 2 minutos

Si tienes una tienda virtual debes escuchar el capítulo de nuestro podcast en el que hablamos sobre los diferentes tipos de gastos de envío de una tienda virtual, sus ventajas y sus inconvenientes:

 

PUEDES ESCUCHAR NUESTRO PODCAST DE «QUIERO SER WEBMASTER» EN:

 

Los cupones son increíbles, ¿a quién no le gusta un descuento? Una forma muy común de dar cupones a los clientes es crear uno automáticamente después de su primer pedido, o algo así.

Sin embargo, el problema con esto es que, por lo general, estos cupones caducan después de un período específico y, de manera predeterminada, WooCommerce no los eliminará. Sin embargo, no tienen ninguna razón para permanecer en su base de datos y ocupar espacio, entonces, ¿cómo eliminamos los cupones caducados automáticamente?

Con un poquito de código.

Abre el archivo functions.php en wp-content / themes / your-child-theme-name / y agrega este código al final del archivo:

<?php
/*
/ **
 * Programe el evento diario si es necesario.
 * /
función schedule_delete_expired_coupons () {
	if (! wp_next_scheduled ('delete_expired_coupons')) {
		wp_schedule_event (time (), 'daily', 'delete_expired_coupons');
	}
}
add_action ('init', 'schedule_delete_expired_coupons');

/ **
 * Basura todos los cupones caducados cuando se desencadena el evento.
 * /
function delete_expired_coupons () {
	$ args = array (
		'posts_per_page' = > -1,
		'post_type' = > 'shop_coupon',
		'post_status' = > 'publicar',
		'meta_query' = > array (
			'relacion' = > 'Y',
			formación(
				'key' = > 'fecha de vencimiento',
				'value' = > current_time ('Ymd'),
				'comparar' = > ' < =' ), formación( 'key' = > 'fecha de vencimiento',
				'value' = > '',
				'compare' = > '! ='
			)
		)
	);

	$ cupones = get_posts ($ args);

	if (! empty ($ cupones)) {
		$ current_time = current_time ('marca de tiempo');

		foreach ($ cupones como $ cupones) {
			wp_trash_post ($ cupón- > ID);
		}
	}
}
add_action ('delete_expired_coupons', 'delete_expired_coupons');
*/

Este fragmento de código moverá automáticamente a la Papelera todos los cupones caducados en tu tienda WooCommerce para que puedas ir y eliminarlos permanentemente con un solo clic.

Si deseas eliminar permanentemente los cupones directamente en lugar de tirarlos a la basura, puede cambiar este código:

<?php
/*
wp_trash_post( $coupon->ID );
*/

Por este:

<?php
/*
wp_delete_post( $coupon->ID, true );
*/

Ten en cuenta que una vez que elimina permanentemente un cupón, no se puede recuperar.

Además debes tener activado el cron de tu WordPress.

Para finalizar, te dejo una completa guía y muy útil con todos los shortcodes para WooCommerce.

Compártelo con tus contactos y ayúdame a mejorar

Sobre el Autor

2 Comentarios

  • Susy 10 agosto 2020 a las 19:21

    Hola amigo,
    Gracias por el Tutorial, quisiera saber cómo puedo eliminar los cupones después de su uso. Esto lo necesito para los cupones que están son a un solo uso limitado.

    • Pablo Sardina Author 10 agosto 2020 a las 19:33

      Hola Susy, cuando creas el cupón en WooCommerce > Cupones > Añadir cupón tienes una opción de «Límites de uso. Y ahí puedes poner el «Límite de uso por cupón»: si por ejemplo quieres crear un cupón que pueda ser usado 50 veces. O bien «Límite de uso por usuario», donde limitas el uso de cada usuario.
      Espero haberte ayudado.

Responder a Susy Cancelar respuesta