Search code examples
wordpressdatepickerjquery-ui-datepickercontact-form-7

Contact form 7 Datepicker, date range between 2 dates


I would like to have two date field in my Wordpress contact form 7. A start-date and an end-date. The fields will be datepickers from the "Contact Form 7 Datepicker" plugin. When visitor has selected a start-date he should only be able to select an end date that is 4 days later then the start-date.

How can I achieve this by only using the "contact form 7" form creator?


Solution

  • This is the syntax I put in the "contact form 7".

    Start date charter*:
    [date* date-start date-format:MM_d_yy]
    
    End date charter*:
    [date* date-end date-format:MM_d_yy]
    

    And I added this code to the end of the functions file of the Wordpress theme.

    function calendar_js(){
        ?>
        <script>
        jQuery(function($){
                var start = $('.date-start input').first();
                var end = $('.date-end input').first();
    
                start.on('change', function() {
                        var start_date = $(this).datepicker('getDate');
                        start_date.setDate(start_date.getDate() + 3);
                        end.datepicker('option', 'minDate', start_date);
                });
        });
        </script>
        <?php
        }
        add_action('wp_footer', 'calendar_js');
    

    Now the second date picker must be at least 4 days later then the first date picker.