prefix . 'als_forms';
if (isset($_GET['delete']) && is_numeric($_GET['delete']) && isset($_GET['_wpnonce'])) {
$form_id = intval($_GET['delete']);
if (wp_verify_nonce(sanitize_text_field(wp_unslash($_GET['_wpnonce'])), 'als_forms_delete_form_' . $form_id)) {
$wpdb->delete($wpdb->prefix . 'als_form_submissions', ['form_id' => $form_id]); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Safe, admin-only action
$wpdb->delete($table, ['id' => $form_id]); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Safe, admin-only action
echo '
' . esc_html__('Form deleted.', 'als-forms') . '
';
} else {
echo '' . esc_html__('Invalid nonce. Form not deleted.', 'als-forms') . '
';
}
}
if (isset($_POST['bulk_delete']) && !empty($_POST['form_ids']) && check_admin_referer('als_forms_bulk_action', 'als_forms_bulk_nonce')) {
$form_ids = array_map('intval', (array) wp_unslash($_POST['form_ids']));
foreach ($form_ids as $form_id) {
if ($form_id > 0) {
$wpdb->delete($wpdb->prefix . 'als_form_submissions', ['form_id' => $form_id]); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Safe, admin-only action
$wpdb->delete($table, ['id' => $form_id]); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Safe, admin-only action
}
}
echo '' . esc_html__('Selected forms deleted.', 'als-forms') . '
';
}
$search = '';
$where = '';
$params = [];
if (isset($_GET['als_forms_search'])) {
if (!isset($_GET['als_forms_search_nonce']) ||
!wp_verify_nonce($_GET['als_forms_search_nonce'], 'als_forms_search_action')) {
wp_die(esc_html__('Security check failed. Please reload the page and try again.', 'als-forms'));
}
$search = sanitize_text_field(wp_unslash($_GET['als_forms_search']));
$where = "WHERE name LIKE %s";
$params[] = '%' . $wpdb->esc_like($search) . '%';
}
$query = "SELECT * FROM $table $where ORDER BY created_at DESC";
$prepared_query = $params ? $wpdb->prepare($query, ...$params) : $query; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $prepared_query is either prepared or a safe static query
$forms = $wpdb->get_results($prepared_query); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $prepared_query is either prepared or a safe static query
?>