<?php function my_plugin_settings_page() {?>
<div class="wrap">
<h2>Staff Details</h2>
<form method="post" action="options.php">
<?php settings_fields( 'my-plugin-settings-group' ); ?>
<?php do_settings_sections( 'my-plugin-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Accountant Name</th>
<td><input type="text" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Accountant Phone Number</th>
<td><input type="text" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" /></td>
</tr>
</table>
<?php submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' );
if (isset($_GET['submit'])) {
header('Location: wamp\www\wordpress\wordpress\wp-content\plugins\MaximoPlugin\andra.php');
exit;
}?>
</form>
</div>
我的问题是,我可以通过向button_submit添加操作将用户重定向到wordpress中的另一个php文件吗?
所以它有两个事件。保存然后将用户重定向到另一个页面。
这是否可行?顺便说一句,我是php和wordpress的新手,所以我很抱歉不好的代码和东西。
if语句isent任何好我知道,但我如何检查按钮是否提交,然后将用户重定向到另一个wordpress页面..(另一个php网站。)
请告诉我一些我可以做或应该做的事情。
编辑:
好吧我把它改成了包含,但没有得到任何回复。
</table>
<?php submit_button();
if(isset($_POST['submit']))
{
include('andra.php');
}
}?>
答案 0 :(得分:1)
您可以使用wp_redirect http://codex.wordpress.org/Function_Reference/wp_redirect将用户重定向到其他网址。只需在重定向呼叫之前保存您的数据。
<?php
wp_redirect( $location, $status );
exit;
?>
答案 1 :(得分:0)
问题不是很明确,所以我会展示两个解决方案,你可以选择一个更适合你的解决方案:
解决方案1:
制作另一个档案handle_my_request.php
更改代码中的以下行:
<?php submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' );
if (isset($_GET['submit'])) {
include_once("handle_my_request.php");
exit;
}?>
现在在handle_my_request.php
中,您可以轻松编写处理请求的方式。例如
<?php
$var1 = $_GET['myvar1'];
do_something($var1);
?>
解决方案2:
您需要手动创建另一个表单并将字段发布到您想要的其他页面。为此,您可以通过PHP(使用CURL)在服务器端进行GET / POST,也可以在客户端通过javascript进行GET / POST。
<?php function my_plugin_settings_page() {?>
<div class="wrap">
<h2>Staff Details</h2>
<form method="post" action="options.php">
<?php settings_fields( 'my-plugin-settings-group' ); ?>
<?php do_settings_sections( 'my-plugin-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Accountant Name</th>
<td><input type="text" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Accountant Phone Number</th>
<td><input type="text" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" /></td>
</tr>
</table>
</form>
<?php
submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' );
if (isset($_GET['submit']))
{ ?>
<form name="redirection_form" action="http://anotherwebsite.com" method="post">
<input type="hidden" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" />
<input type="hidden" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" />
</form>
<script type="text/javascript">
document.redirection_form.submit();
</script>
<?php } ?>
</div>
这里不用说,您需要更改表单的变量和方法及操作,以匹配您重定向到的下一页。
正如我之前所说,PHP CURL也可以实现同样的效果。
答案 2 :(得分:0)
<form method="post" action="options.php">
<input type='hidden' name='option_page' value='my-plugin-settings-group' /><input type="hidden" name="action" value="update" /><input type="hidden" id="_wpnonce" name="_wpnonce" value="fc1447e3e7" /><input type="hidden" name="_wp_http_referer" value="/wordpress/wordpress/wp-admin/admin.php?page=my-plugin-settings&settings-updated=true" /> <table class="form-table">
<tr valign="top">
<th scope="row">Accountant Name</th>
<td><input type="text" name="accountant_name" value="1" /></td>
</tr>
<tr valign="top">
<th scope="row">Accountant Phone Number</th>
<td><input type="text" name="accountant_phone" value="1" /></td>
</tr>
</table>
<p class="submit"><input type="submit" name="wpdocs-save-settings" id="wpdocs-save-settings" class="button button-primary" value="Save Settings" /></p>
这是源视图。是的,andra.php在同一个目录中。
我正在为Wordpress制作一个插件,这与它有关吗?