• Как добавить класс к списку категорий WooCommerce?

    Lee_Swagger
    @Lee_Swagger
    Один из способов решения задачи - переопределение метода класса WC_Widget_Product_Categories

    Для этого нужно создать файл [текущая_тема]/widgets/widget-product_categories.php

    Поместить туда код переопределяемого метода
    class Custom_WC_Widget_Product_Categories extends WC_Widget_Product_Categories {
     
      function widget( $args, $instance ) {
        // скопировать весь код метода из:
        // woocommerce/includes/widgets/class-wc-widget-product-categories.php
        // добавить нужный класс в строке с выводом открывающего тега списка
        echo '<ul class="product-categories <b>my-class</b>">';
      }
    }


    Затем поместить в functions.php активной темы следующий код:

    /**
     * WC_Widget_Product_Categories widget override
     */
    add_action( 'widgets_init', 'override_woocommerce_widgets', 15 );
    
    function override_woocommerce_widgets() {
    
      if ( class_exists( 'WC_Widget_Product_Categories' ) ) {
        unregister_widget( 'WC_Widget_Product_Categories' );
     
        include_once( 'widgets/widget-product_categories.php' );
     
        register_widget( 'Custom_WC_Widget_Product_Categories' );
      }
    
    }

    Здесь происходит повторная регистрация виджета с уже измененными параметрами, при этом файлы ядра не меняются.

    Собственно, все.

    P.S. Более подробно описано здесь.
    Ответ написан
    1 комментарий