Attributes in woocommerce
-
Hey! how to turn off translation in product attributes in woocommerce?
-
Hi,
The latest version of cyr2lat does not transliterate product attributes.
updated plugin … translates ….
https://prnt.sc/10d2a9sЯ неправильно понял ваш вопрос. Транлитерация существующих атрибутов отменена при фоновой конвертации в последней версии плагина. При создании новых атрибутов, транслитерация работает. Для того, чтобы её отключить, добавьте следующий код в
functions.php
вашщей темы:/** * Sanitize taxonomy name. * * @param string $sanitized Sanitized taxonomy name. * @param string $taxonomy Taxonomy name. * * @return string */ function my_sanitize_taxonomy_name( $sanitized, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin ) { return $sanitized; } remove_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9 ); $sanitized = urldecode( sanitize_title( urldecode( $taxonomy ) ) ); add_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9, 3 ); return $sanitized; } add_filter( 'sanitize_taxonomy_name', 'my_sanitize_taxonomy_name', PHP_INT_MAX, 2 );
@kaggdesign может в ридми добавить?
@mihdan лучше сделать выбор типов постов и таксономий на странице опций. Это сейчас в работе.
При создании новых атрибутов, транслитерация работает.
Может, имеет смысл по умолчанию отключить её для атрибутов?
приветствую! не работает код.. может нужно как-то жестко прописать атрибут pa_color ?
Код работает, я его тестировал. При наличии этого кода, новые атрибуты WooCommerce не транслитерируются.
Опишите, как вы использзовали этот код и как именно он не работает. Что вы делаете, что желаете получить и что происходит на самом деле.
add_filter( ‘Цвет’, ‘my_sanitize_taxonomy_name’, PHP_INT_MAX, 2 );
добавляю новый цвет в атрибут Цвет , все переводит..
Нет такого фильтра
Цвет
. Не надо ничего сочинять. Просто скопируйте код выше целиком в functions.php.Добрый день! извините за назойливость.. я вот короткое видео снял…
видеоПроблема в неправильной терминологии. Вы спрашиваете про атрибуты, а добавляете значение (термин) атрибута.
Я посмотрю, что можно сделать.
Замените код, указанный выше, следующим:
/** * Sanitize taxonomy name. * * @param string $sanitized Sanitized taxonomy name. * @param string $taxonomy Taxonomy name. * * @return string */ function my_sanitize_taxonomy_name( $sanitized, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin ) { return $sanitized; } remove_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9 ); $sanitized = urldecode( sanitize_title( urldecode( $taxonomy ) ) ); add_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9, 3 ); return $sanitized; } add_filter( 'sanitize_taxonomy_name', 'my_sanitize_taxonomy_name', PHP_INT_MAX, 2 ); /** * Filters a term field value before it is sanitized. * * @param mixed $value Value of the term field. * @param string $taxonomy Taxonomy slug. * * @return mixed */ function my_pre_term_slug_before( $value, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin ) { return $value; } remove_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9 ); return $value; } add_filter( 'pre_term_slug', 'my_pre_term_slug_before', - PHP_INT_MAX, 10, 2 ); /** * Filters a term field value before it is sanitized. * * @param mixed $value Value of the term field. * @param string $taxonomy Taxonomy slug. * * @return mixed */ function my_pre_term_slug_after( $value, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin ) { return $value; } add_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9, 3 ); return $value; } add_filter( 'pre_term_slug', 'my_pre_term_slug_after', PHP_INT_MAX, 10, 2 );
Работает.. Спасибо большое!
Второй вариант кода имеет недостаток – он также блокирует транслитерацию терминов обычных таксономий. Вот третий вариант, в котором этот недостаток устранён:
/** * Sanitize taxonomy name. * * @param string $sanitized Sanitized taxonomy name. * @param string $taxonomy Taxonomy name. * * @return string */ function my_sanitize_taxonomy_name( $sanitized, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin ) { return $sanitized; } remove_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9 ); $sanitized = urldecode( sanitize_title( urldecode( $taxonomy ) ) ); add_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9, 3 ); return $sanitized; } add_filter( 'sanitize_taxonomy_name', 'my_sanitize_taxonomy_name', PHP_INT_MAX, 2 ); /** * Filters a term field value before it is sanitized. * * @param mixed $value Value of the term field. * @param string $taxonomy Taxonomy slug. * * @return mixed */ function my_pre_term_slug_before( $value, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin || 0 !== strpos( $taxonomy, 'pa_' ) ) { return $value; } remove_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9 ); return $value; } add_filter( 'pre_term_slug', 'my_pre_term_slug_before', - PHP_INT_MAX, 10, 2 ); /** * Filters a term field value before it is sanitized. * * @param mixed $value Value of the term field. * @param string $taxonomy Taxonomy slug. * * @return mixed */ function my_pre_term_slug_after( $value, $taxonomy ) { global $cyr_to_lat_plugin; if ( null === $cyr_to_lat_plugin || 0 !== strpos( $taxonomy, 'pa_' ) ) { return $value; } add_filter( 'sanitize_title', [ $cyr_to_lat_plugin, 'sanitize_title' ], 9, 3 ); return $value; } add_filter( 'pre_term_slug', 'my_pre_term_slug_after', PHP_INT_MAX, 10, 2 );`
- The topic ‘Attributes in woocommerce’ is closed to new replies.