0

私は現在、ユーザーが私たちの施設のツアーを予約できる WordPress サイトをインストールしています (私たちは大学です)。ContactForm7 プラグインを使用して、訪問者が連絡先情報を入力できるフォームをページ内に作成し、日付ピッカー フィールドを使用してツアーに参加したい特定の日付を選択できるようにしました。

私の質問は (これに対する解決策を高低で検索しましたが、役に立ちませんでした) フォームのこの日付ピッカー フィールドで特定の日付が選択されないように無効化またはブロックする方法はありますか? たとえば、ツアーが利用できない日がいくつかあります (つまり、祝日やその他のツアー スタッフがキャンパスにいない日) ため、これらの日付を選択可能にしたくありません。

プラグイン内でこれを行う方法はありますか、またはスクリプトを使用しているか別のプラグインを使用しているかに関係なく、他の方法でそれを行うことができますか?

私の同僚は、ツアー予約フォーム (ただし、これは WordPress/ContactForm7 フォームではありません) で jQuery/JS 日付ピッカー フィールドを使用するサイトを見せてくれました。ツアーが利用できない場合、特定の日付をブロックできるので、私は推測していますそれは可能なはずです...どういうわけか。

どんな助けでも大歓迎です!:)

編集:

私は以下のコードを見つけました.Webサイトは私が探していることを正確に実行するように聞こえます(以下の回答の1つに似た方法を使用しています)が、それを私のそれが機能するようにサイト。テーマの 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>

これが私が見つけた場所です(datepickerがプラグインに追加される前に、datepickerフィールドでCF7を拡張するために存在していたプラグインのように見えます...しかし、それでも同様に機能するはずだと思いますか?):https://github. com/relu/contact-form-7-datepicker/issues/37

4

2 に答える 2

0

関数を CF7 ファイルのどこかに配置するには、FTP にアクセスする必要があります。

または、Wordpress が使用するクラスを見つけて、それらの日付を除外することができます。

于 2013-08-20T17:17:57.277 に答える
0

それは2つのタイプによって行うことができます

  • mindate と maxdate を設定する
  • 日付ピッカーを開いて月/年を変更すると、その月と年の各日付でイベント beforeShowDay が発生し、日付範囲配列またはオブジェクトを使用してその関数の各日付を確認し、true または false を返すことができます。false の場合、その日付は非アクティブになり、true の場合、その日付はアクティブになります

このリンクをチェックしてください: http://jqueryui.com/demos/datepicker/#inline http://jqueryui.com/demos/datepicker/#min-max

説明には、「開始日と終了日を実際の日付 (new Date(2009, 1 - 1, 26))、今日からの数値オフセット (-20)、または期間と単位の文字列 (' +1M +10D')"

于 2013-08-20T17:19:49.990 に答える