【问题标题】:WordPress ContactForm7 datepicker field - disable/block specific dates?WordPress ContactForm7 日期选择器字段 - 禁用/阻止特定日期?
【发布时间】:2013-08-22 20:34:31
【问题描述】:

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

我的问题是(我已经搜索了高低的解决方案,但无济于事)有没有一种方法可以禁用或阻止在表单的此 datepicker 字段中选择特定日期?例如,有很多天不能参观(即假期和其他参观人员不在校园的日子),所以我不希望这些日期是可选的。

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

我的同事向我展示了一个网站,该网站在他们的旅游预订表单中使用了 jQuery/JS 日期选择器字段(但这不是 WordPress/ContactForm7 表单),并且他们能够在旅游不可用时阻止特定日期,所以我'我假设它应该是可能的......不知何故。

任何帮助将不胜感激! :)

编辑:

我找到了下面的代码,网站听起来就像我正在寻找的那样(使用类似于下面的答案之一的方法)但我真的不知道如何添加它到我的网站,以便它工作。我已将它添加到我的主题的 header.php 文件中,并将 id 设置为“#DisabledDates” - 这也是我在表单上设置的 datepicker 字段 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

【问题讨论】:

    标签: javascript jquery wordpress datepicker contact-form-7


    【解决方案1】:

    您必须访问 FTP 才能在 CF7 文件中的某处放置函数。

    或者您可能会找到 Wordpress 使用的类并过滤掉这些日期。

    【讨论】:

    • 嗨乔希,感谢您的回复。我对 CF7 文件不是很熟悉(我只是将它作为插件安装)——知道该去哪里吗?那个函数会是什么样子?
    【解决方案2】:

    可以通过两种方式完成

    • 设置 mindate 和 maxdate
    • 当您打开日期选择器并更改月份/年份时,它将在该月份和年份的每个日期触发 beforeShowDay 事件,您可以使用日期范围数组或对象检查该函数中的每个日期并返回 true 或 false .如果返回 false,则该日期将停用,如果返回 true,则该日期将处于活动状态

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

    描述是这样说的:“将开始和结束日期设置为实际日期(new Date(2009, 1 - 1, 26)),作为从今天开始的数字偏移量 (-20),或者作为一串句点和单位 ('+1M +10D')"

    【讨论】:

    • 嗨,泰特,感谢您的回复。老实说,我对 jQuery 不像对其他语言那么熟悉……CF7 中的日期选择器有“id”“类”“min”“max”和“step”的可选字段……我明白什么这些是基于 CF7 常见问题解答的,但是这些是您正在谈论的选项,还是您在较低级别谈论这些选项(即在某个地方的插件文件中?)...我找到了 date.php 文件我相信定义了日期选择器的功能,但我不知道如何或在哪里添加我需要添加的任何内容!有什么想法吗?
    • 与@Josh Riley 下面所说的类似,您需要通过 FTP 将其放入“插件文件某处”。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多