WordPress ContactForm7日期选择器字段-禁用/阻止特定日期

WordPress ContactForm7 datepicker field - disable/block specific dates?

本文关键字:日期 ContactForm7 选择器 字段 WordPress 禁用      更新时间:2023-09-26

我目前安装了一个WordPress网站,用户可以在这里预订我们设施的参观(我们是一所大学)。我使用了ContactForm7插件在页面中创建了一个表单,访问者可以在其中输入他们的联系信息,然后可以使用日期选择器字段来选择他们想要旅行的特定日期。

我的问题是(我已经到处寻找解决方案,但都无济于事)有没有一种方法可以禁用或阻止在表单中的日期选择器字段中选择特定日期?例如,有很多天旅游不可用(即假期和其他旅游人员不在校园的日子),所以我不希望这些日期是可选的。

有没有一种方法可以在插件中做到这一点,或者有没有其他方法可以做到,无论是使用脚本还是通过另一个插件?

我的同事给我看了一个网站,它在旅游预订表格中使用了jQuery/JS日期选择器字段(但这不是WordPress/ContactForm7表格),当旅游不可用时,他们可以阻止特定的日期,所以我认为这应该是可能的。。。以某种方式

如有任何帮助,我们将不胜感激!:)

编辑:

我找到了下面的代码,网站听起来就像是在做我想要的事情(使用一种类似于下面答案的方法),但我真的不知道如何将它添加到我的网站上,使其发挥作用。我已经将其添加到主题的header.php文件中,并将id设置为"#DisabledDates"——这也是我在表单上设置日期选择器字段id的原因。。。但我为"不可用日期"设置的日期仍然可以选择。。。有什么想法吗?

<?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使用的类并过滤掉这些日期。

可以通过两种类型的来完成

  • 设置mindate和maxdate
  • 当您打开日期选择器并更改月份/年份时,它将在ShowDay之前激发一个事件,每个日期都在该月份和年份,您可以使用日期范围数组或对象检查该函数中的每个日期,并返回true或false。如果返回错误,则该日期将无效,而在返回正确时,该日期将有效

查看此链接:http://jqueryui.com/demos/datepicker/#inlinehttp://jqueryui.com/demos/datepicker/#min-最大

描述是这样说的:"将开始和结束日期设置为实际日期(新日期(2009,1-1,26)),设置为从今天开始的数字偏移量(-20),或设置为一系列周期和单位('+1M+10D')"