Настройка плагинов во время обновления плагинов

Я спросил об этом на форуме WordPress Plugins / Hacks, потому что вчера в режиме «Только для чтения» SE находился в режиме только для чтения. Я получил ответ, но «относительная noobie» пинает, так как мне нужен пример, чтобы узнать, как использовать методы, предоставленные вами.

Оригинальное сообщение и ответ

Перепроверенный ниже пример будет соответствовать …


Я относительно новичок в WordPress, но я программист для жизни. Из-за этого мне не нравится изобретать колесо. Недавно я загрузил плагин. Я могу изменить это сообщение, чтобы сказать, что такое плагин, если это необходимо, но это более обобщенно. Этот плагин отслеживает элементы и создает информационные бюллетени на основе этих отслеживаемых элементов.

Одним из таких элементов является «Пол». Поскольку посетители, которых я получаю, иногда являются парами, они обмениваются адресами электронной почты (электронная почта является обязательным полем), поэтому я не могу требовать от них, чтобы у каждого есть электронное письмо, поэтому в поле «Пол» я добавил пару, протестировал ее, и она отлично работает , Теперь он добавляет m для мужчин, f для женщин и ac для пары к настраиваемой таблице плагина в базе данных WordPress.

Недавно у плагина было обновление, и я его обновил. Поскольку я модифицировал фрагменты в основных файлах плагина, обновление перезаписало настраиваемое поле, которое я добавил, в результате чего мне пришлось повторно добавить пользовательскую работу, которую я сделал. Может ли кто-нибудь сказать мне, какой лучший подход – настроить плагин, сохраняя его актуальность? Есть ли крючок, который я могу использовать / добавить, который выполнит то, что я прошу и т. Д.?


Я нашел это:

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

ОБНОВИТЬ
Название плагина: Информационный бюллетень

Пример Редактировать:

WP-содержание / плагины / бюллетень / пользователей / edit.php

<tr valign="top"> <th>Gender</th> <td> <?php $controls->select('sex', array('n' => 'Not specified', 'f' => 'Female', 'm' => 'Male', 'c' => 'Couple')); ?> <div class="hints"> This can also be a couple, if our members are sharing e-mail addresses. </div> </td> </tr> 

Solutions Collecting From Web of "Настройка плагинов во время обновления плагинов"

У вас есть два варианта, которые я вижу после просмотра плагина, хотя могут быть и другие способы решения этой проблемы. Мое время ограничено, поэтому я дам вам некоторое представление о том, что вы можете сделать сейчас, в промежуточный период.

Прежде всего, автор плагина предоставляет вам несколько дополнительных фильтров:

  • newsletter_profile_extra
  • newsletter_subscription_extra
  • newsletter_profile_save

(см. бюллетень / подписка / подписка.php)

Вы можете использовать эти фильтры для добавления дополнительных элементов управления на соответствующие страницы подписки и профиля.

Тем не менее, обратите внимание, что с первого взгляда, похоже, нет каких-либо фильтров для увеличения существующих полей, таких как поле пола / пола.

Но … Что вы можете сделать, так это использовать эти фильтры, чтобы добавить дополнительное поле, такое как флажок, который запрашивает у пользователя, являются ли они парочкой, и если они отмечают этот флажок, вы можете использовать третий фильтр newsletter_profile_save для фильтрации значений до их вставки в базу данных.

На этом этапе вы определили бы, что если флажок установлен, вы заменяете значение «sex» или «c» или любое другое значение базы данных, которое вы хотите сохранить для последующего поиска:

 //pseudo-code example if ( isset($_POST['are_you_a_couple']) && $_POST['are_you_a_couple'] === 1 ) { $_POST['sex'] = 'couple'; } 

Процесс, описанный выше, является только обзором высокого уровня и намного более эффективен, чем мое следующее предлагаемое решение, которое заключается в том, чтобы вставить собственный собственный пользовательский файл JavaScript на соответствующие страницы, на которых отображаются элементы управления формой, и добавить дополнительную возможность для снижения пола / пола вниз.

Примером может быть добавление следующего кода в файл functions.php темы:

 /** * Proper way to enqueue scripts and styles */ function custom_newsletter_scripts() { wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/custom-control.js', array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'custom_newsletter_scripts' ); 

Затем создайте файл custom-control.js в своей теме, помещенный в каталог /js/ или где бы вы ни wp_enqueue_script сохранить скрипт, просто убедитесь, что ваш путь отражает это в вашем вызове wp_enqueue_script выше.

В вашем файле JavaScript вы можете сделать что-то по этому поводу:

 ;(function($){ $(document).ready(function(){ $('#gender_select_menu') .append($("<option></option>") .attr("value",'c') .text('Couple')); }); })(jQuery); 

Пример кода грубо, выполните свой JavaScript по своему усмотрению, если элемент управления не существует в точке DOMReady, вы можете добавить тайм-аут или изменить DOM в $(window).load(function(){});

Этого должно быть достаточно, чтобы заставить вас идти в правильном направлении и сохранить ваши изменения в будущем доказательством от дальнейшей потери обновлений плагинов.