$comments = get_comments(array(
'post_id' => $product_id,
'status' => 'approve'
));
wp_list_comments(array(
'per_page' => 10,
'reverse_top_level' => false
), $comments);
[woocommerce_cart][woocommerce_checkout]
<template id="commentslabel_comments">
<div class="commentlist">
<?php
$comments = get_comments(array(
'post_id' => $product_id,
'status' => 'approve'
));
wp_list_comments(array(
'per_page' => 10,
'reverse_top_level' => false
), $comments);
?>
</div>
</template>
<script>
jQuery(document).ready(function(){
var root = commentslabel.attachShadow({ mode: 'closed' });
root.appendChild(commentslabel_comments.content.cloneNode(true));
});
</script>
<div id="commentslabel">
</div>
// отключение сайдбара
remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
// отключить хлебные крошки
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
// добавить основной контейнер
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
add_action( 'woocommerce_before_main_content', 'storm_output_content_wrapper_start', 10 );
function storm_output_content_wrapper_start() {
?>
<div class="container-1000">
<?php
}
// закрыть основной контейнер
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
add_action( 'woocommerce_after_main_content', 'storm_output_content_wrapper_end', 40 );
function storm_output_content_wrapper_end() {
?>
</div><!-- container-1000 -->
<?php
}
add_action( 'woocommerce_before_main_content', 'storm_archive_output_content_wrapper_start', 15 );
function storm_archive_output_content_wrapper_start() {
if( is_shop() || is_product_category() ) {
?>
<div class="category-content">
<?php
}
}
add_action( 'woocommerce_before_main_content', 'storm_catalog_wrapper_start', 20 );
function storm_catalog_wrapper_start() {
if( is_shop() || is_product_category() ) {
?>
<div class="catalog-list-wrapper">
<?php
}
}
//вывод хлебных крошек на странице архива
add_action( 'woocommerce_before_main_content', 'storm_catalog_breadcrumbs', 25 );
function storm_catalog_breadcrumbs() {
if( is_shop() || is_product_category() ) {
?>
<div class="breadcrumbs">
<?php woocommerce_breadcrumb() ?>
</div>
<?php
}
}
// вывод сортировки и кнопки переключателя фильтра
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
add_action('woocommerce_before_shop_loop', 'storm_catalog_ordering', 30);
function storm_catalog_ordering() {
?>
<div class="catalog-sorting-wrapper">
<button type="button" class="fixed-toggle filter-toggle" id="filter-toggle"><i class="fa fa-filter"></i><?php _e('Filter','storm-store') ?></button>
<div class="product-sorting">
<span class="product-sorting-label"><?php _e('Сортировать:','storm-store') ?></span>
<div class="select-wrapper">
<?php woocommerce_catalog_ordering() ?>
</div>
</div>
</div>
<?php
}
// Изменить стрелки пагинации
add_filter( 'woocommerce_pagination_args', 'custom_woo_pagination' );
function custom_woo_pagination( $args ) {
$args['prev_text'] = '<span class="fa fa-angle-left"></span><span class="sr-only">Previous page</span>';
$args['next_text'] = '<span class="fa fa-angle-right"></span><span class="sr-only">Next page</span>';
return $args;
}
// вывод пагинации
remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 10 );
add_action('woocommerce_after_shop_loop', 'storm_pagination', 10);
function storm_pagination() {
?>
<div class="pagination-wrapper">
<?php woocommerce_pagination(); ?>
</div>
<?php
}
add_action( 'woocommerce_after_main_content', 'storm_catalog_wrapper_end', 15 );
function storm_catalog_wrapper_end() {
if( is_shop() || is_product_category() ) {
?>
</div> <!-- catalog-list-wrapper -->
<?php
}
}
add_action( 'woocommerce_after_main_content', 'storm_archive_output_content_wrapper_end', 30 );
function storm_archive_output_content_wrapper_end() {
if( is_shop() || is_product_category() ) {
?>
</div><!-- category-content -->
<?php
}
}
<?php
$logo_img = '';
if ($custom_logo_id = get_theme_mod('custom_logo')) {
$logo_img = wp_get_attachment_image($custom_logo_id, 'full', false, array(
'class' => 'logo-footer', // здесь Ваш class
'alt' => get_bloginfo('name'),
'itemprop' => 'logo',
));
}
?>
<a href="<?php echo esc_url(home_url('/')); ?>" rel="home" class="logo">
<?php echo $logo_img; ?>
</a>
$(window).scroll(function() {
var height = $(window).scrollTop();
/*Если сделали скролл на 100px задаём новый класс для header*/
if(height > 100){
$('header').addClass('header-fixed');
} else{
/*Если меньше 100px удаляем класс для header*/
$('header').removeClass('header-fixed');
}
});
function iconic_wc_ajax_variation_threshold( $qty, $product ) {
return 50;
}
add_filter( 'woocommerce_ajax_variation_threshold', 'iconic_wc_ajax_variation_threshold', 10, 2 );
return 50;
нужное количество вариаций для динамического отображения the_content
обычной заменой или регуляркой, но это если у картинок всегда одна структура (например, мы точно знаем что тег будет <img src="..." class="..." ...
). Но вообще парсить html регулярками не самая светлая мысль - для этого есть DOMDocument:function add_class_to_images( $content )
{
$document = new DOMDocument();
libxml_use_internal_errors(true); // чтобы не ругался на семантические HTML5 теги
$document->loadHTML( $content );
libxml_clear_errors();
$images = $document->getElementsByTagName( 'img' );
/** @var \DOMElement $image */
foreach ( $images as $image ) {
$image->setAttribute(
'class',
$image->getAttribute( 'class' ) . ' my-new-class'
);
}
return $document->saveHTML();
}
add_filter( 'the_content', 'add_class_to_images' );