Как настроить элемент для отображения только в течение определенного периода времени в Wix с использованием JavaScript? - PullRequest
0 голосов
/ 08 ноября 2019

На моем сайте Wix есть кнопка чата. Я хочу, чтобы окно чата появлялось только в те дни и дни, когда я писал в наборе данных. Например, Это изображение примера набора данных . Что я пытаюсь сделать с набором данных, так это то, что окно чата будет появляться каждую субботу с 7 вечера. до 9 вечераКак я могу настроить, чтобы окно чата отображалось только в те времена с API даты Javascript.

Мой текущий код:

var day;
wixData.get("ScheduleTable", "day").then((results) => {
	 day = results;
})
.catch((err) => {
	let errorMSg= err;
})
	//StartTime
	var startTime;
	wixData.get("ScheduleTable", "startTime").then((results) => {
	 startTime = results;
})
.catch((err) => {
	let errorMSg= err;
})
//endTime
var endTime;
	wixData.get("ScheduleTable", "endTime").then((results) => {
	endTime = results;
})
.catch((err) => {
	let errorMSg= err;
})


$w.onReady(function () {
	//TODO: write your page related code here...
	
	var startD = new Date(Date.UTC(2019,10,day,startTime)); 
var endD = new Date(Date.UTC(2019,10,day,endTime));
var today = new Date();


if(today >= startD || today <= endD) {
  $w('#wixChat1').show();
} else {
   $w('#wixChat1').hide();
}
});

1 Ответ

0 голосов
/ 09 ноября 2019

Зачем вам нужно создавать базу данных только для 1 поля? Просто жестко запрограммируйте время на странице.

Скрыть приложение Wix Chat по умолчанию с помощью панели свойств.

$w.onReady(function () {
    var date = new Date();
    var day = date.getDay(); //Saturday is 6
    var time = date.getHours(); //7 pm is 19 & 9 pm is 21
    console.log({day,time}); //console to check day and current hour
    if(day === 6 && time >= 19 && time <= 21) {
        $w("#wixChat1").show();
    }
});

Если вы непреклонны в запросах к базе данных, выполните запрос, как показано ниже.

//---------------------Query

import wixData from 'wix-data';

$w.onReady(function () {
    getData();
});

function getData() {
    wixData.query('ScheduleTable') //database id
    .find()
    .then( (results) => {
        let Item = results.items[0]; //this returns the first item found in the database
        let start = Item.startTime; //this HAS to be a number and in 24 hr format
        let end = Item.endTime; //same as above
        decide(start, end);
    });
}

function decide(start, end) {
    var date = new Date();
    var day = date.getDay();
    var time = date.getHours();
    if(day === 6 && time >= start && time <= end) {
        $w("#wixChat1").show();
    }
}
...