Make better settings screen
This commit is contained in:
@@ -77,6 +77,12 @@ function go_form_get_forms()
|
|||||||
return $wpdb->get_results("SELECT * FROM {$wpdb->prefix}go_form_forms ORDER BY created_at DESC");
|
return $wpdb->get_results("SELECT * FROM {$wpdb->prefix}go_form_forms ORDER BY created_at DESC");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function go_form_get_form_name($id) {
|
||||||
|
global $wpdb;
|
||||||
|
$form = $wpdb->get_row($wpdb->prepare("SELECT name FROM {$wpdb->prefix}go_form_forms WHERE id = %d", $id));
|
||||||
|
return $form ? $form->name : 'Unknown Form';
|
||||||
|
}
|
||||||
|
|
||||||
function go_form_get_entries($form_id)
|
function go_form_get_entries($form_id)
|
||||||
{
|
{
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
@@ -154,9 +160,15 @@ function go_form_delete_entry()
|
|||||||
go_form_admin_action('delete');
|
go_form_admin_action('delete');
|
||||||
if (isset($_POST['entry_id'])) {
|
if (isset($_POST['entry_id'])) {
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
|
$entry = $wpdb->get_row($wpdb->prepare("SELECT form_id FROM {$wpdb->prefix}go_form_entries WHERE id = %d", intval($_POST['entry_id'])));
|
||||||
|
$form_id = $entry ? $entry->form_id : 0;
|
||||||
$wpdb->delete("{$wpdb->prefix}go_form_entries", ['id' => intval($_POST['entry_id'])]);
|
$wpdb->delete("{$wpdb->prefix}go_form_entries", ['id' => intval($_POST['entry_id'])]);
|
||||||
|
$redirect_url = add_query_arg(array('page' => 'go-form-settings', 'form_id' => $form_id, 'deleted' => 1), admin_url('admin.php'));
|
||||||
|
wp_redirect($redirect_url);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
wp_redirect(admin_url('admin.php?page=go-form-settings&deleted=1'));
|
$redirect_url = add_query_arg(array('page' => 'go-form-settings', 'deleted' => 1), admin_url('admin.php'));
|
||||||
|
wp_redirect($redirect_url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
add_action('admin_post_go_form_delete_entry', 'go_form_delete_entry');
|
add_action('admin_post_go_form_delete_entry', 'go_form_delete_entry');
|
||||||
@@ -167,8 +179,13 @@ function go_form_create_form()
|
|||||||
if (isset($_POST['form_name']) && !empty($_POST['form_name'])) {
|
if (isset($_POST['form_name']) && !empty($_POST['form_name'])) {
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
$wpdb->insert("{$wpdb->prefix}go_form_forms", ['name' => sanitize_text_field($_POST['form_name'])]);
|
$wpdb->insert("{$wpdb->prefix}go_form_forms", ['name' => sanitize_text_field($_POST['form_name'])]);
|
||||||
|
$new_form_id = $wpdb->insert_id;
|
||||||
|
$redirect_url = add_query_arg(array('page' => 'go-form-settings', 'form_id' => $new_form_id, 'created' => 1), admin_url('admin.php'));
|
||||||
|
wp_redirect($redirect_url);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
wp_redirect(admin_url('admin.php?page=go-form-settings&created=1'));
|
$redirect_url = add_query_arg(array('page' => 'go-form-settings'), admin_url('admin.php'));
|
||||||
|
wp_redirect($redirect_url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
add_action('admin_post_go_form_create_form', 'go_form_create_form');
|
add_action('admin_post_go_form_create_form', 'go_form_create_form');
|
||||||
@@ -182,7 +199,8 @@ function go_form_delete_form()
|
|||||||
$wpdb->delete("{$wpdb->prefix}go_form_entries", ['form_id' => $id]);
|
$wpdb->delete("{$wpdb->prefix}go_form_entries", ['form_id' => $id]);
|
||||||
$wpdb->delete("{$wpdb->prefix}go_form_forms", ['id' => $id]);
|
$wpdb->delete("{$wpdb->prefix}go_form_forms", ['id' => $id]);
|
||||||
}
|
}
|
||||||
wp_redirect(admin_url('admin.php?page=go-form-settings&deleted=1'));
|
$redirect_url = add_query_arg(array('page' => 'go-form-settings', 'deleted' => 1), admin_url('admin.php'));
|
||||||
|
wp_redirect($redirect_url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
add_action('admin_post_go_form_delete_form', 'go_form_delete_form');
|
add_action('admin_post_go_form_delete_form', 'go_form_delete_form');
|
||||||
@@ -199,8 +217,6 @@ function go_form_settings_page()
|
|||||||
if (!current_user_can('manage_options'))
|
if (!current_user_can('manage_options'))
|
||||||
wp_die('No access.');
|
wp_die('No access.');
|
||||||
|
|
||||||
$forms = go_form_get_forms();
|
|
||||||
|
|
||||||
if (isset($_GET['deleted']))
|
if (isset($_GET['deleted']))
|
||||||
echo '<div class="notice notice-success"><p>Deleted!</p></div>';
|
echo '<div class="notice notice-success"><p>Deleted!</p></div>';
|
||||||
if (isset($_GET['created']))
|
if (isset($_GET['created']))
|
||||||
@@ -219,25 +235,32 @@ function go_form_settings_page()
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
<h2>Manage Forms & Entries</h2>';
|
<h2>Manage Forms & Entries</h2>';
|
||||||
if (empty($forms)) {
|
|
||||||
echo '<p>No forms yet.</p>';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($forms as $f) {
|
$selected_form_id = isset($_GET['form_id']) ? intval($_GET['form_id']) : 0;
|
||||||
echo '<div style="margin-bottom:20px">
|
if ($selected_form_id) {
|
||||||
<h3>' . esc_html($f->name) . ' <span style="color:#888">(ID: ' . esc_html($f->id) . ')</span></h3>
|
|
||||||
<p><small>Shortcode: <code>[go_form id=' . esc_html($f->id) . ']</code></small></p>
|
|
||||||
|
|
||||||
<form method="post" action="' . admin_url('admin-post.php') . '" style="margin-bottom:15px">
|
$form_name = go_form_get_form_name($selected_form_id);
|
||||||
|
echo "<h3> $form_name Entries</h3>";
|
||||||
|
echo '<form method="post" action="' . admin_url('admin-post.php') . '" style="margin-bottom:15px">
|
||||||
' . wp_nonce_field('go_form_delete_form_action', 'go_form_delete_form_nonce', true, false) . '
|
' . wp_nonce_field('go_form_delete_form_action', 'go_form_delete_form_nonce', true, false) . '
|
||||||
<input type="hidden" name="action" value="go_form_delete_form">
|
<input type="hidden" name="action" value="go_form_delete_form">
|
||||||
<input type="hidden" name="form_id" value="' . esc_attr($f->id) . '">
|
<input type="hidden" name="form_id" value="' . esc_attr($selected_form_id) . '">
|
||||||
<input type="submit" value="Delete Form" class="button delete" onclick="return confirm(\'Delete this form and ALL entries?\')">
|
<input type="submit" value="Delete Form" class="button delete" onclick="return confirm(\'Delete this form and ALL entries?\')">
|
||||||
</form>';
|
</form>';
|
||||||
|
$entries = go_form_get_entries($selected_form_id);
|
||||||
|
go_form_render_entries_table($entries, true);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$forms = go_form_get_forms();
|
||||||
|
echo '<h3>Forms</h3><ul>';
|
||||||
|
foreach ($forms as $f) {
|
||||||
|
|
||||||
|
$url = add_query_arg(array('page' => 'go-form-settings', 'form_id' => $f->id), admin_url('admin.php'));
|
||||||
|
echo '<li><a href="' . esc_url($url) . '">' . esc_html($f->name) . '</a> <span style="color:#888">(ID: ' . esc_html($f->id) . ')</span> - <small>Shortcode: <code>[go_form id=' . esc_html($f->id) . ']</code></small></li>';
|
||||||
|
}
|
||||||
|
echo '</ul>';
|
||||||
|
|
||||||
go_form_render_entries_table(go_form_get_entries($f->id), true);
|
|
||||||
echo '</div>';
|
|
||||||
}
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user