• Как ускорить скорость загрузки сайта, метрика и движовосайт тянут вниз?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Отложить загрузку на 5 секунд - выход, но грубоватый (имхо конечно). Я делаю по-другому - оборачиваю код в скролл-ивент + задержка в 1 секунду. То есть, сайт загрузился быстро, и как только пользователь начал скроллить хоть чуть-чуть - секундный таймаут и загрузка дополнительных ресурсов. Гугл доволен, пользователи вообще не замечают задержки:

    var fired = false;
    
    window.addEventListener('scroll', () => {
        if (fired === false) {
            fired = true;
            
            setTimeout(() => {
                // Здесь все эти тормознутые трекеры, чаты и прочая ересь,
                // без которой жить не может отдел маркетинга, и которые
                // дико бесят разработчиков, когда тот же маркетинг приходит
                // с вопросом "почему сайт медленно грузится, нам гугл сказал"
            }, 1000)
        }
    });
    Ответ написан
    29 комментариев
  • Как сделать форму обратной связи с привязкой дат и id страницы в wordpress?

    trampick
    @trampick
    Веб-разработчик
    Создаешь форму в contactform7 как тебе нужно. Добавляешь текстовое поле с уникальным id, например action.
    в css пишешь
    #action{display:none;}
    - поле не отображается в форме. Через jquery пихаешь то что нужно в нее - id или название)
    <script>
    $('#action').val('Нужное значение для формы');
    </script>
    Ответ написан
    Комментировать
  • Как вывести определенную категорию записей в Wordpress?

    it_proger29
    @it_proger29
    Битрикс
    <?php 
    $categories = get_the_category($post->ID);
    foreach($categories as $category) :
     $children = get_categories( array ('parent' => $category->term_id ));
     $has_children = count($children);
     if ( $has_children == 0 ) {
     
    echo $category->cat_name;
     }
    endforeach;
    ?>


    Но и этот код у меня тоже прекрасно работает. Все тестирую в циклах WP-query.
    <?php $category = get_the_category();
            if ($category) {
            echo '<a class="txt txt_gray txt_small newsfeed__paramlink ' . $category[0]->category_nicename.'" href="' . get_category_link( $category[0]->term_id ) . '" title="' . sprintf( __( "%s", "elitenews" ), $category[0]->name ) . '" ' . '>' . $category[0]->name.'</a> ';
            }
            ?>
    Ответ написан
    1 комментарий
  • В каком файле лежит шаблон списка записей на WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Дмитрий Маринин все правильно написал, от себя добавлю - установите какой-то плагин для отладки, который показывает, какой шаблон используется, например
    https://wordpress.org/plugins/display-template-name/
    https://wordpress.org/plugins/what-template/
    и зайдите на ту свою страницу, которую вы назначили "страницей с записями". По идее должен использоваться index.php, убедитесь в этом. Его, собственно, и нужно будет редактировать.
    Ответ написан
    2 комментария
  • Как запустить другую страницу для мобильной версии?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    А вот не использовали бы элементор,все было бы просто, а для него придется поработать ломом.
    Создаёте шаблон home.php
    В нем проверяете мобильник или нет надо, и получаете, по id, в зависимости от необходимости, контент одной из ваших страниц созданных в элементоре для мобильной и простой версии.
    Ответ написан
    Комментировать
  • Требуется или нет включать WP_CACHE?

    AndiMandi
    @AndiMandi
    Вроде юн, а уже на заводе :)
    define(‘WP_CACHE’, true); добавляется, когда вы включаете резервный кеш, и это очень необходимо для работы резервного кеша.
    Ответ написан
    Комментировать
  • Как в теге "li" заменить иконку?

    @IvanGrishov
    Начинающий Frontend разработчик
    li {
    position: relative;
    list-style: none;
    padding-left: 40px;
    }
    li::before {
    position: absolute;
    content: '';
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    background-img: url("вставляешь путь к своей иконке");
    background-size: cover;
    }

    ну или примерно так, через before короче.
    Ответ написан
    1 комментарий
  • Как в админке woocommerce создать столбец "примечания" в таблице с заказами?

    @UN_Tony Автор вопроса
    вот код, может кому нуна:

    add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );
    
    add_filter( 'manage_shop_order_posts_columns', 'woocommerce_add_order_notes_column', 99 );
    function woocommerce_add_order_notes_column( $columns ) {
        $columns['order_notes'] = __('Customer note', 'woocommerce');
        return $columns;
    }
    
    add_action( 'manage_shop_order_posts_custom_column' , 'woocommerce_show_order_notes_column', 10, 2 );
    function woocommerce_show_order_notes_column( $column_name, $order_id ) {
        switch ( $column_name ) {
            case 'order_notes':
                $order = wc_get_order( $order_id );
                $note = $order->get_customer_note();
                if ( !empty($note) ) {
                    echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
                } else {
                    echo '<span class="na">&ndash;</span>';
                }
                break;
        }
    }
    Ответ написан
    Комментировать
  • Автоматическое закрытие формы Contact Form 7 после успешной отправки?

    @FKV
    У вас в коде есть сторока с jquery. Код как вы сказали в хедере. Смею предположить что jquery у вас подключен в футере. Надо чтобы ваш код выполнялся после подключения jquery.
    Либо просто переписать строчку $('#fancybox-close').trigger('click');
    на document.getElementById("fancybox-close").click();
    Ответ написан
    5 комментариев
  • Как обратиться к данным из csv таблицы?

    Maksim_64
    @Maksim_64
    Data Analyst
    Первое я почти все оставлю как у вас что бы вашу логику не нарушать, внесу небольшие изменения.
    def read_csv(filename):   #зачем у вас в оригинале параметр data если вы его не используете логичнее передавать имя файла.
        with open(filename, encoding='utf-8') as file:
            reader = csv.reader(file)
            data = list(reader)
            return data

    далее используем вашу функцию для чтения получаем вложенный список в ответ, а нам он не нужен вложенный нам обычный нужен по этому распрямляем его.
    data = read_csv('urls.csv')
    flat_list = [item for sublist in data for item in sublist]


    далее по все видимости вы собираетесь использовать эти ссылки для парсинга
    пишете функцию которая будет парсить проходитесь циклом по списку flat_list и передаете в функцию по одной ссылке и все. Ваша функция будет принимать параметр url, затем делать request, затем beatifulsoup будет парситьи отдавать результат. Сделайте функцию которая делает это все для одного url, потом циклом по списку внутри цикла вызывайте функцию с параметром url.

    А теперь общие соображения.
    Зачем csv? когда читаешь csv он возвращает список под каждую строку, с обычного txt, мы бы этого избежали, я бы использовал бы вообще для записи json. Где ключом было бы название товара, а значением ссылка. Потому что если что не будет работать, то будет известно какой товар не удается спарсить.

    Нужно создавать log file и писать туда что отдал сервер при запросе и туда же писать различные исключения а то потом ума не дашь где ошибка.

    В коде много лишнего, параметр data в обоих случаях нужно заменить на filename. И много других погрешностей.
    Ответ написан
  • Woocommerce. Как изменить фразу?

    в functions.php добавить следующее:
    add_filter('gettext', 'translate_text');
    add_filter('ngettext', 'translate_text');
     
    function translate_text($translated) {
    $translated = str_ireplace('Подытог', 'Сумма', $translated);
    return $translated;
    }

    Соответственно, вместо "Сумма" можете вставить свое слово
    Ответ написан
    3 комментария
  • Где находится шаблон страницы успешной оплаты WooCommerce?

    trampick
    @trampick
    Веб-разработчик
    Здесь если не создавали шаблон для WC у себя в теме:
    wp-content/plugins/woocommerce/templates/checkout/thankyou.php
    ,Или здесь, если создавали:
    wp-content/themes/mytheme/woocommerce/checkout/thankyou.php
    Ответ написан
    Комментировать
  • Как в woocommerce сделать, чтобы при добавлении товара корзина очищалась?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Попробуйте вот это решение https://businessbloomer.com/woocommerce-allow-1-pr...
    Должно помочь.

    Также можно поискать решения для отключения корзины. В случае такого сценария она явно лишняя.
    Ответ написан
    2 комментария
  • OpenCart или Woocommerce?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    WooCommerce занимает около 30% рынка ecommerce. И это №1 в мире. Если иных причин нет, то всегда лучше выбирать лидеров.
    Выбор других платформ возможен по причине наличия команды которая например только OpenCart.
    Либо какой то очень нагруженный ресурс где нужна тонкая игра с БД. Обычно это бюджеты от 10 млн руб и выше.
    Если бюджет не велик, то Woo вполне адекватное решение. Лидер рынка. Гибкость позволяет решить любые задачи, если в команде есть опытные специалисты или те кто умеют разбираться с API и читать доки.
    Плюс сейчас Woo взяли курс на свои таблицы в БД. А это значит что в скором будущем даже оч нагруженные ресурсы тут будут также хороши как и на фреймворках.
    Ответ написан
    Комментировать
  • OpenCart или Woocommerce?

    Лично мне, в силу отсутствия надобности, не приходилось ковырять код opencart'a, но очень сильно раздражает тот факт, что какой-нибудь эквайринг сбербанка там находится в виде платного модуля (давно это было, может что-то поменялось). На сколько помню там используется MVC для шаблона, в общем-то полезная порой вещь. В качестве плюса опенкарта могу отметить лишь тот факт, что это все-таки CMS конкретно под магазин, в отличие от Wordpress, в котором куда более расширенный функционал, который, однако, может и не использоваться, а ресурсы будут уходить.

    Сам работаю с Woocommerce по нескольким причинам:
    1. Внутренности любого шаблона довольно удобно сделаны, что позволяет очень быстро все редактировать. Добраться до какого-нибудь шаблона формы заказа при оформлении товара - просто, в опенкарте порой возникали трудности.
    2. Наличие кучи готовых модулей вплоть до интеграции с 1с Предприятием. Очень удобно.
    3. Те же оплаты кредитными картами (которые, тут плюс, у опенкарта стоят чуть ли не из коробки) можно внедрить использованием Яндекс.Кассы.
    4. Реально каких-либо серьезных навыков программирования, чтобы развернуть свой ИНДИВИДУАЛЬНЫЙ магазин, не требуется. Достаточно лишь найти нужные плагины.
    5. Возможность работать с woocommerce хуками иногда бывает крайне полезной.
    6. Как правило любая проблема, которая у вас возникла, уже давно имеет решение, ибо коммьюнити, как мне кажется, у вукомерса больше, нежели у опенкарта.

    P.S Хочу отметить, что это лишь мое мнение. Опыта работы с опенкартом было мало, попытался описать все, что за этот опыт успел увидеть.
    Ответ написан
    Комментировать
  • Уведомления в телеграмм о новых заказах в Woocommerce?

    @Everything_is_bad
    Подскажите пожалуйста как нескольких пользователей добавить в одной строке?
    никак, для каждого пользователя отдельный вызов, еще придуманы циклы, чтобы не писать n-строк, и фоновые задачи, если вдруг это работает внутри ответа на http-запрос
    Ответ написан
    1 комментарий
  • В какую папку устанавливать аддоны Slider Revolution?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Аддоны, если мне память не изменяет устанавливаются через админку, в настройках слайдера. Впрочем, прочитать документацию не составит труда.
    Ответ написан
    Комментировать
  • Исключить определенный товар Woocommerce из общего правила, как это сделать?

    Le_Traceur_Snork
    @Le_Traceur_Snork
    PHP-программист | Wordpress
    Вторым аргументом в эту функцию передаётся $product - это объект класса WC_Product_Variable. Можно в функции получать его различные свойства и/или мета-поля, если они были зарегистрированы - и исходя из их значений либо выставлять min_qty, либо нет

    Два варианта:
    1. Совсем в лоб - исключать по перечислению ID ($product->get_id())
    2. По ID продукта получать его мета-поле, скажем, "Минимальное значение этого продукта" - и устанавливать его как min_qty
    Ответ написан
    Комментировать
  • Woocommerce вывесть цену в кнопке "add to cart"?

    Код необходимо добавить в function.php:
    add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_price', 20, 2 ); // Shop and other archives pages
    add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_price', 20, 2 ); // Single product pages
    function custom_add_to_cart_price( $button_text, $product ) {
        if( $product->is_type('variable') ) { // Variable products
            if( ! is_product() ){ // shop and archives
                $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $product->get_variation_price() ) ) );
                return $button_text . ' - From ' . strip_tags( $product_price );
            } else { // Single product pages
                return $button_text;
            }
        } else {     // All other product types
            $product_price = wc_price( wc_get_price_to_display( $product ) );
            return $button_text . ' - Just ' . strip_tags( $product_price );
        }
    }
    Ответ написан
    1 комментарий