• Resolved manaraga

    (@manaraga)


    Здравствуйте, спасибо за отличный плагин.
    Подскажите как вызвать функцию транслитирации в своем php коде?
    (Потребовалась предварительная проверка слага на его присутствие в уже созданных термах)

    Пробую $term_translitera = wp_translitera::transliterate($term_name);
    Возвращает пустую строку.

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author Evgen Yurchenko

    (@yurchenkoev)

    Здравствуйте, дублировать слаг плагин не будет, тк функции выполняются после стандартной WP которая это мониторит.
    Опишите детальнее задачу, я добавлю ХУК, что бы вы могли работать через него.
    Ошибка с возвратом пустой строки при повторном обращении к функции (в вашем случае она повторная) уже локализована, сегодня закончу тесты и выпущу обновление.

    Thread Starter manaraga

    (@manaraga)

    Я парсирую продукцию для интернет магазина и пользуюсь woocommerce rest api. Часто возникает ошибка при создании аттрибута продукции методом $woocommerce->post(‘products/attributes’, $args);

    Fatal error: Uncaught Automattic\WooCommerce\HttpClient\HttpClientException: Error: Слаг “u” уже используется. Пожалуйста, укажите другой. [woocommerce_rest_cannot_create]

    Связано с тем что например ранее был создан слаг razmer-mm из с имени “Размер, мм”
    а теперь происходит попытка создания такого же слага из имени “Размер, мм.”

    Поэтому и хотелось сделать предварительную проверку будущего слага аттрибута, путем вызова вашей транслитирирующей функции и сравнения ее с массивом всех слагов аттрибутов.

    Спасибо.

    Plugin Author Evgen Yurchenko

    (@yurchenkoev)

    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); – некоректен, надо заглушить обращение к функции из вне)

    Thread Starter manaraga

    (@manaraga)

    Да я пробовал вместе с sanitize_title. Сейчас еще и с Null. Строка все равно пустая.

    А по поводу создания аттрибутов продукции, то там сначала создается группа атрибутов, а в нее уже добавляются термы. С термами проблем нет – их действительно wp контролирует. А вот с группой аттрибутов есть. Даже если через админку добавляешь такую группу у которой разные имена, но одинаковый слаг – то возникает ошибка что такой слаг уже есть. Видимо это контролируется какой то woocommerce функцией и там нет защиты.

    Вообщем нужно такую защиту делать самому и для этого нужно научиться возвращать транслитирированную строку.

    Спасибо.

    Plugin Author Evgen Yurchenko

    (@yurchenkoev)

    В течении дня будет обновление до p1.2.2. Оно должно корректно работать с
    $term_translitera = sanitize_title($term_name); (1)
    и
    $term_translitera = wp_translitera::transliterate_force(NULL,$term_name); (2)

    1.случай будет для варианты выключенного форсированного режима, если используете форсированный режим используйте второй вариант.

    По результату прошу отписаться.

    Plugin Author Evgen Yurchenko

    (@yurchenkoev)

    Обновление залито.
    На следующие версии сделаю набор хуков, для более удобного решения. иструкции с описанием выложу у себя на сайте

    Thread Starter manaraga

    (@manaraga)

    Спасибо, теперь ответ какой нужно!
    Плагин супер!

    Plugin Author Evgen Yurchenko

    (@yurchenkoev)

    Спасибо за обращение. Следите за обновлениями. Будет несколько хуков один из них будет для обработки строки сразу перед возвратом из транслитерации, в котором вы сможете получить значение, выполнить все необходимые манипуляции и вернуть.

    Запрос закрываю как решенный.

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Manual function’ is closed to new replies.