Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка при активации Specified key was too long; #37

Open
ipolikarpov opened this issue Dec 18, 2019 · 5 comments
Open

Comments

@ipolikarpov
Copy link

При активации плагина в веб-интерфейсе появляется ошибка:

Плагин создал 816 символов неожиданного вывода при активации. Если возникнет ошибка “headers already sent” с RSS-лентами или иные проблемы, то попробуйте деактивировать или удалить этот плагин.

В debug.log три идентичных ошибки:

База данных WordPress возвратила ошибку Specified key was too long; max key length is 1000 bytes в ответ на запрос ALTER TABLE wp_usermeta ADD INDEX wc1c_meta_key_meta_value (meta_key, meta_value(36)), выполненный activate_plugin, do_action('activate_woocommerce-and-1centerprise-data-exchange/woocommerce-1c.php'), WP_Hook->do_action, WP_Hook->apply_filters, wc1c_activate

Версии ПО:
WP 5.3.1
WC 3.8.1
MySQL Ver 14.14 Distrib 5.7.28

@sgtpep
Copy link
Owner

sgtpep commented Dec 18, 2019

Здравствуйте! А можете в коде плагина, где содержится строка ADD INDEX wc1c_meta_key_meta_value попробовать заменить meta_key, на meta_key(125), и повторно активировать плагин?

@ipolikarpov
Copy link
Author

Спасибо большое за оперативную реакцию!
Да, это помогло.

Правда, теперь в дебагe появился нотайс

PHP Notice: Undefined offset: 1 in /wp-content/plugins/woocommerce-and-1centerprise-data-exchange/admin.php on line 28

@sgtpep
Copy link
Owner

sgtpep commented Dec 18, 2019

Тогда нужно повыводить через var_dump() что там помещается в $guid в 27 строке в /wp-content/plugins/woocommerce-and-1centerprise-data-exchange/admin.php.

Интересно, это у всех пользователей wordpress проявляется или только в вашем случае (например, какие-то нестандартные умолчания в mysql).

@ipolikarpov
Copy link
Author

ipolikarpov commented Dec 19, 2019

Причина нотайса:

Function get_woocommerce_term_meta
WooCommerce Term Meta API
WC tables for storing term meta are deprecated from WordPress 4.4 since 4.4 has its own table. This function serves as a wrapper, using the new table if present, or falling back to the WC table.

https://docs.woocommerce.com/wc-apidocs/function-get_woocommerce_term_meta.html

Функция get_woocommerce_term_meta с версии 3.6 считается устаревшей! Используйте get_term_meta

Функция используется в строке 27 файла admin.php, её необходимо заменить на WP-функцию get_term_meta.

@Vladij
Copy link

Vladij commented Nov 10, 2020

Тогда нужно повыводить через var_dump() что там помещается в $guid в 27 строке в /wp-content/plugins/woocommerce-and-1centerprise-data-exchange/admin.php.

Интересно, это у всех пользователей wordpress проявляется или только в вашем случае (например, какие-то нестандартные умолчания в mysql).

пустая строка приходит если категория не с 1С

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants