Не получается переопределить функцию в файле 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 шт):
Непонятно, почему вы решили, что фильтр _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' );