У меня есть страница подписки. На этой странице пользователи могут видеть, на что они подписаны, а на что нет. Страница выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/vQvHu.png)
То, на что подписался пользователь, видно выше. Нажав на красную кнопку; пользователь должен иметь возможность закончить свою подписку. Я не знаю, как это сделать.
Пользователь и то, на что он подписан, сохраняются в базе данных. Я знаю, что должен сделать запрос, который удаляет это поле c. Я знаю запрос. Но я просто не знаю, как это реализовать.
Код моей страницы подписки:
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'usermeta';
$current_user_id = get_current_user_id();
//Programs are retrieved here. Only the programs the user has subscribed to.
$retrieve_data = $wpdb->get_results( "SELECT * FROM {$table_name} WHERE user_id={$current_user_id} AND meta_key='programma';");
?>
<!-- This piece of code shows the programs the user is already subscribed to. -->
<p>De programma's waar u op geabonneerd bent:</p>
<form action="#" enctype="multipart/form-data" method="post">
<!-- <?php /*wp_nonce_field( 'set_programma_action', 'set_programma' );*/ ?> -->
<table>
<?php foreach ( $retrieve_data as $retrieved_data ) { ?>
<tr>
<th>Programma:</th>
<td style="vertical-align: middle;"><?php echo esc_html( $retrieved_data->meta_value ); ?></td>
<th>
<button name="programma" type="submit" id="button" value="<?php echo esc_attr( $retrieved_data->meta_value ); ?>">Abonnement opzeggen</button>
</th>
</tr>
<?php }
$button = $_POST["button"];
?>
</table>
</form>
<?php
//I still do not know if this query is right. It needs to delete the program the user has clicked on. I do not know what variables to use therefor.
if(isset($_POST["button"])) {
$wpdb->query(
'DELETE FROM ... '.$wpdb->prefix.'tablename
WHERE meta_key = "'.$myid.'AND $specificprogram = "22nl""'
);
}
?>
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'programma';
// This retrieves the files from the database
$retrieve_data = $wpdb->get_results( "SELECT Anaam FROM {$table_name}" );
?>
<!--This code shows the data that is retrieved and it shows the programs the user can subscribe to-->
<p>Programma's waar u op kunt abonneren:</p>
<form action="#" enctype="multipart/form-data" method="post">
<?php wp_nonce_field( 'set_programma_action', 'set_programma' ); ?>
<table>
<?php foreach ( $retrieve_data as $retrieved_data ) { ?>
<tr>
<th>Programma:</th>
<td style="vertical-align: middle;"><?php echo esc_html( $retrieved_data->Anaam ); ?></td>
<th>
<button name="programma" type="submit" value="<?php echo esc_attr( $retrieved_data->Anaam ); ?>">Abonneer</button>
</th>
</tr>
<?php } ?>
</table>
</form>
<?php
// Verify nonce and save the data when the user is logged in.
// Nonce docs: https://developer.wordpress.org/themes/theme-security/using-nonces/
if (isset( $_POST['programma'] ) && isset( $_POST['set_programma'] ) && wp_verify_nonce( $_POST['set_programma'], 'set_programma_action' )) {
$data = filter_input( INPUT_POST, 'programma', FILTER_SANITIZE_STRING );
$current_user_id = get_current_user_id();
if ( $current_user_id && ! empty( $data ) ) {
add_user_meta( $current_user_id, 'programma', $data );
echo "U bent geabonneerd op" . $data;
}
}
?>
Вопрос: Как я могу убедиться в этом, когда пользователь нажимает кнопку «Abonnement opzeggen» указанная c подписка, которую он хочет завершить, удалена из базы данных?
Моя структура базы данных:
![enter image description here](https://i.stack.imgur.com/4oNzO.png)
Пользователь их подписки сохраняются в столбце meta_value
. С meta_key
называется programma
Привет,
Йохан