• Hola a todos,
    esta es mi primera pregunta en el foro, la verdad es que he estado buscando info por todas partes y no he encontrado aun la manera..

    Sea una web desarrollada en WordPress (http://www.bancdeltempsmataro.org), me gustaría crear una página en PHP utilizando un Template donde simplemente:

    1) A través de un desplegable se pueda escoger un usuario del sitio (usando get_users() )

    2) usando get_user_meta() acceder a los datos meta de ese usuario

    3) mediante update_user_meta(), actualizar los datos de ese usuario

    facil no?
    pues no me funciona…

    Una vez conseguidos los datos de un usuario (punto 2), ya es imposible, dentro de la misma página poder hacer nada más, no puedo crear otro formulario con los datos conseguidos para su modificación.

    Como podría resolver este problema? alguna pista?

    gracias!

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • ¿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 ‘     &nbsp’;
    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.

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • El debate ‘Formulario dinámico en Template’ está cerrado a nuevas respuestas.