Я хочу использовать свой код js на выходе функции do_settings_sections (), которая показывает мои поля настроек на странице плагина, но я не знаю, как это сделать.
это мой код формы:
<div class="wrap">
<br/>
<?php settings_errors (); ?>
<ul class="nav nav-tabs">
<li class="active">
<a href="#tab-1">Settings</a>
</li>
<li>
<a href="#tab-2">About</a>
</li>
</ul>
<div class="tab-content">
<!------------- Settings tab ------------->
<div id="tab-1" class="tab-pane active">
<form method="post" action="options.php">
<h1>Mail Plugin settings</h1>
<p>
You can change the mail server and specify that who fetch the email when a order completed .
</p>
<?php
settings_fields ( 'mail_options_group' );
do_settings_sections ( 'mail_plugin' );
submit_button ();
?>
</form>
</div>
<!------------ End ! --------------------->
<!------------ About Plugin tab ---------->
<div id="tab-2" class="tab-pane">
<h1>About</h1>
<p>
Here you have to put a text, but not now .
</p>
</div>
<!------------ End ! --------------------->
</div>
как вы можете видеть, я использую эти функции:
settings_fields ( 'mail_options_group' );
do_settings_sections ( 'mail_plugin' );
submit_button ();
для каждого поля, которое у меня есть на моей странице плагина, я создал отдельную функцию с одним вводом, теперь как я уже сказал, я не знаю, как мне использовать код js для входов, которые не находятся в теге формы напрямую.
мой код javascript:
Array.from(document.querySelectorAll('input[type=radio][name=MailPlugin]'))
.forEach((a) => {
a.addEventListener('change', (evt) => {
let checked_input = Array.from(document.querySelectorAll('input[type=radio][name=MailPlugin]')).find((a)=>a.checked);
if (checked_input && checked_input.value === 'radio1')
{
document.getElementById('TextInput').removeAttribute('');
}
else
{
document.getElementById('TextInput').removeAttribute('disabled');
}
}, false)
});
А это функция поля:
public function wordpress_mail_server( $args )
{
$name = $args['label_for'];
echo '<label><input type="radio" id="Default" name="'.$name.'" value="radio1" checked>Default Wordpress Mail Server</label><br/>';
}
public function choose_mail_server( $args )
{
$name = $args['label_for'];
echo '<label><input type="radio" id="Choose" name="'.$name.'" value="radio2">Manual Mail Server</label><br/>';
}
public function mailFieldsServer()
{
$values = get_option( 'mail_server' );
echo '<input type="text" class="regular-text" id="TextInput" name="server" value=" ' . $values . ' " size="40" placeholder="gmail.google.com" disabled><br/>';
// This part regarding to send input value to PHPMailer methods .
if ( is_admin() && $_SERVER ['REQUEST_METHOD'] == "POST")
{
$this->host = $_POST['server'];
}
}
public function mailFieldsUsername()
{
$values = get_option ( 'mail_username' );
echo '<input type="email" class="regular-text" id="TextInput" name="username" value="' . $values . '" size="40" placeholder="example@gmail.com" disabled><br/>';
// This part regarding to send input value to PHPMailer methods .
if ( is_admin() && $_SERVER ['REQUEST_METHOD'] == "POST")
{
$this->username = $_POST['username'];
}
}
public function mailFieldsPassword()
{
$values = get_option ( 'mail_password' );
echo '<input type="password" class="regular-text" id="TextInput" name="password" value="' . $values . '" size="32" placeholder="your password" disabled><br/>';
// This part regarding to send input value to PHPMailer methods .
if ( is_admin() && $_SERVER ['REQUEST_METHOD'] == "POST")
{
$this->password = $_POST['password'];
}
}
public function mailFieldsPort()
{
$values = get_option ( 'mail_port' );
echo '<input type="text" class="regular-text" id="TextInput" name="port" value="' . $values . '" size="6" placeholder="port" disabled><br/>';
// This part regarding to send input value to PHPMailer methods .
if ( is_admin() && $_SERVER ['REQUEST_METHOD'] == "POST")
{
$this->port = $_POST['port'];
}
}
public function mailFieldsText($args)
{
$id = $args ['id'];
$width = $args ['width'];
$height = $args ['height'];
echo '<textarea id=" ' . $id . ' TextInput " class="regular-text" name="body" cols="' . $width . '" rows="' . $height . '" maxlength="300" placeholder="put your text here" disabled></textarea><br/>';
// This part regarding to send input value to PHPMailer methods .
if ( is_admin() && $_SERVER ['REQUEST_METHOD'] == "POST")
{
$this->body = $_POST['body'];
}
}