• Как добавить 2 картинки в post для разных экранов?

    AlekseySychev
    @AlekseySychev
    Программирую в небольшой веб-студии.
    Если вёрстка завязана на классах, то примерно так:
    <div class="blog-post__left">
    <?php if ( has_post_thumbnail()) { ?>
        <?php the_post_thumbnail('full', array(
        	'class' => 'blog__img_big',
        	'alt' => get_the_title(),
        )); ?>
        <?php the_post_thumbnail('medium', array(
        	'class' => 'blog__img_small',
        	'alt' => get_the_title(),
        )); ?>
    <?php } else { ?>
        <?php the_post_thumbnail('full', array(
        	'src' => get_template_directory() . '/images/no-image.jpg',
        	'class' => 'blog__img_big',
        	'alt' => get_the_title(),
        )); ?>
        <?php the_post_thumbnail('medium', array(
        	'src' => get_template_directory() . '/images/no-image-small.jpg',
        	'class' => 'blog__img_small',
        	'alt' => get_the_title(),
        )); ?>
    <?php } ?>
    </div>

    То что в else можно и статикой задать, так же как в вёрстке. Это если нет картинки.
    Ответ написан
    Комментировать
  • Почему сессия сбрасывается у неавторизованного пользователя без корзины?

    AlekseySychev
    @AlekseySychev Автор вопроса
    Программирую в небольшой веб-студии.
    Я буду проклят за этот код, но копание в плагине в общих чертах дало наводку.
    functions.php
    // сохранение просмотренных товаров
    add_action('template_redirect', function() {
        if (is_product()) {
            global $post;
            // поллучаем из ссесии
            $viewedProducts = WC()->session->get('viewed-products', array());
            // удаляем текущую, если она есть
            $viewedProducts = array_filter($viewedProducts, function($item) use($post) {
                if ($post->ID == $item) return false;
                else return true;
            });
            // добавляем текущий товар в начало списка
            array_unshift($viewedProducts, $post->ID);
            // сохраняем список в сессии
            WC()->session->set('viewed-products', $viewedProducts);
            // если для текущего пользователя нет сессии, сохраняем ее
            if (!WC()->session->has_session()) {
                WC()->session->set_customer_session_cookie(true);
            }
        }
    });

    получение ids просмотренных:
    // получаем список из сессии
    $viewedProducts = WC()->session->get('viewed-products', array());
    // больше 1, так как текущий не отображаем
    if( count($viewedProducts) > 1 ) {
        foreach ($viewedProducts as $viewed_id) {
            // пропускаем текущий
            if ($post->ID == $viewed_id) continue;
            // получаем товар
            $viewed = new WC_Product($viewed_id);
        }
    }
    Ответ написан
    Комментировать
  • Как записать строку в JSON-файл?

    AlekseySychev
    @AlekseySychev
    Программирую в небольшой веб-студии.
    Из js данные отправляете GET, а принимаете POST.
    И проверьте пути. Мне кажется в php адрес файла должен быть без /api/
    Ответ написан
    Комментировать
  • Как вывести значение одного цикла в другом?

    AlekseySychev
    @AlekseySychev
    Программирую в небольшой веб-студии.
    Странное использование array_reduce
    А какие исходные данные? Может быть должно быть что то вроде этого просто?
    $fieldValues = $ObjectField_name->field_name0->namer_ff;
    foreeach ($fieldValues as $fieldValue) {
        $list = trim($fieldValue->test_list);
        $text = trim($fieldValue->test_text);
        echo "<label><input type="{$list}">{$text}</label>";
    }
    Ответ написан
    Комментировать
  • Не могу понять логику работы json.Marshal. Почему на выходе пустой объект?

    AlekseySychev
    @AlekseySychev Автор вопроса
    Программирую в небольшой веб-студии.
    type Test struct {
    	Text string `json:"test"`
    }

    Вот так работает. Ответ нашел тут: Ссылка
    Ответ написан
    Комментировать