0eca07ae by Marty Penner

Initial fix for merge_users calls to wp_delete_user interfering with ajax calls

1 parent 0b65d7a2
......@@ -25,6 +25,7 @@ use WP_User;
const OPTION_NAME = "user_options";
const CAPABILITY = "manage_cbv_users";
CBV\load('Invoice');
CBV\load('User');
Tools\import('HTML');
......@@ -1029,6 +1030,8 @@ HTML;
}
$unchanged_html = '';
$html = '';
$remove_user_html = '';
$from_user = new User\Account($_POST['merge_user_from']);
$to_user = new User\Account($_POST['merge_user_to']);
$to_user_array = array();
......@@ -1064,11 +1067,15 @@ HTML;
// Delete the old user if the checkbox is set
if (isset($_POST['delete_old_user']) && $_POST['delete_old_user'] == 'yes') {
@wp_delete_user($from_user->ID);
$username = $from_user->user_login;
if (@wp_delete_user($from_user->ID)) {
$remove_user_html = "<h6>Deleted user $username.</h6>";
} else {
$remove_user_html = '<h6>Could not delete user.</h6>';
}
}
// Build a set of nested html lists that display the fields (goes 3 levels deep; bloody ugly, but works)
$html = '';
foreach ($to_user_array as $key => $val) {
$html_l2 = '';
if (is_array($val)) {
......@@ -1090,7 +1097,21 @@ HTML;
$html .= "<li>$key: $val</li>";
}
}
$html = $unchanged_html . '<h6>Changed:</h6><ul>' . $html . '</ul>';
if (! empty($remove_user_html)) {
$initial = $remove_user_html;
} else {
$initial = $unchanged_html;
}
$html = //'<h4><a href="/wp-admin/admin-ajax.php?ajax=yes&action=build_user_remove&uid=' .
//$from_user->ID .
//'" rel="' .
//$from_user->ID .
//'" class="remove-user">Remove old user</a></h4>' .
$initial .
'<h6>Changed:</h6><ul>' .
$html .
'</ul>';
$return = array(
'success' => 'true',
......
......@@ -130,6 +130,7 @@ h4 {
<input type="hidden" value="from" name="which_user_search" />
<input type="hidden" value="no" name="do_search" />
<input type="hidden" value="no" name="do_merge" />
<input type="hidden" value="0" name="uid" />
<input type="checkbox" value="yes" name="delete_old_user" />
<label for="delete_old_user">Delete old user?</label>
<input type="button" value="Merge Users" name="btn_merge" />
......