WEB

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>

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

yurok_1

Share
Published by
yurok_1

Recent Posts

CAPCUT приложение для ПК (десктоп версия) бесплатно

Всем привет! Недавно начал баловаться видеомонтажом для роликов в ютуб и соцсети. Честно, много искал…

1 год ago

Парсинг e-mail почтовых адресов в чатах telegram

Всем привет!Новый день - новая задача: В последнее время стало появляться много чатов открытых с…

2 года ago

Автоматическое заполнение seo описания для категорий товаров woocommmerce

Всем привет!Пишу крайне редко, а жаль, есть что написать но времени как обычно....Ну да ладно,…

2 года ago

Плагины для WordPress must have — мое прочтение

Всем привет! Каждый раз разворачивая сайт для себя или кого-то на worpdress или opencart или…

3 года ago

Интеграция сайт + гугл формы + Unisender без сервисов

Всем привет! Возникла идея и задача: чтобы привлечь подписчиков на сайте запустили опрос-исследование для профессиональных…

3 года ago

Бесплатный сайт: домен + хостинг free

Всем привет! Недавно озадачился поисками бесплатных ресурсов для размещения телеграмм бота (решил поиграть попробовать) и…

4 года ago