Задать вопрос
  • Эмулятор iPad Safari

    www.browserstack.com - эмулятор всех браузеров под любой OS
    Есть триал, 100% работает, проверил, даже с локалкой.
    Ответ написан
    1 комментарий
  • Вывод даты в родительном падеже в jQueryUI Datepicker?

    Tehnomag
    @Tehnomag
    Ну вот стандартный подход, там же две переменные для месяца
    monthNamesShort и monthNames.
    Длинное описание не трогаем, а короткое описываем по своему и выводим в input короткое.

    JavaScript:
    $.datepicker.setDefaults( $.datepicker.regional[ "ru" ] );
    
    $('#myDate').datepicker({
        clickInput: true,
        monthNamesShort: [ "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря" ],
        dateFormat:"DD, d M, yy",
    });


    HTML:
    <div class="input-prepend"> 
    <span class="add-on"><i class="icon-calendar"></i></span>
            <input class="span5" id="myDate" type="text"></input>
    </div>
    Ответ написан
    1 комментарий
  • Как добавить в карточку товара Woo простой календарь?

    @eratnikstudio Автор вопроса
    Сам решил. Пользуйтесь кому надо

    // Добавление поля выбора даты на страницу товара
    function add_datepicker_to_product_page() {
        global $product;
        
        // Проверяем, является ли текущая страница товаром
        if ( ! is_product() ) {
            return;
        }
        
        // Получаем текущую выбранную дату (если есть)
        $selected_date = WC()->session->get( 'selected_date' );
        
        // Выводим HTML-элемент с календарем выбора даты
        echo 'Select date<input type="text" id="date_field" name="date_field" placeholder="Select the check-in date" value="' . esc_attr( $selected_date ) . '" required>';
        
        // Загружаем необходимые скрипты и стили
        wp_enqueue_script( 'jquery-ui-datepicker' );
        wp_enqueue_style( 'jquery-ui-css', 'https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css' );
        
        // Инициализируем выбор даты через JavaScript
        echo '<script>
            jQuery(document).ready(function($){
                $("#date_field").datepicker({
                    dateFormat: "yy-mm-dd",
                    onSelect: function(dateText) {
                        // При выборе даты сохраняем ее в сессию
                        $.ajax({
                            url: wc_add_to_cart_params.ajax_url,
                            method: "POST",
                            data: {
                                action: "save_selected_date",
                                selected_date: dateText
                            },
                            success: function(response) {
                                console.log("Выбранная дата сохранена");
                                $( document.body ).trigger( "update_checkout" );
                            }
                        });
                    }
                });
            });
            </script>';
    }
    add_action( 'woocommerce_before_add_to_cart_button', 'add_datepicker_to_product_page' );
    
    // Сохранение выбранной даты при добавлении товара в корзину
    add_action( 'woocommerce_add_cart_item_data', 'save_selected_date', 10, 3 );
    function save_selected_date( $cart_item_data, $product_id, $variation_id ) {
        if ( ! empty( $_POST['date_field'] ) ) {
            $cart_item_data['selected_date'] = sanitize_text_field( $_POST['date_field'] );
        }
        return $cart_item_data;
    }
    
    // Отображение выбранной даты в корзине
    add_filter( 'woocommerce_cart_item_name', 'display_selected_date_in_cart', 10, 3 );
    function display_selected_date_in_cart( $product_name, $cart_item, $cart_item_key ) {
        if ( isset( $cart_item['selected_date'] ) ) {
            $product_name .= '<br><small>' . __('Check-in date') . ': ' . $cart_item['selected_date'] . '</small>';
        }
        return $product_name;
    }
    
    // Отображение выбранной даты на странице оформления заказа
    add_action( 'woocommerce_review_order_before_payment', 'display_selected_date_on_checkout' );
    function display_selected_date_on_checkout() {
        $cart = WC()->cart;
        
        if ( ! $cart->is_empty() ) {
            foreach ( $cart->get_cart() as $cart_item ) {
                if ( isset( $cart_item['selected_date'] ) ) {
                    echo '<div>' . __('Check-in date') . ': ' . $cart_item['selected_date'] . '</div>';
                }
            }
        }
    }
    Ответ написан
    Комментировать