Я использую API настроек для хранения настроек, которые пользователь делает для плагина. Вдобавок, когда он или она нажимает кнопку «Сохранить» на странице плагина, я хочу сделать несколько вызовов другого API в wordpress (сгенерировать / обновить форму CF7), а не просто разместить сообщение в 'options.php'
Сохранение настроек работает, следуя руководствам и рекомендациям по использованию настроек api. Ниже прилагается
Это фрагменты кода:
add_action('option_update_ordered_fields_in_form','set_cf7_form');
.....
function setup_cf7_form($oldval,$newval,$option) {
...
}
....
function stpz_settings_page() {
....?>....
<form method = "post" action = "options.php">
<?php settings_fields( 'form_my_settings' ); ?>
<?php do_settings_sections( 'form_my_settings' ); ?>
<tr>
<td><input id = "result" type = "hidden" name = "ordered_fields_in_form" value = "
<?php echo esc_attr( get_option('ordered_fields_in_form') ); ?>" /></td>
<td><?php submit_button(); ?></td>
</tr>
</form>
.....
<?php
}
?>
кажется, что функция setup_cf7_form вообще не вызывается при нажатии кнопки отправки. Я бы наивно подозревал, что это приведет к обновлению опции 'order_fields_in_form' и, следовательно, вызовет ловушку.
(он действительно обновляет параметр, который я могу увидеть, если перезагружу страницу настроек для плагина)
Я подозреваю, что это может быть совершенно неправильный способ сделать это.






хорошо, проблема заключалась всего в нескольких синтаксических ошибках. Оставив здесь то, что я описал выше, на самом деле отлично работает, как задумано.
Правильная линия для добавления крючка:
add_action('update_option_ordered_fields_in_form','setup_cf7_form',10,3);
Я не уверен, нужны ли аргументы «10, 3», но, возможно, они нужны, поскольку целевая функция принимает 3 аргумента. Однако основной проблемой было отсутствие слова «вверх» в имени функции и преобразованные в слова в имени ловушки (update_option вместо option_update), ну: - /