• Перемешать вывод товаров в магазине woocommerce?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Идея так себе,
    есть параметр сортировки - случайный 'orderby' => 'rand' https://developer.wordpress.org/reference/classes/...
    Но с пагинацией будет очень совсем беда. Придется сохранять каким то образом id уже выведенных записей и передавать их на страницах пагинации в параметр post__not_in https://developer.wordpress.org/reference/classes/...
    Ответ написан
  • Как вывести после цены товара свой небольшой текст для разных ролей пользователей Woocommerce?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    function cw_change_product_price_display( $price ) {
    	
    	$user = wp_get_current_user();
    	
    	if ( in_array( 'subscriber', $user->roles, true ) ) {
    		$text = 'text for user subscriber';
    	} elseif ( in_array( 'administrator', $user->roles, true ) ) {
    		$text = 'text for  user administrator';
    	} elseif ( in_array( 'editor', $user->roles, true ) ) {
    		$text = 'text for user editor';
    	} elseif ( in_array( 'author', $user->roles, true ) ) {
    		$text = 'text for user author';
    	} elseif ( in_array( 'contributor', $user->roles, true ) ) {
    		$text = 'text for user contributor';
    	} else {
    		$text = 'default text';
    	}
    
    	$price .= sprintf( '<span style="color: #8e8181;font-size: 13px;">%s</span>', $text );
    
    	return $price;
    }
    
    add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
    add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );
    Ответ написан
  • Как создать шорткод wordpress для вывода новостей с версткой?

    ya-vitaliy
    @ya-vitaliy
    Верстаю... + wordpress и пробую Laravel
    function shownews(){
    
        ob_start();
    
        ?>
    
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <?php
                $query = new WP_Query( array(  'cat' => 5,  'showposts' => 100 ) );
                while ( $query->have_posts() ) : $query->the_post(); ?>
                    <div class="service__slide" id="bx_651765591_37">
                        <?php $image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full'); ?>
                        <a href="" class="card-service card-service--family" style="background-image:url(<?php echo $image_url[0]; ?>);">
                            <div class="card-service__title"><?php the_title(); ?></div>
                            <span class="card-service__link"><?php the_content(); ?></span>
                        </a>
                    </div>
                <?php endwhile; ?>
                <?php wp_reset_query(); ?>
            </div>
        </div>
    
        <?php
    
        return ob_get_clean();
    
    }
    
    add_shortcode('shortshownews', 'shownews');
    Ответ написан
  • Как правильно отображать блок категории в админке?

    AltaiR-05
    @AltaiR-05 Автор вопроса
    Сам в итоге пришел к ответу. Прикрепляю код, вдруг кому то понадобится:
    add_filter('wp_terms_checklist_args', 'wp_terms_checklist_args');
    
    function wp_terms_checklist_args($args) {
      $args['checked_ontop'] = false;
      return $args;
    }
    Ответ написан
  • Готов поработать по ставке 0 в час. Где найти такую "работу"?

    @jamtuson
    Вы работаете не 0 в час, а вы работаете в минус компании, так как ваш код нужно проверять, обучать вас, давать задачи и это все время более опытного специалиста, который мог бы потратить его на выполнение своей работы за которую ему платят.

    Делайте портфолио и идите в компанию не на 0 в час, а на среднюю по рынку для стажера/juniora
    Ответ написан
  • Неработающий скрипт в вордпресс, поможете?

    @weart
    Ошибка здесь в этой строчке. Догадываетесь какая?

    wp_enqueue_style( 'visit_scripts');
    Ответ написан
  • Можете оценить фреймворк?

    Konata69lol
    @Konata69lol
    backend php laravel
    С этим фреймворком вы наверняка провалите проект, т.к. будете вместо написания бизнес логики дописывать
    сам фреймворк, прикручивать к нему недостающие компоненты, фиксить баги и т. д.
    Ответ написан
  • Можете оценить фреймворк?

    l3ftoverz
    @l3ftoverz Куратор тега PHP
    Люблю Финский металкор
    как он поведет себя при большой нагрузке и сложной структуре.
    Это в меньшей степени зависит от фреймворка, это зависит от того, как ты накодишь, все эти микрофреймворки тебе ничего такого не дают, там базовые кейсы.

    Пытался познакомиться с ларой, все как-то сложно.
    Это один из самых простейших фреймворков, с хорошей документацией и огромным сообществом. Его основной плюс, в том, что найденные баги (обычно) фиксить будешь не ты, их пофиксят за тебя, там слаженная структура, всё продумано (субъективно) и поддерживается это комплексно.

    У кого есть свободное время (и желание сделать некий аудит чужого кода), прошу дать комментарии по структуре фреймворка, реализации, по коду
    Извини, а что тебе это даст? Что-то изменится, если я скажу, что там всё плохо - ты уйдешь искать что-то лучше и снова придёшь сюда спрашивать: "ОЦЕНИТЕ ЭТОТ ФРЕЙМВОРК?".

    Если хочешь минимума - бери Slim, это хороший PSRный фреймворк.
    Ответ написан
  • Как вы формируете свой прайс?

    @nrgian
    С июля месяца сталкиваюсь с катастрофическим демпингом, что уже напрягает. Решил поинтересоваться, как происходит оценка работы для каждого.

    Демпинг только в простых работах.
    На сложные работы - крайне сложно найти специалиста, кто выполнит.

    Как лично вы формируете прайс на свои услуги?

    Поднимаю цену, наблюдаю как клиент морщится.
    Когда морщины слишком глубокие - прекращаю поднимать цену.
    Без шуток - примерно так и есть.
    Ответ написан
  • Как вывести количество дочитываний статьи в Вордпрессе?

    Andrew_Pinkerton
    @Andrew_Pinkerton
    Внизу каждой статьи разместить элемент (или привязаться к уже существующему), и на JS проверять его нахождение во viewport,
    если элемент входит во viewport, уведомлять об этом сервер, на кастомный роут.
    + можно дабавить проверку того, сколько пользователь находился на странице (для того чтобы отсеять пролистывание вниз сразу после открытия страницы).
    Т.е. если время чтения материала 9 минут (в среднем), убираем 20-30 % (кто-то может и быстрее читать),
    и далее совмещаем с проверкой нахождения во viewport.

    JavaScript: Is element in viewport?
    /*
    No jQuery necessary.
    Thanks to Dan's StackOverflow answer for this:
    http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
    */
    
    function isElementInViewport(el) {
      var rect = el.getBoundingClientRect();
      return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.bottom <= (window.innerHeight || document. documentElement.clientHeight) &&
        rect.right <= (window.innerWidth || document. documentElement.clientWidth)
      );
    }
    Ответ написан
  • Как повесить класс на форму Contact From 7?

    Punkie
    @Punkie Куратор тега WordPress
    Немножечко вордпрессирую
    Yes. You can add any id and class to a form by adding the html_id and html_class attributes into a [contact-form-7] shortcode.


    В редактор ничего добавлять не нужно. Поправить нужно шорткод:

    [contact-form-7 id="1234" title="Contact form 1" html_id="contact-form-1234" html_class="form contact-form"]


    https://i.imgur.com/iggx6lL.png

    Шорткод вставляется в тело страницы там, где вы хотите отобразить форму. Вставили шорткод, добавили в него html_id .
    Ответ написан
  • Как создать блок в гутенберг на wordpress?

    xdevelx
    @xdevelx
    Web Developer
    Можно создать блоки с помощью ACF PRO https://www.advancedcustomfields.com/resources/blocks/ и внутри будет нужный набор полей.
    Аналогично и с помощью Carbon Fields v3 https://carbonfields.net/2018/12/13/introducing-ca...
    Ответ написан
  • Как добавить атрибут к элементу формы?

    Chefranov
    @Chefranov
    Front-End, Back-End
    [radio remodeling_kind tabindex:0 default:1 "Bathroom" "Kitchen" "Full House" "Other]
    Ответ написан
  • Как верстать под wp?

    HeadOnFire
    @HeadOnFire Куратор тега WordPress
    PHP, Laravel & WordPress Evangelist
    Верстка под WP по сути укладывается всего в несколько отличий от верстки под что либо еще:

    1. В некоторых местах (body, меню, обертки страниц/записей и тд) WP генерит свой список классов. Его можно и нужно использовать, если тема предназначена на продажу или в репозиторий на .org, предполагается что ее будут крутить/развивать под свои задачи. Если для себя / для клиента, то можно не использовать, но как минимум с меню придется на бекенде несколько правок сделать.
    2. Контент, который редактируется в редакторе (старый TinyMCE или новый Gutengerg) либо лишен классов по умолчанию (тогда стучимся по классу контейнера), либо как разработчики намудрят (Gutenberg, всякие конструкторы страниц). В принципе, можно полностью под себя сделать с Gutenberg, но это дополнительные временные расходы.
    3. Статика (скрипты, стили) подключается из PHP, картинки и другие файлы - как правило тоже, через медиа-библиотеку.

    Иногда что-то по мелочи попадается, но в целом - это все.
    Ответ написан
  • Какие best practice разработки с WordPress для новичка?

    HeadOnFire
    @HeadOnFire Куратор тега WordPress
    PHP, Laravel & WordPress Evangelist
    Во-первых, прекратите спамить всех подряд, такой подход не очень продуктивен.

    Во-вторых, у вас не вопрос. Вопрос - это как правило одна (иди хотя бы одна главная) проблема, которую можно решить одним ответом. Как правило не очень объемным, потому что S из SOLID, как мы знаем, это Single Responsibility Principle. Ваш вопрос его нарушает чуть более чем полностью. Из этого следует, что вам нужно разбить ваш вопрос на множество других. И задавать их желательно по порядку, получая ответы, применяя их в жизни, практикуясь, и только потом переходя далее. Ибо влить в мозг весь этот объем информации за раз можно только в фильме "Матрица", а мы, увы, не там.

    Тезисно пройдусь по пунктам, чтобы прояснить ситуацию.

    Хочу изучить новые инструменты и вообще понять что есть best practice в мире wp сейчас!

    Не существует единой best practice. Есть разные подходы, каждый из них имеет плюсы, минусы и право на жизнь. Все очень сильно зависит от команды, ее размера и опыта, компании и процессов, клиента, проекта, его размера и бюджета и тд. Ну а общие принципы мало отличаются от разработки в целом, будь то Symfony, Laravel, Ruby on Rails и тд.

    Я нашел много интересного, но пока не понимаю как это всё собрать воедино, что зачем нужно, много непонимания

    Это нормально. Почему - перечитайте абзац про Single Responsibility Principle выше.

    1. среду разработки использую PhpStorm, по университетской лицензии.

    Несущественно. PhpStorm отличная IDE, пожалуй лучшая для разработки на PHP в целом, WP или нет - не важно (сам использую именно ее). Но далеко не все могут использовать ее бесплатно по университетской лицензии, многие покупать не хотят, многим не нравится производительность. Стандарт ли это? Для кого как.

    2. для версий кода использую Git, храню локально и на Gitlab.

    Git - это наиболее популярная VCS на данный момент. Само использование системы контроля версий является стандартом, во всем мире разработки.

    3. при разработке пушу через SSH сразу на shared хостинг, а не на локальный сервер (никогда локальным не пользовался, а надо? каким?)

    Использование локального сервера - стандарт. Обязательно, не обсуждается. Пушить на shared - плохая практика (и пушить на прод, и shared). Изучаем про локальные сервера, Continuous Integration и Continuous Delivery. Впрочем, для WP важно понимать, что бОльшая часть проектов будет простая и небольшая, со скромным бюджетом, а там вся эта кухня может быть лишней (смотрим абзац про зависимость best practices от проекта и тд). Поэтому обычного простого деплоя по мерджу в мастер хватит. Гугл в помощь.

    4. работаю под Linux, знаком с консолью, bash, но не понимаю как использовать wp-cli, в чем он удобен?

    WP-CLI это инструмент. Использовать его - хорошо. Чем удобен / полезен поймете когда разберетесь с деплоями, автоматизацией и тд. Но не поймете если не начнете заставлять себя с ним работать.

    5. присматриваюсь к Roots и Bedrock, но не понимаю как к ним подступиться, нужно объяснение что и зачем делать, какие-то инструкции..

    Рано. Очень рано вам к ним присматриваться.

    6. хочу начать использовать composer

    Начинайте. Гуглите, материалы на эту тему есть. Будут конкретные вопросы - задавайте, будем отвечать.

    7. хочу начать писать тесты, PHPUnit?

    Если бы спрашивали за Laravel, то да. Но по WP - забудьте. Думать про тесты в WP вам рано и не нужно. Голову сломаете. Да и проекты, где это понадобится вам пока не светят.

    Сейчас как-то грустно, что wp любят поносить за его "легкий вход", "говнокод", "это не программирование" и т.д.

    Это не только сейчас и не только про WP. Добро пожаловать в прекрасный мир разработки, где каждый второй с радостью обосрёт инструмент, о котором мало что знает или потому что ему лично он не подходит / не нравится. Вырабатывайте свое личное мнение. WP сам по себе лишь инструмент. Хороший или плохой - не важно. Он решает определенные задачи, и делает это лучше / быстрее / дешевле / проще других.

    Как всё это собрать вместе?

    Постепенно. Шаг за шагом. Слона нужно есть по частям, иначе подавитесь.

    Прошу подробных ответов, по возможности со ссылками и/или инструкциями.

    Это придется накатать книгу, и не одну.

    Хочу учиться.

    Достойное желание. Учитесь, никто не мешает. Гугл, кодекс, кама и другие ресурсы в помощь.

    Бонус: запомните одну простую истину - вы не сможете что-то изучить или освоить, если не начнете с ним работать. Только на реальной практике можно понять и осознать. Можно прочитать 10 лучших книг про ООП (для примера), но пока вы не напишете, выбросите, перепишете несколько раз свой код на ООП, вы его не поймете.
    Ответ написан
  • Как создать поля формы Wordpress с кнопкой добавить еще?

    anatoly_kulikov
    @anatoly_kulikov
    Wordpress-разработчик
    Я однажды видел, как ребята сделали такую форму с помощью Contact form 7. Они сразу сделали несколько строк, но всё, кроме первой, скрыли. При нажатии на кнопку появлялись "новые" строки, а при достижении лимита кнопка просто отпадала.

    Вот как вариант могу предложить.
    Ответ написан