Не получается переопределить функцию в файле plugins\woocommerce\includes\wc-template-functions.php

Мне нужно изменить вёрстку главной страницы магазина. Изменить количество столбцов с 4 на 3. В файле plugins\woocommerce\includes\wc-template-functions.php есть функция, отвечающая за количество столбцов товаров:

function wc_get_default_products_per_row() {
    $columns      = get_option( 'woocommerce_catalog_columns', 4 );
    ...
}

Я скопировал её в function.php моей темы, изменил количество столбцов и добавил перед ней удаление старого хука и добавление нового:

remove_action('woocommerce_shop_loop_item_title', 'wc_get_default_products_per_row', 10);
add_action('woocommerce_shop_loop_item_title', 'wc_get_default_products_per_row_1', 10);
function wc_get_default_products_per_row_1() {
        $columns      = get_option( 'woocommerce_catalog_columns', 3 );
        ...
    }

И woocommerce плевать хотел на это всё. Грузит старый хук, как будто нового нет. Подскажите пожалуйста, что не так?


Ответы (1 шт):

Автор решения: KAGG Design

Непонятно, почему вы решили, что фильтр _title может иметь хоть какое-то отношение к столбцам.

Функция wc_get_default_products_per_row() фильтрует результат своей работы через apply_filters( 'loop_shop_columns', $columns );.

Это означает, что вам надо добавить такой код в function.php вашей темы:

function my_loop_shop_columns_filter( $columns ) {
    return 3;
}

add_filter( 'loop_shop_columns', 'my_loop_shop_columns_filter' );
→ Ссылка