Codigo Para Integrar Boton de Whatsapp al Woocomerce Personalizado - Wordpress

// Función para generar el mensaje de WhatsApp con los productos en el carrito y datos del cliente

function generar_mensaje_whatsapp() {

    // Obtener productos en el carrito

    $productos_carrito = WC()->cart->get_cart();


    // Obtener datos de mi cuenta (checkout)

    $nombre_cliente = WC()->checkout()->get_value('billing_first_name');

    $apellidos_cliente = WC()->checkout()->get_value('billing_last_name');

    $email_cliente = WC()->checkout()->get_value('billing_email');

    $empresa_cliente = WC()->checkout()->get_value('billing_company'); // Nuevo campo


    $pais_cliente = WC()->checkout()->get_value('billing_country');

    $provincia_cliente = WC()->checkout()->get_value('billing_state');

    $ciudad_cliente = WC()->checkout()->get_value('billing_city');

    $direccion_cliente = WC()->checkout()->get_value('billing_address_1');

    $codigo_postal_cliente = WC()->checkout()->get_value('billing_postcode');


    // Combinar nombre y apellidos

    $nombre_completo_cliente = $nombre_cliente . ' ' . $apellidos_cliente;


    // Inicializar el mensaje

    $mensaje = "¡Hola! Quiero realizar un pedido:\n";

    $mensaje .= "*DATOS DE CLIENTE*:\n";

    $mensaje .= "Cliente: $nombre_completo_cliente\n";

    $mensaje .= "Correo electrónico: $email_cliente\n";

    $mensaje .= "Empresa: $empresa_cliente\n"; // Nuevo campo


    $mensaje .= "País: $pais_cliente\n";

    $mensaje .= "Provincia: $provincia_cliente\n";

    $mensaje .= "Ciudad: $ciudad_cliente\n";

    $mensaje .= "Dirección: $direccion_cliente\n";

    $mensaje .= "Código postal: $codigo_postal_cliente\n\n";


    $mensaje .= "*TIPOS DE ENVIOS*:\n";

    $mensaje .= "Servientrega\n\n";


    $mensaje .= "*FORMAS DE PAGO*:\n";

    $mensaje .= "Transferencia bancaria\n";

    $mensaje .= "Consultar datos por WhatsApp\n\n";


    // Verificar si el carrito tiene productos

    $mensaje .= "*ITEMS A PEDIR*:\n";

    $total = 0;

    if (!empty($productos_carrito)) {

        foreach ($productos_carrito as $producto) {

            $nombre_producto = strip_tags($producto['data']->get_name());

            $cantidad = $producto['quantity'];

            $precio = wc_get_price_to_display($producto['data']); // Obtener el precio numérico

            $precio_formateado = html_entity_decode(strip_tags(wc_price($precio))); // Decodificar entidades HTML

            $url_producto = esc_url(get_permalink($producto['product_id']));


            $total += $precio * $cantidad;


            // Agregar detalles del producto al mensaje con formato Markdown

            $mensaje .= "$cantidad x [$nombre_producto] - $precio_formateado\n";

            $mensaje .= "($url_producto)\n\n";

        }


        $mensaje .= "*UNIDADES TOTALES*:\n";

        $mensaje .= WC()->cart->get_cart_contents_count() . "\n\n";


        $mensaje .= "*TOTAL*:\n";

        $mensaje .= html_entity_decode(strip_tags(wc_price($total))) . "\n"; // Decodificar entidades HTML

    } else {

        // Si el carrito está vacío, agregar un mensaje indicando esto

        $mensaje .= "Carrito vacío\n";

    }


    echo nl2br($mensaje);

    return rawurlencode($mensaje);

}


// Eliminar el botón "Realizar pedido" y agregar el botón de WhatsApp en el checkout

function agregar_boton_whatsapp_checkout() {

    $whatsapp_numero = '+593978907442'; // Reemplaza con tu número de WhatsApp, incluyendo el prefijo internacional

    $mensaje_whatsapp = generar_mensaje_whatsapp();


    // Ruta de la imagen del icono de WhatsApp (ajústala según la ubicación de tu archivo de imagen)

    $icono_whatsapp_url = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggzs9vLsf4gZGX_Ks-xowgSvTfOhULhr34yMuLrUiPDFN3NeW8Ay_ikVi2nC-36zMgCwfN8hIXFebQUOqfGA2UZC__UeugC77LuC2fbHtkrhHf9Kx0ayDtWpAmbhTk79Nsm26_f029eKkdgIXEJRAFrTksq2tNAWsv8NSs5bG0Qokio9eCHDpgOiozdali/s201/whatsapp.png';


    // Agregar botón de WhatsApp

    echo '<a href="#" onclick="abrirWhatsApp(\'' . $whatsapp_numero . '\', \'' . $mensaje_whatsapp . '\')" class="button boton-whatsapp">';

    echo '<img src="' . $icono_whatsapp_url . '" alt="WhatsApp Icono" class="whatsapp-icon">'; // Agrega la etiqueta de imagen

    echo 'Comunícate y Realiza el pedido Directo por WhatsApp</a>';


    // Agregar script JavaScript

    echo '<script>

        function abrirWhatsApp(numero, mensaje) {

            var mensajeDecodificado = decodeURIComponent(mensaje.replace(/%2F/g, "/").replace(/%0A/g, "\n").replace(/%20/g, " "));

            var urlWhatsApp = "https://api.whatsapp.com/send?phone=" + encodeURIComponent(numero) + "&text=" + encodeURIComponent(mensajeDecodificado);

            window.open(urlWhatsApp, "_blank");

        }

    </script>';

}


// Agregar el botón de WhatsApp en el checkout

add_action('get_footer', 'agregar_boton_whatsapp_checkout', 20);


// Ocultar el botón "Realizar pedido" con CSS

function ocultar_boton_place_order_css() {

    // Verifica si estás en la página de pago

    if (is_checkout()) {

        echo '<style>#place_order { display: none !important; }</style>';

    }

}


// Agrega el filtro para ejecutar la función en el hook de WooCommerce

add_action('get_footer', 'ocultar_boton_place_order_css');


// Función para agregar estilos CSS en línea

function agregar_estilos_css() {

    ?>

    <style>

        .boton-whatsapp {

            display: flex;

            align-items: center;

        }


        .whatsapp-icon {

            margin-right: 5px; /* Ajusta el margen según sea necesario */

            width: 20px;

            height: auto;

        }

    </style>

    <?php

}


// Agregar la función a través del hook wp_footer

add_action('get_footer', 'agregar_estilos_css');

No hay comentarios:

Publicar un comentario

Gracias por su mensaje, en breve le atenderemos.