Длина атрибута
-
Здравствуйте.
Не подскажете как увеличить длину атрибута?
Покопался в БД и ничего не получилось(
Например:
Taxonomy “Автоматическое выравнивание громкости (AVL)” name is more than 28 characters. Change it, please
-
tuxfighter, Вы что, действительно думаете меня убедить не верить своим глазам? Не верить тому, что я вижу и видел ранее? (В тч что было в топиках как с моим участием, так и без меня, с др. людьми, пытающихся возражать «местным»)
Не стоит.пост от 2014 года, как я и говорил выше.
Это действующие правила (уж коль опубликованы)! Всё!
tuxfighter, Вы что, действительно думаете меня убедить не верить своим глазам?
отнють — я аргументированно отвечаю на ваши нападки. только и всего -))
А вот убидить кого-то в чем-то…… я уже давно бросил заниматься подобным, я не проповедникТоже бьюсь с этой проблемой.
Раскопала совет на каком-то форуме, результаты дал, но лучше не стало 🙂Внесла правки в файле плагина woocommerce для WPAI record.php.
Находится здесь:
«../wp-content/plugins/woocommerce-xml-csv-product-import/models/import/record.php»
Заменила допустимую длину названия атрибута с 31 на своё число.
http://prntscr.com/n8o8yoПроблема с тем, что не создавались атрибуты — ушла. Атрибуты создаются, вместе со слагами, которые автоматически обрезаются по на дефолтных 28 символах.
Но появилась другая проблема.
Раньше при импорте 1 уникальный атрибут создавался 1 раз и использовался во всех импортируемых товарах. Теперь он создается столько раз, сколько есть товаров в импорте, в которых ему присвоено значение. Или даже без учёта этого, просто по к-ву товаров (не вникала). Во всех случаях слаг для дублирующегося атрибута создается один и тот же.
http://prntscr.com/n8oj9zТак как я не программист, то не могу решить сама этот вопрос…
Может, кто подскажет, что нужно доделать 🙂
Думаю, было бы идеально сменить функционал с создания и проверки по имени атрибута на создание и проверку по слагу (т.к. бывают атрибуты, называющиеся одинаково, но с разными значениями; например «состояние = жидкий или твердый» или «состояние = новый или б/у».Прикладываю код функции:
function create_taxonomy($attr_name, $logger, $prefix = 1){ global $woocommerce; $attr_name_real = $prefix > 1 ? $attr_name . " " . $prefix : $attr_name; if ( ! taxonomy_exists( wc_attribute_taxonomy_name( $attr_name_real ) ) ) { // Grab the submitted data $attribute_name = ( isset( $attr_name ) ) ? wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real ) ) : ''; $attribute_label = stripslashes( (string) $attr_name ); $attribute_type = 'select'; $attribute_orderby = 'menu_order'; if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) { $prefix++; return $this->create_taxonomy($attr_name, $logger, $prefix); //$logger and call_user_func($logger, sprintf(__('- <b>WARNING</b>: Slug “%s” is not allowed because it is a reserved term. Change it, please.', 'wpai_woocommerce_addon_plugin'), wc_attribute_taxonomy_name( $attribute_name ))); } else{ // Register the taxonomy now so that the import works! $domain = wc_attribute_taxonomy_name( $attr_name_real ); if (strlen($domain) < 128){ $this->wpdb->insert( $this->wpdb->prefix . 'woocommerce_attribute_taxonomies', array( 'attribute_label' => $attribute_label, 'attribute_name' => $attribute_name, 'attribute_type' => $attribute_type, 'attribute_orderby' => $attribute_orderby, 'attribute_public' => 1 ) ); register_taxonomy( $domain, apply_filters( 'woocommerce_taxonomy_objects_' . $domain, array('product') ), apply_filters( 'woocommerce_taxonomy_args_' . $domain, array( 'hierarchical' => true, 'show_ui' => false, 'query_var' => true, 'rewrite' => false, ) ) ); delete_transient( 'wc_attribute_taxonomies' ); $attribute_taxonomies = $this->wpdb->get_results( "SELECT * FROM " . $this->wpdb->prefix . "woocommerce_attribute_taxonomies" ); set_transient( 'wc_attribute_taxonomies', $attribute_taxonomies ); $logger and call_user_func($logger, sprintf(__('- <b>CREATED</b>: Taxonomy attribute “%s” have been successfully created.', 'wpai_woocommerce_addon_plugin'), wc_attribute_taxonomy_name( $attribute_name ))); } else{ $logger and call_user_func($logger, sprintf(__('- <b>WARNING</b>: Taxonomy “%s” name is more than 128 characters. Change it, please.', 'wpai_woocommerce_addon_plugin'), $attr_name)); } } } else{ if ( in_array( wc_sanitize_taxonomy_name( stripslashes( (string) $attr_name_real)), $this->reserved_terms ) ) { $prefix++; return $this->create_taxonomy($attr_name, $logger, $prefix); //$logger and call_user_func($logger, sprintf(__('- <b>WARNING</b>: Slug “%s” is not allowed because it is a reserved term. Change it, please.', 'wpai_woocommerce_addon_plugin'), wc_attribute_taxonomy_name( $attribute_name ))); } } return $attr_name_real; }
- Тема «Длина атрибута» закрыта для новых ответов.