[Resolved] Editar los datos de un usuario desde el front end

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

This topic contains 30 replies, has 2 voices.

Last updated by Mauricio Gonzalez 2 months, 1 week ago.

Assigned support staff: Nigel.

Author
Posts
#1450215

Tell us what you are trying to do?

En el problema hay 2 perfiles implicados, uno es "Administradora" y otro "Cliente".

He creado una página para el perfil "Administradora" donde gestiona entre otros el alta de nuevos usuarios, resuelto con un formulario de alta de usuarios. El problema viene por que quería añadir dos funcionalidades mas, una la edición de los datos de cada usuario desde el frontend, y otra la eliminación de un usuario desde la misma página y desde el perfil de "Administradora", es decir, que el cliente a eliminar o editar no estará logueado, sera la administradora la que este logueada.

Mi intención es incorporar a una view, con el listado de clientes, un botón para eliminar el cliente elegido, y otro botón para editar al cliente elegido.

Gracias.

Is there any documentation that you are following?

Is there a similar example that we can see?

What is the link to your site?

#1451115

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Mauricio

¿Dónde encontraste problemas al intentar implementar este?

Toolset no ofrece la funcionalidad de borrar usuarios, y de momento tengo problemas identificar algúna solución, consulto con mis colegas.

Pero editar un usuario no debe ser problema.

Crear un formulario para editar usuarios.

Meter este formulario en una plantilla de contenido.

En la salida del View que muestra usuarios insertar un enlace a editar el usuario (con el shortcode toolset-edit-user-link que se mete utilisando el botón Toolset Forms).

El problema, como digo, es un enlace para eliminar el usuario. Cuando he hablado con mis compañeros te comento de nuevo.

https://toolset.com/documentation/getting-started-with-toolset/publish-content-from-the-front-end/forms-for-editing/

#1451257

Muchas gracias Nigel, quedo a la espera por si hubiera una solución para borrar usuarios.

#1456033

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Todavía estoy en contacto con mis colegas, porque me parece que hay un error en los formularios de usuarios, pero me hace falta clarificación.

Te comento de nuevo cuando puedo.

#1456523

Perfecto Nigel, muchas gracias por mantenerme informado, quedo a la espera de noticias...

#1457937

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Ahora lo tengo.

Querrás un formulario de edición de usuarios que tiene solo un botón de borrar usuario.

Debes cambiar al modo experto para poder quitar los campos innecesarios, como se ve en el pantallazo.

Incluye este formulario directamente en la salida del View que muestra usuarios.

Entonces habrá falta este código para que cuando se pincha el botón de enviar del formulario se elimina el usuario:

/**
 * Use cred_submit_complete hook to delete user
 */
function ts_form_action( $id, $form_data ){
 
	if ( $form_data['id'] == 123 ){ // Editar ID de formulario
		require_once(ABSPATH.'wp-admin/includes/user.php');
		wp_delete_user( $id );
	}
}
add_action( 'cred_submit_complete', 'ts_form_action', 10, 2 );

Tendrás que editar el ID del formulario de edición.

#1458221

buenas tardes Nigel,
1.- cuando dices "Tendrás que editar el ID del formulario de edición" a que te refieres.
2.- donde coloco el código en el archivo functions?

#1459445

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

1. Si vas a Toolset > User Forms verás que cada formulario se identifica con un ID. El código tiene el ejemplo '123' que debes editar.

2. Mejor ir a Toolset > Settings > Custom Code donde puedes crear un fragmento de código y copiar el ejemplo.

#1460407

No consigo que funcione.

He realizado todos los pasos, pero no se que puede fallar...

1.- Fragmento de código para el formulario ID: 2020 colocado en configuración >> Código personalizado. Run: Siempre, Context: En todas partes, Status: Activo

<?php
/**
* New custom code snippet (replace this with snippet description).
*/

toolset_snippet_security_check() or die( 'Direct access is not allowed' );

// Put the code of your snippet below this comment.
/**
* Use cred_submit_complete hook to delete user
*/
function ts_form_action( $id, $form_data ){

if ( $form_data['id'] == 2220 ){ // Editar ID de formulario
require_once(ABSPATH.'wp-admin/includes/user.php');
wp_delete_user( $id );
}
}
add_action( 'cred_submit_complete', 'ts_form_action', 10, 2 );

---------------------------------------------------------

2.- Formulario de edición de usuario:

[creduserform]
[cred_field field='form_submit' output='bootstrap' value='Delete user' class='btn btn-primary btn-lg']
[/creduserform]

-----------------------------------------------------------

3.- Incluido en la vista que muestra el listado de usuarios:

<td class="dato-list-cli">[types usermeta="id-cliente"][/types]</td>
<td class="dato-list-cli">[types usermeta="empresa"][/types]</td>
<td class="dato-list-cli">[wpv-user field="user_firstname"]</td>
<td class="dato-list-cli">[types usermeta="telefono-del-usuario"][/types]</td>
<td class="dato-list-cli">[wpv-user field="user_email"]</td>
<td class="dato-list-cli btn-edit-user">[toolset-edit-user-link layout_slug='clientes-asesoria-editar' target='blank']Editar[/toolset-edit-user-link]</td>

<td>[cred_user_form form='clientes-asesoria-borrar-cliente']</td>

#1461439

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

2220 != 2020

¿Es el problema?

#1461599

Perdona Nigel me he equivocado al redactar la respuesta anterior, el id del formulario es 2220.
El código colocado en "configuración >> Código personalizado" es correcto.
El problema es otro, no se cual...

#1461963

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

¿Puedo acceder a tu sitio para echar un vistazo?

Voy a marcar tu respuesta siguiente como privada para que me facilita acceso.

Es una buena idea crear un nuevo usuario administrador para mi que lo quitas después, y asegúrate que tienes una copia de seguridad corriente.

#1461997

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

No puedo acceder al backend...

#1462007

La URL de acceso es: hidden link

#1462053

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Pero redirige a hidden link que da 404