<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>