Моя минимальная дата не работает в средстве выбора даты в WordPress - PullRequest
1 голос
/ 16 января 2020

Я работаю над своим проектом WordPress, используя Elementor. В этом я использовал форму Elementor со средством выбора даты, и я написал код для минимальной даты, но он не работает.

Это моя форма со средством выбора даты во всплывающем окне:

Я также могу выбрать предыдущую дату, которая не должна происходить.

enter image description here

Мой код добавлен в функции. php:

add_action( 'wp_footer', function() {
?>
<script type="text/javascript">
    jQuery( window ).load( function( $ ){
        var limitFlatPicker;
        var afterTwoDays;
        var afterEightDays;
        limitFlatPicker = limitFlatPicker || {};
        limitFlatPicker = {
            defaultSettings: {
                selector: '.flatpickr-input',
                minDate: false,
                maxDate: false,
            },
            settings: {},
            init: function( options ) {
                this.settings = jQuery.extend( this.defaultSettings, options );
                if ( this.settings.minDate || this.settings.maxDate ) {
                    this.waitForFlatpicker( this.callback );
                }
            },
            waitForFlatpicker: function( callback ) {
                if ( typeof window.flatpickr !== 'function' ) {
                    setTimeout( function() { limitFlatPicker.waitForFlatpicker( callback ) }, 100 );
                }
                callback();
            },
            modifyPicker: function( picker, settings ) {
                flatpickr( picker ).set( settings );
            },
            callback: function() {
                var self;
                self = limitFlatPicker;
                jQuery( self.settings.selector ).each( function() {
                    var picker;
                    picker = jQuery( this )[0],
                    pickerSettings = {};

                    if ( self.settings.minDate ) {
                        pickerSettings['minDate'] = self.settings.minDate;
                    }
                    if ( self.settings.maxDate ) {
                        pickerSettings['maxDate'] = self.settings.maxDate;
                    }
                    self.modifyPicker( picker, pickerSettings );
                } );
            }
        }

            limitFlatPicker.init( {
                minDate: new Date(),
                selector: '#form_field_date',
            } );            
            <?php 

            if ( is_page( 207 ) || is_page( 215 )) {
            ?>
            limitFlatPicker.init( {
                minDate: new Date(),
                selector: '#form_field_date',
            } );            
            <?php 
                } 
            ?>
            limitFlatPicker.init( {
                minDate: new Date(),
                selector: '#form_field_date',
            } );

    } );
</script>

<?php
},11);

Мой это не работает, потому что я могу выберите предыдущую дату также.

Мой селектор: form-field-form_field_date

Мой выбор даты:

<input type="text" name="form_fields[form_field_date]" id="form-field-form_field_date" class="elementor-field elementor-size-md elementor-field-textual elementor-date-field flatpickr-input active" placeholder="Start Date*" required="required" aria-required="true" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}">

Код работает, когда я добавляю форму в страницы, но когда форма находится во всплывающем окне, код не работает, потому что в нижнем колонтитуле появляется код всплывающей подсказки.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 17 января 2020

Я решил эту проблему, переместив форму на страницу, вместо всплывающего окна, потому что код нижнего всплывающего окна поступает в нижний колонтитул, а также код сценария, и я думаю, что именно поэтому сценарий не работает во всплывающем окне.

Форма на странице теперь работает нормально, но форма во всплывающем окне все еще не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...