вариации в WooCommerce
Я использую плагин WooCommerce для интернет-магазина. Проблема в том, что он позволяет максимум 50 вариаций для товара, но моему клиенту нужно около 350 вариаций с атрибутами размер, цвет и т.д. Есть ли способ изменить код или другие решения?
Спасибо,
Фрэнк

Просто для ясности, в WooCommerce нет ограничения в 50 вариаций для одного товара - это большое заблуждение.
Вы определенно можете иметь гораздо больше вариаций. Я сам делал это много раз и никогда не испытывал проблем. Для общего понимания вариаций посмотрите документацию WooCommerce: Вариации товаров.
Что касается ограничения, оно относится к возможности автоматического связывания вариаций: Связывание возможных вариаций. Там говорится:
Вместо добавления каждой вариации по одной, вы можете нажать кнопку 'связать все вариации'. Это создаст новую вариацию для каждой возможной комбинации атрибутов вариаций (максимум 50 за один раз).
Важная часть - »максимум 50 за один раз« - это означает, что вам нужно запускать процесс несколько раз, если ваш выбор атрибутов приводит к большему количеству возможных вариаций. Ограничение существует »для предотвращения проблем с памятью« - дополнительно смотрите ответ @brasofilo.
Дополнительная информация: ответ @brasofilo относится к довольно старой версии, имейте это в виду; ответ @shamim539 относится к более новой версии 2.x, но может быть улучшен.
Приведенный им пример кода находится внутри условия, которое проверяет, была ли определена переменная - посмотрите:
if ( ! defined( 'WC_MAX_LINKED_VARIATIONS' ) ) {
define( 'WC_MAX_LINKED_VARIATIONS', 49 );
}
Поэтому нет необходимости вносить изменения в файл woocommerce-ajax.php
, это все равно будет перезаписано при обновлении плагина. Просто определите переменную в вашем functions.php
:
define( 'WC_MAX_LINKED_VARIATIONS', 249 );
Но: Если вы собираетесь увеличить лимит, убедитесь, что ваш сервер может справиться с увеличенным лимитом.
Если у вас возникают проблемы с сохранением большого объема данных - как предложил @user1418998 - это также документировано: Проблемы с сохранением большого объема данных (вариации, тарифы и т.д.).

На данный момент у нас есть ограничение в 50 связанных вариаций для одного товара (чтобы избежать проблем с памятью). Все, что превышает это количество, считается очень сложным и требует индивидуальной доработки. Управлять одним товаром с более чем 3000 вариаций непросто в любой eCommerce-платформе.
Тем не менее, похоже, вам придется модифицировать код плагина или создать хук (не уверен, как именно, но плагин поддерживает это для данной функции), чтобы изменить поведение функции woocommerce_link_all_variations
.
Макс. 100 — это оригинальный комментарий в файле.
/*
* Файл: /plugins/woocommerce/woocommerce-ajax.php
* Строка: 487
* WooCommerce: v1.5.6
*/
// Макс. 100
if ($added>49) break;

Спасибо, Brasofilo... но мне интересно, как парню из этого поста удалось получить такое огромное количество вариаций??
http://wordpress.stackexchange.com/questions/53750/woocommerce-too-many-variations

Исходя из моего опыта, проблема может быть скрыта в файле php.ini! Найдите параметр max_input_vars, раскомментируйте его и увеличьте значение до 2000 или больше, в зависимости от ваших потребностей. В моем случае без этого изменения я мог ввести максимум 40 вариаций, при большем количестве происходило смешение заказов, изображения и цены не сохранялись. У меня был такой огромный объем входных переменных из-за работы плагина Woocommerce WPML вместе с другими плагинами, такими как Ether Content Builder.
