Cómo eliminar una fila específica en una tabla de base de datos
Aquí creé una página de perfil personalizada basada en el usuario conectado para ver solo sus propios datos insertados en una base de datos personalizada.
Puedes ver que en cada fila, agregué un botón "Eliminar" pero falta el código adecuado.
Todo funciona bien excepto esa parte donde quiero agregar una función para Eliminar el registro. Quizás $wpdb->delete() resuelva mi problema.
Este es mi código:
if ( is_user_logged_in() ) {
global $wpdb;
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$reservations = $wpdb->get_results($wpdb->prepare("SELECT * FROM
SaveContactForm7_1 WHERE user = %s", $username));
echo "<div align='center'>";
echo "<table class='responsive-table'>";
echo "<caption>Lista de reservaciones</caption>";
echo "<thead>";
echo "<tr>";
echo "<th scope='col'>Nombre</th>";
echo "<th scope='col'>ID</th>";
echo "<th scope='col'>Calidad</th>";
echo "<th scope='col'>Llegada</th>";
echo "<th scope='col'>Núm Vuelo</th>";
echo "<th scope='col'>H. Aterrizaje</th>";
echo "<th scope='col'>Procedencia</th>";
echo "<th scope='col'>Salida</th>";
echo "<th scope='col'>Núm Vuelo</th>";
echo "<th scope='col'>H. Despegue</th>";
echo "<th scope='col'>Destino</th>";
echo "<th scope='col'>Hotel</th>";
echo "<th scope='col'>Habitación</th>";
echo "<th scope='col'>Total</th>";
echo "<th scope='col'>Modificar</th>";
echo "<th scope='col'>Eliminar</th>";
echo "</tr>";
echo "</thead>";
foreach($reservations as $reservation){
echo "<tbody>";
echo "<tr>";
echo "<th scope='row'>".$reservation->nom."</th>";
echo "<td data-title='ID'>".$reservation->user."</td>";
echo "<td data-title='Calidad'>".$reservation->qualite."</td>";
echo "<td data-title='Llegada'>".$reservation->datearrivee."</td>";
echo "<td data-title='N° Vuelo'>".$reservation->num_vol_arrivee."</td>";
echo "<td data-title='Aterrizaje'>".$reservation->heure_atterrissage."
</td>";
echo "<td data-title='Procedencia'>".$reservation->provenance."</td>";
echo "<td data-title='Salida'>".$reservation->datedepart."</td>";
echo "<td data-title='N° VUELO'>".$reservation->num_vol_depart."</td>";
echo "<td data-title='Despegue'>".$reservation->heure_decollage."
</td>";
echo "<td data-title='Destino'>".$reservation->destination."
</td>";
echo "<td data-title='Elección'>".$reservation->choix."</td>";
echo "<td data-title='Habitación'>".$reservation->typech."</td>";
echo "<td data-title='Precio Total' data-type='currency'>".$reservation-
>calculated_choix."</td>";
Y aquí la parte de "Eliminar":
echo "<td align='center'>
<***Necesito el código aquí "input" o "a href" ***><img class='icon' width='16' height='16'
src='../remove-icon.png' alt='Eliminar' title='Eliminar'></a>
</td>";
echo "</tr>";
echo "</tbody>";
}
echo "</table>";
echo "</div>";
}

Sí, puedes utilizar wpdb para eliminar el registro en la tabla personalizada. Algo como esto en la función de WordPress.
require_once ('../../../../wp-load.php');
if (!empty($_POST['id'])) {
global $wpdb;
$table='table_name';
$id = $_POST['id'];
$wpdb->delete( $table, array( 'id' => $id ) );
}

lado del cliente -> el usuario hace clic en el botón/enlace de eliminar
AJAX -> envía esta acción desde el lado del cliente al lado del servidor para ejecutar la función php que elimina la fila correspondiente de la base de datos.
lado del servidor -> función para eliminar fila de la base de datos
$wpdb->delete()
éxito de AJAX -> oculta esta fila de la página del cliente y actualiza solo esta parte de la página
revisa este enlace
