Какой хук использовать для инициализации перехода settings -> general?
Подскажите пожалуйста какой хук использовать в WP для инициации перехода в setting -> general
Проблема в следущеем
Есть скрипт который создает доп поля в настройках WP они создаються с помощью function default_value_for_options( $name ) присваиваю им дефолтные значение все работает до момента сбора данных с этих полей это я делаю в скрипте №2 получаю на выходе пустые значение но если я просто перейду в админке setting -> general все работает поля получают свои значения. Хотелбы сделать так чтобы можно было обойтись без перехода в настройки
Скрипт №1:
global $wpdb;
add_action('admin_init', 'add_option_fields_to_general_admin_page');
function add_option_fields_to_general_admin_page() {
$options = array(
'web-hook-sometext' => 'sometext',
'sometext-source' => 'sometext',
'sometext-source' => 'sometext',
'sometext-source' => 'sometext',
'sometext-source' => 'sometext'
);
add_settings_section(
'sometext_setting_section',
'sometext Source',
'sometext_setting_section_cb_func',
'general'
);
foreach ($options as $ID => $label) {
register_setting( 'general', $ID);
add_settings_field(
'sometext' . $ID,
$label,
'sometext_setting_cb_func',
'general',
'sometext_setting_section',
array(
'label_for' => 'sometext' . $ID,
'class' => $ID,
'option_name' => $ID
)
);
}
}
function sometext_setting_cb_func( $val ) {
$name = $val['option_name'];
echo '<input type="text" name="' . $name .'"
class="' . $val['class'] .'"
value="' . default_value_for_options( $name ) . '" />';
}
function sometext_setting_section_cb_func($arg) {
}
function default_value_for_options( $name ) {
switch ($name) {
case $name === "web-hook-sometext" && empty(get_option($name)):
add_option( $name, "someurl");
return esc_attr(get_option($name));
break;
case $name === "sometext-source" && empty(get_option($name)):
add_option( $name, "13");
return esc_attr(get_option($name));
break;
case $name === "sometext-source" && empty(get_option($name)):
add_option( $name, "7");
return esc_attr(get_option($name));
break;
case $name === "sometext-source" && empty(get_option($name)):
add_option( $name, "15");
return esc_attr(get_option($name));
break;
case $name === "sometext-source" && empty(get_option($name)):
add_option( $name, "14");
return esc_attr(get_option($name));
break;
default:
return esc_attr( get_option($name) );
}
}
?>
Скрипт №2:
<?php
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/wp-db.php' );
if (!$wpdb) {
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
} else {
global $wpdb;
}
$get_source_options_from_db = array(
'sometext' => $wpdb->get_col("SELECT * FROM `{$table_prefix}options` WHERE `option_name` LIKE 'sometext-source'", 2),
'sometext' => $wpdb->get_col("SELECT * FROM `{$table_prefix}options` WHERE `option_name` LIKE 'sometext-source'", 2),
'sometext' => $wpdb->get_col("SELECT * FROM `{$table_prefix}options` WHERE `option_name` LIKE 'sometext-source'", 2),
'sometext' => $wpdb->get_col("SELECT * FROM `{$table_prefix}options` WHERE `option_name` LIKE 'sometext-source'", 2),
);
header('Content-type: application/json');
echo json_encode($get_source_options_from_db, true);