Añadir botón para vaciar el carrito en WooCommerce
Añadir botón para vaciar el carrito en WooCommerce
Aunque no es algo que ocurra habitualmente, en algunas ocasiones podemos necesitar vaciar el carrito en WooCommerce de forma manual, porque ciertos productos se queden bloqueados en el carrito asignado a la cuenta del cliente. Esto puede ser frustrante, ya que los productos no se pueden eliminar de manera normal, y el cliente podría tener problemas al intentar hacer una nueva compra.
En este post, te mostraré cómo solucionar este problema de forma rápida y efectiva, añadiendo un botón que te permitirá vaciar el carrito en WooCommerce de un usuario específico desde el perfil del cliente en el panel de administración de WordPress. Para lograrlo, vamos a usar el plugin Code Snippet, que nos permite insertar código personalizado sin modificar directamente los archivos del tema.
Cómo añadir el botón de “Vaciar Carrito”
Antes de empezar, es importante recordar que este método está pensado para aquellos casos donde el carrito del cliente presenta algún tipo de error y no permite eliminar productos de forma habitual. Si estás gestionando una tienda online en WooCommerce, tener esta funcionalidad lista puede ser muy útil.
Si además de detalles como poder vaciar el carrito en WooCommerce en tu tienda online, también te preocupa cómo gestionar los carritos que han sido abandonados, no olvides que en nuestro blog tienes este artículo sobre la gestión de carritos abandonados en WooCommerce, donde hablamos de las mejores estrategias para recuperar esas ventas perdidas y un video en YouTube sobre como escribir y configurar los mails que se envían a los usuarios.
TU WEB EN LAS PRIMERAS POSICIONES DE BÚSQUEDA
Sitúo tu web en la primera posiciones de búsqueda con creación de contenido y Copywriting, enlaces en medios digitales, publicidad en Google y otras técnicas de posicionamiento SEO Profesional.
🔥¡Descubre el verdadero potencial de tu sitio Web!🔥
1. Instalar y activar el plugin Code Snippet
Lo primero que necesitamos para vaciar el carrito en WooCommerce es instalar el plugin Code Snippet. Para hacerlo:
- Ve a Plugins > Añadir nuevo en tu panel de administración de WordPress.
- Busca “Code Snippet”.
- Instálalo y actívalo.
Este plugin nos permitirá añadir fragmentos de código de manera segura, sin tener que tocar los archivos del tema directamente, lo que facilita la personalización y mantiene el sitio limpio. Para más detalles sobre cómo optimizar tu tienda online y las mejores herramientas para ello, visita nuestro post sobre la optimización de WooCommerce.
2. Insertar el código para vaciar el carrito
Una vez que tienes Code Snippet instalado y activado, vamos a añadir el siguiente código que permitirá vaciar el carrito en WooCommerce de un cliente desde su ficha en WooCommerce.
phpCopiar código// Añadir un botón o enlace en la ficha del usuario para vaciar su carrito
add_action('show_user_profile', 'vaciar_carrito_usuario');
add_action('edit_user_profile', 'vaciar_carrito_usuario');
function vaciar_carrito_usuario($user) {
if (current_user_can('edit_users')) { // Asegúrate de que solo usuarios con permisos puedan ver esto
?>
<h3>Vaciar el carrito del usuario</h3>
<a href="<?php echo esc_url(admin_url('admin-post.php?action=vaciar_carrito_usuario&user_id=' . $user->ID)); ?>" class="button">Vaciar Carrito</a>
<?php
}
}
// Acción para vaciar el carrito del usuario
add_action('admin_post_vaciar_carrito_usuario', 'accion_vaciar_carrito_usuario');
function accion_vaciar_carrito_usuario() {
if (isset($_GET['user_id']) && current_user_can('edit_users')) {
$user_id = intval($_GET['user_id']);
// Asegurarse de que WooCommerce esté activo antes de intentar manipular la sesión
if (class_exists('WC_Session_Handler') && WC()->session) {
// Obtener la sesión del usuario para vaciar el carrito
WC()->session->destroy_session($user_id); // Vaciar la sesión del carrito del usuario
// Redirigir al perfil del usuario después de vaciar el carrito
wp_redirect(admin_url('user-edit.php?user_id=' . $user_id . '&carrito_vaciado=1'));
exit;
} else {
// Si WooCommerce no está disponible, mostrar un mensaje de error
wp_die('Error: WooCommerce no está disponible o no se puede acceder a la sesión.');
}
} else {
// Si no hay un user_id o permisos insuficientes, mostrar un error
wp_die('Error: Permisos insuficientes o el ID de usuario no es válido.');
}
}
3. Prueba y activa
Una vez que hayas añadido el código en Code Snippet, guarda y actívalo. Después, dirígete a la ficha de un cliente y verás el botón vaciar el carrito en WooCommerce.
Cómo funciona este código
Este código añade un botón “Vaciar Carrito” en la ficha del cliente dentro del panel de administración. Cuando el administrador hace clic en este botón, se vacía la sesión del carrito para ese cliente específico.
Para aquellos que están buscando más opciones para personalizar su tienda, puedes también revisar nuestro artículo sobre los mejores plugins para personalizar WooCommerce, donde mencionamos herramientas que pueden facilitar tareas como esta.
Recuerda que esta funcionalidad solo estará disponible para administradores o usuarios con permisos para editar usuarios en WordPress, lo que garantiza que no cualquier usuario tenga acceso a esta opción.
Si estás teniendo problemas con productos que no se eliminan o errores al manipular los carritos, consulta también nuestro post sobre problemas comunes en WooCommerce y sus posibles soluciones.
Botón Vaciar el carrito en WooCommerce visible para el cliente
Aunque realmente no es para el mismo fin que estamos tratando en este post, también puedes añadir un botón para vaciar el carrito un WooCommerce visible en la pantalla de finalizar compra de los clientes por medio de este plugin del desarrollador Enrique J. Ros.
Aunque, como el mismo comenta, es algo que se puede añadir, pero sí es por el fallo que nos acomete, tampoco está de más tener el control total y vaciar el carrito en WooCommerce nosotros manualmente si es algo puntual y no poner tan fácil a los usuarios poder vaciar su carrito de una sentada.
Ya sabes cómo insertar un botón para vaciar el carrito en WooCommerce
Este método no es algo que veamos todos los días en WooCommerce, pero tener la posibilidad de vaciar el carrito de un cliente directamente desde su perfil puede ser una gran ayuda en momentos en los que el carrito presenta errores. Además, usar Code Snippet te permite añadir esta funcionalidad de manera rápida y sin complicaciones.
Si te ha resultado útil este tutorial, te animo a que sigas explorando en nuestro blog otras formas de personalizar tu tienda WooCommerce para optimizar la experiencia tanto de los clientes como la de los administradores. Recuerda revisar nuestras guías sobre la gestión de carritos abandonados, la optimización de WooCommerce, y los mejores plugins para WooCommerce.