Как создать функцию удаления в WordPress? - PullRequest
0 голосов
/ 26 июня 2018

Я создал кнопку удаления в панели управления в WordPress.Мне нужно добавить функцию удаления, чтобы удалить определенную строку в приборной панели, а также в базе данных.мой код указан ниже:

add_action('admin_menu', 'wpdocs_unsub_add_pages');

function wpdocs_unsub_add_pages()
{
    add_menu_page(__('message', 'textdomain'),

        __('Messages', 'textdomain'), 'manage_options',

        'wpdocs-unsub-email-list',
        'wpdocs_unsub_page_callback', '');
}

function wpdocs_unsub_page_callback()
{
    global $wpdb;
    $results = $wpdb->get_results("select * from wp_customer_service");
    ?>
    
    
        SL
        MAIL
        SUBJECT
        MESSAGE
        DATE
        ACTION
    
    <?php
    $i = 1;
    foreach ($results as $result) {
        // echo '<pre>';
        // print_r($result);
        // echo '
';?> почта;?> subject1;?> Сообщение1;?> Дата;?>

1 Ответ

0 голосов
/ 26 июня 2018

Первый столбец кнопки изменения:

<td><a class="button" href="?page=wpdocs-unsub-email-list&deletemail=<?php 
echo $result->mail;?>" 
style="color: red;">DELETE</a></td>

Затем добавьте этот код в верхнюю часть функции

function wpdocs_unsub_page_callback()
{
  if (isset($_GET["deletemail"])){
    global $wpdb;
    $wpdb->query($wpdb->prepare("delete from wp_customer_service 
    where mail=%s",urldecode($_GET["deletemail"])));
  }
//...

Хотя описанные выше шаги помогут решить вашу задачу, вы можете сделать ее более безопасной, добавив nonce для CSRF.

<td><a class="button" href="<?php 
echo wp_nonce_url('?page=wpdocs-unsub-email-list&deletemail='.$result->mail,"del_nonce","del_nonce");?>" 
style="color: red;">DELETE</a></td>

Тогда в функции вы можете проверить это:

function wpdocs_unsub_page_callback()
{
  if (isset($_GET["deletemail"]) and isset($_GET['del_nonce']) 
  and wp_verify_nonce($_GET['del_nonce'], 'del_nonce')) {
    global $wpdb;
    $wpdb->query($wpdb->prepare("delete from wp_customer_service where 
    mail=%s",urldecode($_GET["deletemail"])));
  }
//....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...