SquareSpace中如何隐藏可用时段为0的预约类型?
SquareSpace中如何隐藏可用时段为0的预约类型?
嘿,这个问题我太懂了!之前帮朋友处理过Squarespace预约模块的类似问题,默认情况下确实不会自动隐藏售罄的课程预约类型,不过有两个实用的办法可以解决:
手动快速处理(适合课程数量少的情况)
每次课程售罄后,你可以直接进后台操作:打开「预约」面板,找到对应的课程预约类型,点击编辑,然后在「显示设置」里关掉「在预订页面显示」的开关。这样它就不会出现在Scheduling Block里了,等下次要开放报名时再打开就行。这个方法简单直接,不用碰代码,就是需要手动跟进每门课的状态。自动隐藏的代码方案(适合课程多、想省事儿的情况)
如果你想让系统自动识别售罄的课程并隐藏,就得用点自定义JavaScript代码。步骤很简单:- 打开你放了Scheduling Block的页面,进入编辑模式,添加一个「代码块」;
- 把代码块的类型改成「JavaScript」,然后粘贴下面这段代码:
document.addEventListener('DOMContentLoaded', function() { // 定时检查,因为预约模块是异步加载的 const checkInterval = setInterval(() => { const appointmentItems = document.querySelectorAll('.sqs-scheduling-appointment-type-item'); if (appointmentItems.length) { clearInterval(checkInterval); appointmentItems.forEach(item => { // 检测是否有“无可用时段”的标记元素 const noSlotsElement = item.querySelector('.sqs-scheduling-appointment-type-no-slots'); if (noSlotsElement) { item.style.display = 'none'; } }); } }, 500); }); - 保存代码块,预览页面就能看到售罄的课程已经自动隐藏啦。
小提醒:这段代码是基于当前Squarespace预约模块的页面结构写的,如果之后平台更新了模板或模块结构,可能需要调整代码里的元素类名——你可以用浏览器的开发者工具(按F12)查看售罄课程对应的元素类,替换掉代码里的选择器就行。
备注:内容来源于stack exchange,提问作者Katie
相关产品推荐
相关产品推荐

