我使用的是管理帖子。php在我正在构建的WordPress插件的管理端处理表单提交。我的表单设置为如下函数:
function display_charge_customer_input() {
global $stripe_options;
$charge_amount_btn = "Charge $" . $stripe_options[\'amount_to_charge\'];
?>
<h3 class="title"><?php _e(\'Charge Customer\', \'kite_stripe\'); ?></h3>
<form action="<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>" method="post">
<input type="hidden" name="action" value="charge_customer_data"/>
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row" valign="top">
<?php _e(\'Charge Customer\', \'kite_stripe\'); ?>
</th>
<td>
<input id="charge_customer_input" name="charge_customer_input" type="text" class="regular-text" value="Customer Id"/>
<label class="description" for="charge_customer_input"><?php _e(\'Paste the customer id of the person you\\\'d like to charge.\', \'kite_stripe\'); ?></label>
</td>
</tr>
</tbody>
</table>
<p class="submit_charge">
<input type="submit" class="button-primary" name = "charge_submit" value="<?php _e($charge_amount_btn, \'kite_domain\') ?>" />
</p>
</form>
<?php
}
我正在从另一个文件调用该函数,以使其显示在管理页面上。一切正常。
下面是我处理表单请求的代码:
add_action( \'admin_post_charge_customer_data\', \'charge_customer_data\' );
add_action( \'admin_post_nopriv_charge_customer_data\', \'charge_customer_data\' );
function charge_customer_data() {
if (isset($_POST[\'charge_submit\'])){
$url = "http://localhost:8888/wp-admin/admin.php?page=user-list-table.php";
wp_redirect($url);
exit;
}
}
我也会让表单保存用户输入,但我只是想先让重定向工作。我试着在Stack Overflow和Google搜索上尽我所能地阅读所有内容,但我仍然不知道我错在哪里。我在想也许我的
if(isset($_POST[\'charge_submit\']))
如果没有单击submit按钮,代码就不能工作,但我不明白为什么不能。
我对这一切都很陌生,所以任何帮助都将不胜感激。非常感谢。