Intereting Posts
Отправлять электронную почту администратору, когда пользовательский тип сообщения создается Пользовательская конечная точка PHP для вызова AJAX плагина Пожалуйста, помогите мне в этом примере с фильтром, чтобы понять, как они работают Показать запись в категории Получить титульный заголовок страницы верхнего уровня Как get_posts с эскизом сообщения? Есть ли риск для безопасности, предоставляющий кому-то временный доступ к коду моего блога? Woocormmerce добавляет цену на персонализированный пост и делает его доступным для продажи Как отображать пронумерованные страницы в категории Как создать дочерний / дочерний пользователь под родительским пользователем Добавить динамический цвет для каждого элемента категории Как отключить миниатюры изображений из медиа-менеджера, но не отправлять медиа-загрузчик? BuddyPress – Как добавить выход в навигационное меню Нужно ли включать textdomain, если моя тема не поддерживает перевод? Как я могу показывать сообщения для одной категории?

Несколько экземпляров данных в таблице пользовательских таблиц плагинов при активации плагина

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

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

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

Имейте ввиду, из-за большого объема данных я решил использовать «longtext» в качестве типа столбца таблицы.

Создание типа столбцов не является УНИКАЛЬНЫМ.

Мой вопрос Как я могу запретить плагину вставлять те же данные, которые должны были быть вставлены в базу данных только один раз при активации плагина?

Добавить проверку, когда плагин активирован, чтобы узнать, существуют ли данные (столбец / таблица) в db или нет?

Если данные уже существуют, пропустите часть db и просто пометьте плагин как активный.

Нашел отличное решение.

В принципе, вы можете проверить, существует ли имя параметра и если оно уже существует, вы не вставляете свои данные.

Основная идея заключается в том, что каждый раз, когда ваша схема базы данных изменяется и требует обновления в базе данных пользователя, вам необходимо увеличить DB_VER на 1, а затем написать процедуру обновления базы данных для текущего DB_VER. Это создаст какой-то эволюционный след вашей схемы базы данных, что очень полезно, когда ваш пользователь должен обновиться с древней версии до последней. Сам WordPress отслеживает изменения схемы таким образом, поэтому безопасно обновлять WordPress 2.x до 3.x без особых проблем.

Полное объяснение того, как эту работу можно найти здесь: http://solislab.com/blog/plugin-activation-checklist/#manage-version