¿podrías poner el código y explicar un poco más en detalle lo que quieres hacer y exactamente donde deja de funcionar?
Iniciador del debate
jordimp
(@jordimp)
Hola, por supuesto:
Sea el blog de un Banco de Tiempo, donde los usuarios acumulan horas por servicios que prestan.
Este dato (las horas que tiene cada uno de los usuarios) lo guardo en la tabla meta
La secretaria necesita accede al blog para actualizar los datos de cada usuario, es decir, si el usuario «Pepe» ha hecho una actividad y ha recibido +1 hora, la secretaria tiene que:
1) entrar en el blog
2) seleccionar de un desplegable el usuario «Pepe», usando get_users()
3) el blog le mostrará los datos de «Pepe», usando (entre los cuales está las horas que «Pepe» tiene disponibles», usando get_user_meta()
4) la secretaria sumará 1 hora al saldo de «Pepe» y aceptará los cambios (con un botón)
5) el blog actualiza los datos, usando update_user_meta()
El problema es que consigo hacer sin problemas hasta el punto 3, pero a la hora de actualizar los datos (punto 4 y 5), sinceramente, no encuentro la manera.
Adjunto el código en otro comentario.
Gracias por vuestra ayuda.
Iniciador del debate
jordimp
(@jordimp)
El codigo que tengo es el siguiente:
$userID = get_current_user_id();
if ($userID == $_SECRETARIA) {
//creamos un desplegable
$blogusers = get_users();
echo ‘<form method=»post»>’;
echo ‘<select name=»select1″>’;
foreach ( $blogusers as $user ) {
echo ‘<option value=»‘.$user->user_login.'»>’.$user->user_login.'</option>’;
}
echo ‘</select>’;
echo ‘<input type=»hidden» name=»stage» value=»process»>’;
echo ‘<input type=»submit» value=»Buscar socio»>’;
echo ‘</form>’;
if (isset($_POST[‘stage’]) && (‘process’ == $_POST[‘stage’])) {
//conseguimos los datos del usuario escogido
$mi_data=get_user_by(‘login’,$wpdb->escape(trim($_POST[‘select1’])));
$meta=get_user_meta($mi_data->ID);
echo ‘  ’;
echo ‘<p>Datos del usuario ‘.$meta[‘nickname’][0].’:</p>’;
echo ‘<p>Saldo: ‘.$meta[‘saldo’][0].’ horas</p>’;
//
echo ‘<form method=»post»>’;
echo ‘<p>Nuevo saldo: ‘;
echo ‘<input type=»text» name=»nuevo_saldo»></p>’;
echo ‘<input type=»submit» value=»Aplicar cambios»>’;
echo ‘<button type=»reset» value=»Reset»>Reset</button>’;
echo ‘</form>’;
//// ESTE TROZO DE CODIGO ES EL QUE NO FUNCIONA Y NO SE COMO
//// HACER FUNCIONAR! 🙁
if (isset($_POST[‘stage’]) && (‘segundo_paso’ == $_POST[‘stage’])) {
echo «<p>Actualizando ID «.$mi_data->ID.» con saldo «.$POST[‘nuevo_saldo’].» y movimiento «.$POST[‘nuevo_movimiento’].»</p>»;
update_user_meta($mi_data->ID, ‘saldo’, $meta[‘saldo’]);
}
Creo que tu problema es que estas usando dos formularios, y haciendo llamadas de uno a otro cuando haces submit, y no tienes acceso a esos datos
Es decir, en el segundo form haces submit pero no estás teniendo acceso a $_POST[‘select1’], que pertenece al formulario 1, entonces la variable $mi_data es vacía y no puedes actualizar el dato
Saludos
Iniciador del debate
jordimp
(@jordimp)
ah, entiendo el problema…
gracias por la ayuda.