
Compartir carrito de WooCommerce
Si tienes una tienda online con WordPress y WooCommerce ya sabes que existen cientos de plugins para cualquier cosa, pero… ¿te imaginas poder facilitar que tus clientes puedan compartir su carrito de la compra con sus amigos sin que tú tengas que instalar ningún plugin ni sobrecargar tu servidor web?
Sólo tendrás que insertar un sencillo código PHP que puedes personalizar a tu gusto, para conseguir un botón que permita a tus clientes copiar un enlace de su carrito de la compra en el portapapeles, posteriormente pueden enviar dicho enlace a sus amigos a través de e-mail, mensajería o redes sociales, simplemente pegándolo.
El receptor del mensaje podrá cargar el carrito recibido en su propio carrito para revisar los productos y/o comprarlos.
El servicio de atención al cliente de la tienda podría usar esta función para recibir el contenido del carrito de un cliente y ayudarle a completar la compra.
Código PHP para Compartir carrito de WooCommerce y restaurarlo
function compartir_carrito_woocommerce() {
if (is_cart()) {
$cart_contents = WC()->cart->get_cart();
if (!empty($cart_contents)) {
$cart_data = [];
foreach ($cart_contents as $item) {
$product_id = $item['product_id'];
$quantity = $item['quantity'];
$cart_data[] = "$product_id:$quantity";
}
$encoded_cart = urlencode(implode(',', $cart_data));
$share_url = home_url("?shared_cart=$encoded_cart");
echo '<button type="button" class="button" id="btnCompartirCarrito">Copiar carrito (para compartirlo)</button>';
echo '<script>
document.addEventListener("DOMContentLoaded", function() {
let shareButton = document.getElementById("btnCompartirCarrito");
shareButton.addEventListener("click", function() {
let shareUrl = "'. esc_js($share_url) .'";
navigator.clipboard.writeText(shareUrl).then(function() {
alert("Un enlace a tu carrito actual ha sido copiado al portapapeles, comparte tu lista de la compra pegando el enlace por e-mail, mensajería o redes sociales.");
}).catch(function(err) {
console.error("Error al copiar el enlace a tu carrito: ", err);
});
});
});
</script>';
}
}
}
add_action('woocommerce_cart_actions', 'compartir_carrito_woocommerce', 4);
function restaurar_carrito_compartido() {
if (isset($_GET['shared_cart'])) {
WC()->cart->empty_cart(); // Vaciar el carrito actual
$cart_data = explode(',', sanitize_text_field($_GET['shared_cart']));
foreach ($cart_data as $item) {
list($product_id, $quantity) = explode(':', $item);
WC()->cart->add_to_cart($product_id, $quantity);
}
wp_safe_redirect(wc_get_cart_url());
exit;
}
}
add_action('wp', 'restaurar_carrito_compartido');
Instrucciones para insertar el código:
Hemos preparado un post con instrucciones detalladas sobre como insertar este o cualquier otro código PHP usando functions.php, el plugin code snippets o creando tu propio plugin, para acceder al mismo pulsa el siguiente enlace: ¿Cómo insertar código PHP en WordPress?
Hemos preparado un post con instrucciones detalladas sobre como insertar este o cualquier otro código PHP usando functions.php, el plugin code snippets o creando tu propio plugin, para acceder al mismo pulsa el siguiente enlace: ¿Cómo insertar código PHP en WordPress?
Las ventajas de usar un código simple en lugar de instalar un plugin es la de mantener tu tienda online optimizada sin sobrecargar el servidor y manteniendo tiempos de carga rápidos.