Mostrar botón de Whatsapp las 24 horas en mi sitio web (Prestashop)

  • Autor Autor Baldomero Gar
  • Fecha de inicio Fecha de inicio
B

Baldomero Gar

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas tardes. ¿Alguien sabe qué cambios tendría que hacer en este código para que el botón Whatsapp se mostrase durante las 24 horas y no de 7 de la mañana a 15 horas como ocurre ahora? Mi web es www.gamalux.es (Prestashop) GRACIAS

{
let $ = jQuery;
console.log("whatsapp 2.7");
let abierto;
function compruebaHorario(){
var fecha = new Date();
var diaSemana = fecha.getDay();
var hora = fecha.getHours();
console.log("dia semana: " + diaSemana);
if(diaSemana < 6){
if( hora > 7 && hora < 22){
abierto = 1;
}
}
}
compruebaHorario();
if(abierto){
$( "body" ).append( "<div class='whatsapp sticky' data-phone='34644953031' data-action='contact' data-text=''></div>" );
$(".whatsapp").click(function(e){
var action = e.target.dataset["action"];
if (action == "share"){
var text = e.target.dataset["text"];
var url = window.location.href; //sharing_url;
var message = encodeURIComponent(text) + "-" + encodeURIComponent(url);
if($(window).width()>768){
var whatsapp_url = "https://web.whatsapp.com/send?text=" + message;
}else{
var whatsapp_url = "https://api.whatsapp.com/send?text=" + message;
}
}
if (action == "contact"){
var phone = e.target.dataset["phone"];
if($(window).width()>768){
var whatsapp_url = "https://web.whatsapp.com/send?phone=" + phone;
}else{
var whatsapp_url = "https://api.whatsapp.com/send?phone=" + phone;
}
}
//window.location.href = whatsapp_url;
window.open(whatsapp_url, '_blank');
});
}
}
 
reemplaza
JavaScript:
if( hora > 7 && hora < 22){
abierto = 1;
}
por
JavaScript:
abierto=1;
 
Yo lo dejaría así, más limpio, lo demás sobra completamente si quieres que el botón se muestre siempre:

JavaScript:
{
    let $ = jQuery;

    $("body").append("<div class='whatsapp sticky' data-phone='34644953031' data-action='contact' data-text=''></div>");
    
    $(".whatsapp").click(function (e) {
        var action = e.target.dataset["action"];

        if (action == "share") {
            var text = e.target.dataset["text"];
            var url = window.location.href; //sharing_url;
            var message = encodeURIComponent(text) + "-" + encodeURIComponent(url);

            if ($(window).width() > 768) {
                var whatsapp_url = "https://web.whatsapp.com/send?text=" + message;
            } else {
                var whatsapp_url = "https://api.whatsapp.com/send?text=" + message;
            }
        }

        if (action == "contact") {
            var phone = e.target.dataset["phone"];

            if ($(window).width() > 768) {
                var whatsapp_url = "https://web.whatsapp.com/send?phone=" + phone;
            } else {
                var whatsapp_url = "https://api.whatsapp.com/send?phone=" + phone;
            }
        }

        window.open(whatsapp_url, '_blank');
    });
}
 
Yo lo dejaría así, más limpio, lo demás sobra completamente si quieres que el botón se muestre siempre:

JavaScript:
{
    let $ = jQuery;

    $("body").append("<div class='whatsapp sticky' data-phone='34644953031' data-action='contact' data-text=''></div>");
   
    $(".whatsapp").click(function (e) {
        var action = e.target.dataset["action"];

        if (action == "share") {
            var text = e.target.dataset["text"];
            var url = window.location.href; //sharing_url;
            var message = encodeURIComponent(text) + "-" + encodeURIComponent(url);

            if ($(window).width() > 768) {
                var whatsapp_url = "https://web.whatsapp.com/send?text=" + message;
            } else {
                var whatsapp_url = "https://api.whatsapp.com/send?text=" + message;
            }
        }

        if (action == "contact") {
            var phone = e.target.dataset["phone"];

            if ($(window).width() > 768) {
                var whatsapp_url = "https://web.whatsapp.com/send?phone=" + phone;
            } else {
                var whatsapp_url = "https://api.whatsapp.com/send?phone=" + phone;
            }
        }

        window.open(whatsapp_url, '_blank');
    });
}
GRACIAS, crack!
 
Buenas! Lo siento pero el botón no ha aparecido durante el fin de semana, ni tampoco fuera del horario de 7 a 15

¿Se os ocurre algo? ¿Es posible que esté tirando de algún modo del horario de Google My Bussines?????

Gracias por adelantado!
 
¡Ya funciona! Mil gracias a todos
 
Hola te recomiendo nuestro widget para prestashop. Es bastante completo y ofrece muchas opciones extra sobre todo para recuperar carritos de la compra con WhatsApp.
 
mejor sin jquery
JavaScript:
const whinfo = {
    phone: "34644953031",
    action: "contact",
    text: ""
};
const whatsappBtn = () => {
    const button = document.createElement("div");
    button.className = "whatsapp sticky";
    for (let key in whinfo) {
        button.setAttribute("data-" + key, whinfo[key]);
    }
    const clickHandler = e => {
        const currentURL = window.location.href,
            end = (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) ? "api" : "web",
            action = whinfo.action == "share" ? "text" : "phone",
            message = action == "text" ? encodeURIComponent(`${whinfo.text}-${currentURL}`) : whinfo.phone;
        window.open(`https://${end}.whatsapp.com/send?${action}=${message}`, '_blank');
    }
    button.addEventListener("click", clickHandler, false);
    document.body.appendChild(button);
}
document.addEventListener("DOMContentLoaded", whatsappBtn);
 
Última edición:
Atrás
Arriba