Здравствуйте, дублировать слаг плагин не будет, тк функции выполняются после стандартной WP которая это мониторит.
Опишите детальнее задачу, я добавлю ХУК, что бы вы могли работать через него.
Ошибка с возвратом пустой строки при повторном обращении к функции (в вашем случае она повторная) уже локализована, сегодня закончу тесты и выпущу обновление.
Я парсирую продукцию для интернет магазина и пользуюсь woocommerce rest api. Часто возникает ошибка при создании аттрибута продукции методом $woocommerce->post(‘products/attributes’, $args);
Fatal error: Uncaught Automattic\WooCommerce\HttpClient\HttpClientException: Error: Слаг “u” уже используется. Пожалуйста, укажите другой. [woocommerce_rest_cannot_create]
Связано с тем что например ранее был создан слаг razmer-mm из с имени “Размер, мм”
а теперь происходит попытка создания такого же слага из имени “Размер, мм.”
Поэтому и хотелось сделать предварительную проверку будущего слага аттрибута, путем вызова вашей транслитирирующей функции и сравнения ее с массивом всех слагов аттрибутов.
Спасибо.
1. Форсированный режим включен? Я вроде его тестировал на такую муть.. но правда еще с 2.* версиями
2. правильно делать через
$term_translitera = sanitize_title($term_name);
или на край
$term_translitera = wp_translitera::transliterate_force(NULL,$term_name);
тк в чистом виде $term_translitera = wp_translitera::transliterate($term_name); – некоректен, надо заглушить обращение к функции из вне)
Да я пробовал вместе с sanitize_title. Сейчас еще и с Null. Строка все равно пустая.
А по поводу создания аттрибутов продукции, то там сначала создается группа атрибутов, а в нее уже добавляются термы. С термами проблем нет – их действительно wp контролирует. А вот с группой аттрибутов есть. Даже если через админку добавляешь такую группу у которой разные имена, но одинаковый слаг – то возникает ошибка что такой слаг уже есть. Видимо это контролируется какой то woocommerce функцией и там нет защиты.
Вообщем нужно такую защиту делать самому и для этого нужно научиться возвращать транслитирированную строку.
Спасибо.
В течении дня будет обновление до p1.2.2. Оно должно корректно работать с
$term_translitera = sanitize_title($term_name); (1)
и
$term_translitera = wp_translitera::transliterate_force(NULL,$term_name); (2)
1.случай будет для варианты выключенного форсированного режима, если используете форсированный режим используйте второй вариант.
По результату прошу отписаться.
Обновление залито.
На следующие версии сделаю набор хуков, для более удобного решения. иструкции с описанием выложу у себя на сайте
Спасибо, теперь ответ какой нужно!
Плагин супер!
Спасибо за обращение. Следите за обновлениями. Будет несколько хуков один из них будет для обработки строки сразу перед возвратом из транслитерации, в котором вы сможете получить значение, выполнить все необходимые манипуляции и вернуть.
Запрос закрываю как решенный.