Php 管理面板上的WordPress自定义表单提交数据视图?
我在我的网站上创建了一个自定义表单,其中包含两个字段和一个提交按钮。Php 管理面板上的WordPress自定义表单提交数据视图?,php,forms,wordpress,wordpress-theming,Php,Forms,Wordpress,Wordpress Theming,我在我的网站上创建了一个自定义表单,其中包含两个字段和一个提交按钮。 看看我的表格: <div class="control-group"> <label class="control-label" for="name">Name</label> <div class="controls"> <input type="text"
看看我的表格:
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" name="name" placeholder="Your Name" class="form-control">
</div>
</div>
<div class="control-group">
<label class="control-label" for="number">Mobile</label>
<div class="controls">
<input type="number" name="number" placeholder="017xxxxxxxx" class="form-control">
</div>
</div>
<button type="submit" value="sub" name="sub" class="btn btn-success btn-block btn-sm marTop15">Submit!</button>
名称
可移动的
提交
当站点访问者提交表单时,我想将提交的数据显示在我的WordPress管理面板上,以便我可以单独删除它们
我想这样做:那么,在没有任何插件的情况下,我如何做到这一点呢?您需要使用“WP\u List\u Table”类
您还需要在function.php中添加此代码,如add_action('admin_菜单','single_-night_-users3');函数single_night_users3(){add_submenu_page('users.php','Singles night 3','Singles night 3','manage_options','Singles-night-users-listing3','Singles_night_users3_callback');}函数Singles_night_users3_callback回调(){require once“includes/single night-users3.php”;}
请提供更多信息和代码,或者更多的上下文。你在哪里提交数据,我是说你在哪里存储数据?在任何post类型中还是在自定义表中?你的管理页面怎么样,是帖子类型列表表还是自定义页面。如果你能回答你的问题并提供更多细节会更好,不要在这里评论。我想在自定义表中存储数据,我的管理页面是自定义的。只有管理员才能在管理面板上查看提交的数据。基本上,我想在管理面板上创建一个菜单,并在此菜单上在表视图中显示这些数据。@Mayeneul Islam使用带有自定义循环的表结构完成。请看一看,并将其与您的自定义表合并。我不明白如何使用它。请看,我有一个自定义页面,其表单见我的问题顶部。此表单只有两个字段:名称和移动。网站访问者访问此页面并填写这两个字段并提交。就是这样。现在我想在wordpress管理面板上查看这些数据。所以请帮助我@马耶努利姆
<?php
if(!class_exists('WP_List_Table')) {
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}
class TT_Orders_List_Table extends WP_List_Table {
function __construct() {
parent::__construct( array(
'singular' => 'ID',
'plural' => 'ID',
'ajax' => false
));
}
function column_default($item, $column_name) {
switch($column_name) {
case 'user_firstname':
case 'user_login':
case 'user_email':
case 'paid_charge':
case 'additional_member':
case 'date':
return $item->$column_name;
default:
return print_r($item,true); //Show the whole array for troubleshooting purposes
}
}
function column_user_firstname($item) {
$actions = array(
'delete' => sprintf('<a href="users.php?page=%s&action=delete&id=%s&wp_http_referer=%s">Delete</a>', $_REQUEST['page'], $item->id, 'wp-admin/users.php?page='.$_REQUEST['page']),
);
return sprintf( '%1$s <span style="color:silver">(ID:%2$s)</span>%3$s', /*$1%s*/ $item->user_firstname, /*$2%s*/ $item->id, /*$3%s*/ $this->row_actions($actions));
}
function column_cb($item) {
return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', /*$1%s*/ $this->_args['singular'], $item->ID );
}
function get_columns() {
$columns = array(
'cb' => '<input type="checkbox" />',
'user_firstname' => 'User Name',
'user_login' => 'User ID',
'user_email' => 'Email',
'paid_charge' => 'Payment',
'additional_member' => 'Additional Member',
'date' => 'Registered Date'
);
return $columns;
}
function get_sortable_columns() {
$sortable_columns = array(
'user_firstname' => array('u.user_firstname',true),
'user_login' => array('uz.user_login',true),
'user_email' => array('uz.user_email',false),
'paid_charge' => array('ui.paid_charge',false),
'additional_member' => array('ui.additional_member',false),
'date' => array('ui.date',false)
);
return $sortable_columns;
}
function get_bulk_actions() {
$actions = array(
'delete' => 'Delete'
);
return $actions;
}
function process_bulk_action() {
global $wpdb;
if( 'delete'===$this->current_action() ) {
$id = $_REQUEST['id'];
$ids = '';
if(is_array($id)) {
foreach($id as $k=>$v) {
$ids .= $v . ",";
}
$ids = substr($ids, 0, -1);
} else {
$ids = $id;
}
if($ids != '') {
$wpdb->query( "DELETE FROM `".$wpdb->prefix."events3` WHERE id IN ($ids)" );
}
}
}
function prepare_items() {
global $wpdb;
$query = "
SELECT ui.id, u.user_firstname, ui.paid_charge,ui.date, ui.additional_member, uz.user_email, uz.user_login
FROM ".$wpdb->prefix."events3 ui
INNER JOIN ".$wpdb->prefix."user_info u
ON ui.user_id=u.user_id
INNER JOIN ".$wpdb->prefix."users uz ON u.user_id = uz.ID
WHERE ui.user_id = u.user_id AND ui.status = 1";
//echo $query;
//exit;
$orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'DESC';
$order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : '';
if(!empty($orderby) & !empty($order)) { $query.=' ORDER BY '.$orderby.' '.$order; }
$totalitems = $wpdb->query($query);
$perpage = 15;
$hidden = array();
$paged = !empty($_GET["paged"]) ? mysql_real_escape_string($_GET["paged"]) : '';
if(empty($paged) || !is_numeric($paged) || $paged<=0 ) { $paged=1; }
$totalpages = ceil($totalitems/$perpage);
if(!empty($paged) && !empty($perpage)) {
$offset=($paged-1)*$perpage;
$query.=' LIMIT '.(int)$offset.','.(int)$perpage;
}
$this->set_pagination_args( array(
"total_items" => $totalitems,
"total_pages" => $totalpages,
"per_page" => $perpage,
));
$columns = $this->get_columns();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
$this->process_bulk_action();
$this->items = $wpdb->get_results($query);
//echo "<pre>";
//print_r($this->items);
//exit;
if(!empty($this->items)) {
$items = array();
foreach($this->items as $item) {
if($item->additional_member == "yes") {
$item->additional_member = 'Yes';
} else if($item->additional_member == 'no') {
$item->additional_member = 'No';
}
$paid_charge = explode(".", $item->paid_charge);
$item->paid_charge = $paid_charge[0];
$items[] = $item;
}
$this->items = $items;
}
}
}
$ordersListTable = new TT_Orders_List_Table();
$ordersListTable->prepare_items();
?>
<div class="wrap">
<div id="icon-users" class="icon32"><br/></div>
<h2>Form Data</h2>
<form id="posts-filter" method="get">
<input type="hidden" name="post_type" value="<?php echo $_REQUEST['post_type'] ?>" />
<input type="hidden" name="page" value="<?php echo $_REQUEST['page'] ?>" />
<?php $ordersListTable->display(); ?>
</form>
</div>