我目前安装了一个 WordPress 网站,用户可以在其中预订参观我们的设施(我们是一所大学)。我使用 ContactForm7 插件在页面中创建一个表单,访问者可以在其中输入他们的联系信息,然后可以使用日期选择器字段来选择他们想要进行游览的具体日期。
我的问题是(我已经四处寻找解决方案,但无济于事)有没有办法可以禁用或阻止在表单的此日期选择器字段中选择特定日期?例如,有很多天不提供旅游(即节假日和旅游工作人员不在校园的其他日子),所以我不希望这些日期可供选择。
有没有办法在插件中执行此操作,或者是否有其他方法可以执行此操作,无论是使用脚本还是通过其他插件?
我的同事向我展示了一个在旅游预订表单中使用 jQuery/JS 日期选择器字段的网站(但这不是 WordPress/ContactForm7 表单),并且他们能够在旅游不可用时阻止特定日期,所以我假设这应该是可能的......不知何故。
任何帮助将不胜感激! :)
编辑:
我找到了下面的代码,该网站听起来它会完全满足我的要求(使用类似于下面答案之一的方法),但我真的不知道如何将其添加到我的网站才能正常运行。我已将其添加到主题的 header.php 文件中,并将 id 设置为“#DisabledDates” - 这也是我在表单上设置的日期选择器字段 id...但是我为“unavailableDates”设置的日期仍然可以选择......有什么想法吗?
<?php if ($post->ID==16) { ?>
<script type="text/javascript">
var unavailableDates = ["9-5-2013", "10-5-2013", "11-5-2013", "12-5-2013", "13-5-2013", "14-5-2013", "15-5-2013", "16-5-2013", "17-5-2013", "18-5-2013", "19-5-2013", "20-5-2013", "21-5-2013", "22-5-2013", "23-5-2013", "24-5-2013"];
jQuery(function($){
$( "#DisabledDates" ).datepicker({
minDate: 5,
beforeShowDay: function(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
});
});
</script>
这是我找到它的地方(它看起来像是一个在日期选择器添加到插件之前使用日期选择器字段扩展 CF7 的插件......但我假设它仍然应该类似地工作?): https:// github.com/relu/contact-form-7-datepicker/issues/37
您必须访问 FTP 才能将函数放入 CF7 文件中的某个位置。
或者您可以找到 WordPress 使用的类并过滤掉这些日期。
可以通过两种方式来完成
查看此链接:http://jqueryui.com/demos/datepicker/#inline http://jqueryui.com/demos/datepicker/#min-max
描述是这样说的:“将开始日期和结束日期设置为实际日期 (new Date(2009, 1 - 1, 26))、从今天开始的数字偏移量 (-20) 或一串期间和单位 ( ‘+1M +10D’)”