Hello,
I have two fields with entries: Start Time (integer) and End Time (integer).
I want to disable the “Order” button on a product page.
In the console, I only see the default values.
Here is a script. I’m using it in “theme liquid” file.
Doesn’t matter what I’m using “product metafields …” or “shop metafields”
document.addEventListener('DOMContentLoaded', function() {
var orderButton = document.getElementById('ProductSubmitButton-template--23907597549899__main');
var metafieldData = {
startHour: "{{ shop.metafields.product_button.start | default: 10 }}",
endHour: "{{ shop.metafields.product_button.end | default: 20 }}"
};
console.log('Start Hour:', metafieldData.startHour);
console.log('End Hour:', metafieldData.endHour);
function checkOrderTime() {
var currentHour = new Date().getHours();
console.log('Current Hour:', currentHour);
if (currentHour < metafieldData.startHour || currentHour >= metafieldData.endHour) {
if (orderButton) {
orderButton.disabled = true;
orderButton.style.opacity = '0.5';
orderButton.title = '' + metafieldData.startHour + ':00 - ' + metafieldData.endHour + ':00';
}
} else {
if (orderButton) {
orderButton.disabled = false;
orderButton.style.opacity = '1';
orderButton.title = '';
}
}
}
checkOrderTime();
});