Собираю базу знаний, чтобы все под рукой
 

functions.php wordpress для дочерней темы, собираю то что применял

<pre class="wp-block-syntaxhighlighter-code">// хлебные крошки woocommerce с возможность оформления стилей в карточке товара
function my_yoast_breadcrumb ( ) {

  yoast_breadcrumb( '<p id="breadcrumbs">','</p>' );

}
add_action   ( 'woocommerce_before_single_product' , 'my_yoast_breadcrumb'                    , 20);

remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );

// скрыть заголовок страниы каталога woocommerce
add_filter( 'woocommerce_show_page_title', '__return_false' );

//убираем цены отовсюду
add_filter( 'woocommerce_variable_sale_price_html', 'businessbloomer_remove_prices', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'businessbloomer_remove_prices', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'businessbloomer_remove_prices', 10, 2 );
 
function businessbloomer_remove_prices( $price, $product ) {
if ( ! is_admin() ) $price = '';
return $price;
}

// выводим описание категории под товарами
remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 );
add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 );

// выводим на странице магазина описание 
remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 );
add_action( 'woocommerce_after_shop_loop', 'woocommerce_product_archive_description', 100 );

//убираем "записи из рубрик и меток"
add_filter( 'get_the_archive_title', 'artabr_remove_name_cat' );
 function artabr_remove_name_cat( $title ){
  if ( is_category() ) {
  $title = single_cat_title( '', false );
  } elseif ( is_tag() ) {
  $title = single_tag_title( '', false );
  }
  return $title;
 }

//ресайз миниатюр в продуктах
 add_theme_support( 'woocommerce', array(
    'gallery_thumbnail_image_width' => 150,
    //'single_image_height' => 400,
    
 ) );

//разрешаем теги html  tiny_mce
  add_filter('tiny_mce_before_init', 'vipx_filter_tiny_mce_before_init');
function vipx_filter_tiny_mce_before_init( $options ) {
 
    if ( ! isset( $options['extended_valid_elements'] ) ) {
        $options['extended_valid_elements'] = '';
    } else {
        $options['extended_valid_elements'] .= ',';
    }
 
    if ( ! isset( $options['custom_elements'] ) ) {
        $options['custom_elements'] = '';
    } else {
        $options['custom_elements'] .= ',';
    }
 
    $options['extended_valid_elements'] .= 'div[contenteditable|class|id|style]';
    $options['custom_elements']         .= 'div[contenteditable|class|id|style]';
    return $options;
}

//seo images woocommerce
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);

function change_attachement_image_attributes( $attr, $attachment ){

        $parent = get_post_field( 'post_parent', $attachment);

        // Get post type to check if it's product
        $type = get_post_field( 'post_type', $parent);
        if( $type != 'product' ){
                return $attr;
        }

        $title = get_post_field( 'post_title', $parent);

        $attr['alt'] = $title;
        //$attr['title'] = $title;

        return $attr;

//добавляем отслеживание форм для метрики
add_action( 'wp_head', 'custom_code_head' );
function custom_code_head() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if ( '7' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','contact'); return true;
    }
    if ( '9355' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_konpka'); return true;
    }
     if ( '9356' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_2D_150'); return true;
    }
    if ( '9360' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_2D_300'); return true;
    }
    if ( '9359' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_3D_150'); return true;
    }
     if ( '9362' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_3D_300'); return true;
    }
     if ( '9376' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','viz_full'); return true;
    }
    if ( '205' == event.detail.contactFormId ) {
        ym(Счетчик_метрики,'reachGoal','fast_zakaz'); return true;
    }
});
</script>
<script>
	jQuery( document ).ready( function( $ ) {

		/**
		 * awooc_popup_open_trigger
		 * Триггер при открытии окна
		 *
		 * @param event событие
		 */
		$( document.body ).on( 'awooc_popup_open_trigger', function( event, data ) {
							   
			ym(Счетчик_метрики, 'reachGoal', 'awoc_open', data.selectedProduct );
		} );

	} );
</script>
<script>
	jQuery( document ).ready( function( $ ) {

		/**
		 * awooc_popup_close_trigger
		 * Триггер при закрытии окна
		 *
		 * @param event событие
		 */
		$( document.body ).on( 'awooc_popup_close_trigger', function( event ) {
							   
			ym(Счетчик_метрики, 'reachGoal', 'awoc_close', data.selectedProduct );
		} );

	} );
</script>
<script>
	jQuery( document ).ready( function( $ ) {

		/**
		 * awooc_mail_sent_trigger
		 * Триггер при успешной отправке формы
		 *
		 * @param event событие
		 */
		$( document.body ).on( 'awooc_mail_sent_trigger', function( event, data, detail ) {
						ym(Счетчик_метрики, 'reachGoal', 'awoc_sucess', data.selectedProduct );
		} );
	} );
</script>
<?php
}

//добавляем фото в описание категории woocommerce
add_action( 'woocommerce_after_shop_loop', 'woocommerce_category_image', 90 );
function woocommerce_category_image() {
    if ( is_product_category() ){
        global $wp_query;
        $cat = $wp_query->get_queried_object();
        $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
        $image = wp_get_attachment_url( $thumbnail_id );
        $catname = get_queried_object()->name;

        if ( $image ) {
            echo '<p style="text-align:center"><img src="' . $image . '" alt="'.$catname.' купить от дилера" width="30%"/></p>';
        }
    }
}

//заполняем пустые alt
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes( $response, $attachment ){

        $parent = get_post_field( 'post_parent', $attachment);
                 $title = get_post_field( 'post_title', $parent);

        if ( ! $response['alt'] ) {
    $response['alt'] = $title;
}
        
$response['title'] = $title;

        return $response;
}

}</pre>

Поделиться ссылкой: