• Muy buenas wordpreseros!
    Ahí va mi duda que tengo que no hay manera de resolver… llevo días dándole vueltas y no se me ocurre nada mejor, pero lo cuento y así a ver si alguien es capaz de ayudarme:

    Estoy creando con wordpress una web donde un usuario puede constatar si ha visitado un post o lo quiere dejar para leer más tarde. Entonces, la única manera que se me ha ocurrido es con add_meta_user(); ya que he leído que se puede crear un campo en el usuario que puede contener un array, de este modo podría meter todos los posts visitados en ese array para mostrarle en otra pantalla todos los posts que ha leído, y todos los posts que ha marcado para ver luego pues también.

    Entonces, ahora que ya estamos en situación, el código que he creado (simplón simplón para hacer la prueba) es el siguiente:

    <?php while ( have_posts() ) : the_post();?>
    	<?php $category = get_the_category(); $id_postactual = get_the_ID();?>
    <?php if ( is_user_logged_in() ){ ?>
    				<?php
    					global $current_user;
    					$current_user = wp_get_current_user();
    					$user_id = $current_user->ID;
    					$key_user_data = 'visitado';
    					$visitado_ono = get_user_meta($user_id, $key_user_data, true);
    					echo $visitado_ono; //para ver si devuelve el dato
    					echo $user_id; //para ver si devuelve el usuario
          				if ($visitado_ono == $id_postactual){
          					echo 'visitado';
          				}else{
          					if($_POST['action'] == 'save'){
          						add_meta_user( $user_id, 'visitado', $id_postactual);
          					}
          					?>
          					<form action="" type="post" id="post_visitado_pendiente_single">
          						<input type="text" value="<?php echo $id_postactual; ?>" name="visitado_single">
          						<input type="submit" value="visitado" name="enviar_visitado">
          					</form>
          				<?php }
          			?>
    <?php } ?>

    Entonces, al enviar el formulario no me guarda el campo, o si lo guarda, con los ‘echo’ de prueba que he escrito no devuelve absolutamente nada…

    ¿Alguna idea de porqué no funciona? O si más no, ¿alguna otra forma para hacer lo que requiero?

    Muchísimas gracias de antemano!!!!!!

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Hola dashfat

    Así de primeras me canta la función que estás usando, no es add_meta_user, es add_user_meta

    Lo extraño es que no te haya dado un error de PHP o algo parecido

    Iniciador del debate dashaft

    (@dashaft)

    gracias Pablo por la respuesta, cierto, eso estaba mal, aun así ese no debe ser el error ya que sigue sin funcionar… 🙁 lo cambio en la descripción para no causar confusión

    Hola dashaft

    He probado tu código en local y veo muchos errores

    Al form añádele un name además del id, no es obligatorio pero…

    En el form no es type=post, es method=post

    Sigues teniendo una función add_meta_user, y es add_user_meta

    Una vez que procesas el formulario preguntas por if($_POST[action] == save) y no tienes ninguna variable action que tenga valor save, por lo tanto nunca vas a entrar a actualizar ese dato. Pregunta mejor si está seteado el botón submit: isset($_POST[enviar_visitado]))

    Con esto ya debería funcionarte

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Añadir add_meta_user desde un formulario’ está cerrado a nuevas respuestas.