¿Cómo actualizo un objeto específico en una matriz, en meta de usuario?

2

Tengo esta matriz, a continuación, para configurar el meta de usuario personalizado ( lh_userbadges ) en user_meta , pero no estoy exactamente seguro de cómo actualizar solo partes de la matriz más adelante ...

$lh_user_badges = array(
    'lh_userbadge_comments25' => '0',
    'lh_userbadge_comments50' => '0',
    'lh_userbadge_comments75' => '0',
    'lh_userbadge_comments100' => '0',
    'lh_userbadge_comments150' => '0',
    'lh_userbadge_submited' => '0',
    //etc.
);
update_user_meta($user_id, 'lh_userbadges', $lh_user_badges);

De lo que recogí en otras preguntas de desbordamiento de pila ( Cómo actualizar los datos serializados en los metadatos del usuario es un buen ejemplo, PERO solo se incrementa, lo que no quiero. Quiero establecer un número específico solo una vez. estas líneas pero, simplemente no estoy seguro ...

$meta_value = get_user_meta($user_id, 'lh_userbadges', false);
$meta_value['lh_userbadge_comments25']  //....?

Entonces, por ejemplo, solo quiero actualizar el objeto lh_userbadge_comments25 de lh_userbadges de 0 a (digamos) 25, ¿cómo haría eso? Creo que estoy en el camino correcto con esa segunda parte del código, pero no sé ...

¿Alguna idea? Además, no estoy seguro de si esta es la mejor manera de hacerlo, pero pensé que esto evitaría el desorden de la base de datos si lo hiciera en este formato en lugar de que cada tipo fuera su propio elemento meta.

    
pregunta Zach Reed 08.03.2012 - 22:02

1 respuesta

4

Puedes asignar un nuevo valor a la clave 1h_userbadge_comments25 .

Me gusta ...

<?php
$meta_value = get_user_meta($user_id, 'lh_userbadges', false);
// just assign this key a new value
$meta_value['lh_userbadge_comments25'] = 25;

Luego simplemente guárdalo de nuevo.

<?php
update_user_meta( $user_id, 'lh_userbadges', $meta_value );

El hecho de que almacenar o no todos esos valores como una matriz es la forma correcta de hacerlo depende realmente de usted. ¿Necesitas hacer muchos cambios como este? ¿Todos estos valores tienen sentido juntos? Sin saber más sobre lo que estás haciendo, es una pregunta difícil de responder.

    
respondido por el chrisguitarguy 09.03.2012 - 01:09

Lea otras preguntas en las etiquetas