Контактная форма 7 DatePicker - формат даты не работает на другом языке, кроме английского - PullRequest
0 голосов
/ 16 ноября 2018

У меня установлен плагин Contact Form Datepicker (версия 2.6.0) и простая форма контакта, подобная этой:

[date date-508 id:date-508 date-format:dd.mm.yy]

Формат даты dd.mm.yy отображается правильно только на английском языке.

Как только я изменю страницу на любой другой язык, она будет отображаться как: дд / мм / гг: 01/11/2018

У меня WPML 4.0.8. Окно DatePicker переведено на другие языки, но формат выбранной даты неправильный.

Есть идеи, как это отладить? Что вызывает такое поведение?

Спасибо

1 Ответ

0 голосов
/ 19 ноября 2018

Обнаружено, что DatePicker контактной формы 7 загружает региональные настройки из внешних файлов, например: https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/i18n/datepicker-fr.min.js Эти файлы содержат формат dateFormat: «дд / мм / гг», который изменяет формат, объявленный датщиком.

Я изменил contact-form-7-datepicker.php для загрузки файлов из локального хранилища. Конечно, мне пришлось загрузить их и изменить формат даты в них.

Итак, изменение выглядит так:

public static function enqueue_js() {
        $regional = CF7_DateTimePicker::get_regional_match();
        $proto = is_ssl() ? 'https' : 'http';

        if (! empty($regional)) {
            wp_enqueue_script(
                'jquery-ui-' . $regional,
                plugins_url('js/i18n/datepicker-' . $regional . '.min.js', __FILE__),  // Gabriel - to change format date in input
                // $proto . '://ajax.googleapis.com/ajax/libs/jqueryui/' . self::JQUERYUI_VERSION . '/i18n/datepicker-' . $regional . '.min.js',  // original code
                array('jquery-ui-datepicker'),
                self::JQUERYUI_VERSION,
                true
            );

Это не лучшее решение, поскольку в будущем обновлении файл php будет перезаписан.

Я бы предпочел функцию javascript, которая снова переопределит dateFormat, но ничего не сработало.

...