• WooCommerce полезная информация

 #10362   IgorA100
 27 апр 2021, 18:18
Установка на локальный сервер, БЕЗ FTP:
В конец файла wp-config.php добавить строку:
Код: Выделить всёdefine('FS_METHOD','direct');

Источник: https://www.hongkiat.com/blog/update-wo ... thout-ftp/

Подключить русский язык: https://webkab.ru/woocommerce-kak-pomenyat-yazyk/ При этом скаченный файл НЕ ЗАБЫВАЕМ ПЕРЕИМЕНОВАТЬ в "woocommerce-ru_RU.mo"
Установить права "755" на папки: wp-content, wp-content/language, plugins, themes, (А еще, лучге настроить Apache или Nginx так, что бы они работали от имени того, кто является хозяином папок на web директории)
AJAX в админке WordPress (с обработчиком admin-ajax.php) https://misha.agency/wordpress/admin-ajax.html
Свои фильтры в таблицах записей, комментариев, пользователей, таксономий https://wp-kama.ru/id_7524/svoi-filtry- ... taksonomij
 #10364   IgorA100
 27 апр 2021, 18:41
SLUG.... подлый SLUG....
При добавлении категорий может появляться ошбка
Не удалось вставить элемент в базу данных
из за того, что формируемый SLUG на кириллице превышает размер в 191 символ и как следствие не записывается в БД. К сожалению, WooCommerce не анализирует длинну SLUG при автоматическом его заполнении на основании ИМЕНИ категории или товара :(. Если же при добавлении категории явно указать длинный SLUG, то он автоматически обрежется до правильной длинны!.

И еще одни не приятный момент:
При использовании
Код: Выделить всёwp_insert_category( )
в 'cat_name' удаляютмя лишние (двойные) пробелы, а если при использовании
Код: Выделить всёterm_exists( $cat_name, $taxonomy, $parent )
в качестве имени передать то-же наименование с дфойными пробелами, то конечно же ответ будет отрицательным, т.е. не найдется такое имя!!!
 #10367   IgorA100
 28 апр 2021, 18:56
Выводим список кастомных таксономий и кастомных записей из каждой таксономии https://denis-creative.com/vyvodim-spis ... aksonomii/

Код: Выделить всё<?php
$terms = get_terms(
  array(
    'taxonomy'   => 'partner_cat',
    'hide_empty' => true,
    'hierarchical' => false,
    'orderby' => 'name',
    'order' => 'ASC',
  )
);
 
foreach ( $terms as $term ) { ?>
  <h2><?php echo $term->name; ?></h2>
 
  <div class='partners-list'>
    <?php
 
    $args = array(
      'post_type' => 'partner',
      'post_status' => 'publish',
      'posts_per_page' => 5,
      'orderby' => 'date',
      'order' => 'DESC',
      'tax_query' => array(
        array(
          'taxonomy' => 'partner_cat',
          'field' => 'name',
          'terms' => $term->name
        )
      )
    );
 
    //the query
    $partnersList = new WP_Query( $args );
 
    //loop through query
    if($partnersList->have_posts()) {
      echo '<ul>';
 
      while($partnersList->have_posts()) {
        $partnersList->the_post();
        ?>
 
        <li><a href=&quot;<?php the_permalink(); ?>&quot;><?php the_title(); ?></a></li>
 
        <?php
      }
 
      echo '</ul>';
    } else {
      //no posts found
    }
 
    wp_reset_postdata();
 
    ?>
  </div><!-- /partners-list -->
 
  <p><a href=&quot;<?php echo esc_url( get_term_link( $term ) ) ?>&quot;>Все записи из таксономии &quot;<?php echo $term->name; ?>&quot;</a></p>
 
<?php } ?>
 #10381   IgorA100
 15 май 2021, 20:16
Вывод всех зарегистрированных таксономий:
Код: Выделить всё$taxonomies = get_taxonomies();
foreach( $taxonomies as $taxonomy ) {
   echo '<p>'. $taxonomy. '</p>';
}

https://wp-kama.ru/function/get_taxonomies

Регистрация и удаление такосномий:

Код: Выделить всё// регистрация таксономии
add_action( 'init', 'create_genre_taxonomy' );
function create_genre_taxonomy(){
  // Добавляем древовидную таксономию 'genre' (как категории)
  register_taxonomy('genre', array('book'), array(
   'hierarchical' => true,
   'labels' => $labels,
   'show_ui' => true,
   'query_var' => true,
   'rewrite' => array( 'slug' => 'genre' ),
  ));
}

// удаление таксономии
add_action( 'wp', 'unregister_genre_taxonomy' );
function unregister_genre_taxonomy(){
   // отменяем таксу только на отдельных страницах
   if( ! is_singular() ) return;

   unregister_taxonomy('genre');
}

https://wp-kama.ru/function/unregister_taxonomy
Сначала нужно регистрировать таксономию, а потом тип записи с которым эта таксономия связана!

Код: Выделить всё// правильный порядок регистрации типа записи и её таксономии
register_taxonomy( ... );
register_post_type( ... );

Эта особенность в некоторых случаях избавит вас от багов и кучи потраченного времени.

https://wp-kama.ru/function/register_taxonomy
 #10382   IgorA100
 21 май 2021, 13:48
is_product_category() - проверяет, отображается ли страница категории товаров и возвращает true, если отображается страница категории товаров WooCommerce, в остальных случаях – false.
is_category() - проверяет показывается ли страница категорий или нет.
Использовать is_category необходимо примерно так :
Код: Выделить всёadd_filter('pre_get_posts', 'limit_archive_posts' ,5);
function limit_archive_posts($query){
if ($query->is_category) {
$query->set('posts_per_page', 3);
}
if($query->is_single == 1){
$query->set('posts_per_page', 1);
}
return $query;
}

https://web-answers.ru/php/wordpress-is ... ge-ne.html