• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Кодекс WooCommerce. Функции для начала. Полезные ресурсы.

Vicos

Форумчанин
#1
Здравствуйте! Решил написать ИМ на Woocommerce - тема самописная. Обшарил уже уйму ресурсов и ни чего путного не нашёл кроме хуков различных.
Может имеется какой ресурс с подробным описнием функций WooCommerce?
 

Vicos

Форумчанин
#4
А есть возможность использования функций Woocommerce?
К примеру возможность использовать в любом месте
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
Вывод краткого описания товаров.
Если есть то можно воротить многое.
 

Vicos

Форумчанин
#7
Пока освоился с шорткодами и функцией
<?php echo do_shortcode('[product id="8"]'); ?>
Гибкости не хватает.
Получить краткое описание товаров вместо вывода кнопки подробнее и миниатюры. Видимо добрёл до хуков.
 

Vicos

Форумчанин
#8
Продвинулся ещё на шаг.
<?php $args = array('post_type' => 'product');
$loop = new WP_Query( $args );
...
?>
WP_Query оказалась полезной, но теперь надо разобраться как выбирать по каткгориям и остальным параметрам. Товары все без проблем выбираются.
 

Grollem

Опытный
#9
Что сказать, кодекс и вп-кама помогут разобраться с этим. Там есть хорошие примеры и описания функций wordpress.
выбирать по категориям можно с помощью аргумента 'category', в котором перечислить нужные категории если нужно больше одной то значение нужно указывать в массиве.
Советую ознакомиться так же с аргументом meta_query этой функции, она позволит выбрать продукты по произвольным полям.
Так же рекомендую к изучению плагин ACF адванцедкастомфилдс. Он расширяет возможности вордпресса до предела.
 

Vicos

Форумчанин
#10
Что сказать, кодекс и вп-кама помогут разобраться с этим. Там есть хорошие примеры и описания функций wordpress.
выбирать по категориям можно с помощью аргумента 'category', в котором перечислить нужные категории если нужно больше одной то значение нужно указывать в массиве.
Советую ознакомиться так же с аргументом meta_query этой функции, она позволит выбрать продукты по произвольным полям.
Так же рекомендую к изучению плагин ACF адванцедкастомфилдс. Он расширяет возможности вордпресса до предела.
На wp-kama ночуем) да и кодекс часто светится.
С выборкой постов в определённой категории разобрался.
$args = array('product_cat' => 'men', 'post_type' => 'product');
$loop = new WP_Query( $args );
А как выбрать имена категорий в WooCommerce не догоню. Хранятся в wp_terms но как к их выбрать?
 

Grollem

Опытный
#11
Код:
<?php
  $taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 1;      // 1 for yes, 0 for no  
  $title        = '';  
  $empty        = 0;
$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title,
  'hide_empty'   => $empty
);
 $all_categories = get_categories( $args );
//print_r($all_categories);
foreach ($all_categories as $cat) {
    //print_r($cat);
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;


        echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; 


        $args2 = array(
          'taxonomy'     => $taxonomy,
          'child_of'     => 0,
          'parent'       => $category_id,
          'orderby'      => $orderby,
          'show_count'   => $show_count,
          'pad_counts'   => $pad_counts,
          'hierarchical' => $hierarchical,
          'title_li'     => $title,
          'hide_empty'   => $empty
        );
       
        $sub_cats = get_categories( $args2 );
        if($sub_cats) {
            foreach($sub_cats as $sub_category) {
                echo  $sub_category->name ;
            }

        } 


 }    
}
?>
$sub_cats = под категории
$all_categories = категории
 
Последнее редактирование:

Vicos

Форумчанин
#12
Спасибо! То что надо. Ну теперь думаю можно дальше разбираться и у меня появилась надежда)
 

Grollem

Опытный
#13
Еще может понадобиться, для того чтобы комбинировать запрос, например в записях перед выводом цикла отфильтровать их по категории, по дате или по полю:
WP_Query($query_string.'&параметр=значение&параметр=значение' ).
это позволит дополнять базовый цикл своими условиями :)
 

Vicos

Форумчанин
#14
Еще может понадобиться, для того чтобы комбинировать запрос, например в записях перед выводом цикла отфильтровать их по категории, по дате или по полю:
WP_Query($query_string.'&параметр=значение&параметр=значение' ).
это позволит дополнять базовый цикл своими условиями :)
Т.е. к примеру по категории отфильтровать выбираем все,
$query_string = "post_type=product";
$loop = new WP_Query($query_string.'&product_cat=cat-name' );
И: get_term_link($cat->slug, 'product_cat');
Так мы получаем slug категории и по нему можем выбирать товары из этой категории.
Всё верно?
 

Grollem

Опытный
#15
не совсем так $query_string - это глобальная переменная строки запроса
Код:
global  $query_string;
query_posts($query_string . '&post_type=product&posts_per_page=-1');
while(have_posts()) { the_post();
<!-- здесь идет Цикл WordPress -->
}
т.е. можно добавить или изменить какие то параметры в текущем цикле
а если написать query_posts($args); то цикл будет выполнен с нуля.
З.Ы. query_posts, wp_query, get_posts выполняют одно и тоже.
Подробнее оних можешь почитать на каме.
 
Последнее редактирование:

Vicos

Форумчанин
#16
Grollem, cпасибо огромное!
Ну да, я лишнего нагородил в пред посте. Реализовал уже что хотел.
Можно ваш кошелёк Я.Д. или WMR в личку? Скромно отблагодарить за время, потраченное на меня.