Я решил перенести товары с одного старого сайта (не на WooCommerce) на новый сайт с WooCommerce. Я быстро набросал скрипт для экспорта пользовательских постов в формат CSV, пригодный для WooCommerce, и при первой попытке импорта я сразу получил:
Это, конечно же, связано с длинными именами атрибутов и ленью разработчиков WooCommerce — почему функционал импорта не мог обеспечить правильную обрезку слагов для импортируемых атрибутов товара? Я зашел в Google и нашел эту тему: https://ru.wordpress.org/support/topic/%D0%B4%D0%BB%D0%B8%D0%BD%D0%B0-%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B0-2 - там, где решение не нашлось, тему закрыли.
Ну и после поиска я нашел место в коде WooCommerce, где происходит эта самая обработка слагов для загруженных терминов таксономии (атрибутов товара).
Крючок для пилы sanitize_taxonomy_name и добавил свой фильтр:
Вставьте этот код в файл function.php вашей активной темы, и вы больше не увидите сообщение о длинных метках.add_filter( ‘sanitize_taxonomy_name’, function( $urldecode, $taxonomy ) { $urldecode = mb_substr($urldecode, 0, 27, ‘utf-8’); return $urldecode; }, 10, 2 );
p.s.: Наверное, стоит написать об этом в WooCommerce — это уже много лет одна и та же тривиальная проблема, которую они никак не могут решить! и я не увидел этого в коде Слизни с уникальными атрибутами и не проверял как это работает (ведь в импорте могут быть похожие названия атрибутов на основе первого 28 символов слизняк) : $urldecode = wp_unique_term_slug($urldecode, $taxonomy);
Теги: #php #wordpress #woocommerce #taxonomy
-
Google Купил Онлайн-Конкурента Word
19 Oct, 24 -
Cronvix: Дружественный Блог-Сервис
19 Oct, 24 -
4 Причины Прокрастинации (В Тексте)
19 Oct, 24