Получить ошибку & quot; У вас недостаточно прав для доступа к этой странице & quot; При создании собственного плагина

Я создал собственный плагин в WordPress для получения данных из базы данных. И я добавил две ссылки для выполнения действий над записями. Одна — «Редактировать», а другая — «Удалить». Я написал код для удаления ссылки, как это

<a href="<?php bloginfo('url');?>/wp-admin/admin.php?page=delete_my_review&id=<?php echo $res->review_id; ?>">Delete</a>

Когда я нажимаю на ссылку удаления, она показывает ошибку, как

You do not have sufficient permissions to access this page

Мой код плагина

function submit_review()
{
add_options_page("Submit Review","Submit Reviews",1,"submit_review","submit_review");
global $wpdb;
$id = get_current_user_id();
$q = "select * from wp_submit_review where user_id = " . $id;
$result = $wpdb->get_results($q,OBJECT);
if(!empty($result))
{
?>
<div class="wrap">
<h1>Submitted Reviews</h1>
<div style="width: 100%;">
<table cellpadding="5" class="wp-list-table widefat fixed pages">
<thead>
<tr>
<th><b>Review Id</b></th>
<th><b>User Name</b></th>
<th><b>Submitted Category</b></th>
<th><b>New Listing Name</b></th>
<th><b>New Listing Address</b></th>
<th><b>New Listing City</b></th>
<th><b>New Listing Description</b></th>
<th><b>Image</b></th>
<th><b>R-option</b></th>
<th><b>New Listing Rating</b></th>
<th><b>New Listing Review</b></th>
<th><b>Actions</b></th>
</tr>
</thead>
<tbody>
<?php
foreach($result as $res)
{
?>
<td><?php echo $res->review_id; ?></td>
<td><?php echo get_the_author_meta('user_login',$res->user_id); ?></td>
<td><?php
if($res->submit_category == 1)
{
echo "Service";
}
else if($res->submit_category == 2)
{
echo "Restaurant";
}
else
{
echo "Product";
}
?>
</td>
<td><?php echo $res->newlistingname; ?></td>
<td><?php echo $res->newlistingaddress; ?></td>
<td><?php echo $res->newlistingcity; ?></td>
<td><?php echo $res->newlistingdesc; ?></td>
<td><img src="<?php echo home_url()."/uploads/".$res->image; ?>" height="50px" width="50px"/></td>
<td><?php echo $res->roption; ?></td>
<td><?php echo $res->newlistingrating; ?></td>
<td><?php echo $res->newlistingreview; ?></td>
<td><a href="<?php bloginfo('url');?>/wp-admin/admin.php?page=submit_review">Edit</a> | <a href="<?php bloginfo('url');?>/wp-admin/admin.php?page=delete_my_review&id=<?php echo $res->review_id; ?>">Delete</a></td>
<?php
}
?>
</tbody>
</table>
</div>
</div>
<?php
}
else
{
echo "No review find";
}
}
function delete_my_review()
{
echo $_GET['id'];
}
add_action("admin_menu","delete_my_review");

function submit_review_menu()
{
add_menu_page("Submit Review","Submit Review","manage_options","submit_review", submit_review);
}
//add_action("admin_menu","submit_review");
add_action("admin_menu","submit_review_menu");

Итак, как вызвать функцию delete_my_review () для выполнения действия удаления?

1

Решение

просто создайте функцию с помощью ajax и php. Следующий пример работал для меня.

кнопка удаления html

<td><button onclick="delete_ab(<?php echo $results->id; ?>)">Delete</button></td>          // pass your id to delete

функция JavaScript

function delete_ab(str)
{jQuery.post(
// see tip #1 for how we declare global javascript variables
MyAjax.ajaxurl,
{
// here we declare the parameters to send along with the request
// this means the following action hooks will be fired:
// wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit
action : 'myajax_submit',

// other parameters can be added along with "action"postID : str
},
function(response)
{
document.getElementById(str).style.display='none';
}
);
}

Основная функция в PHP

function myajax_submit() {
// get the submitted parameters
$postID = $_POST['postID'];
global $wpdb;
$qry=$wpdb->query("DELETE FROM `price_table` WHERE id=$postID");
// generate the response
echo "hello";
// IMPORTANT: don't forget to "exit"exit;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]