Supporto » Funzionalità = Plugin » custom field // get meta value specifico

  • Risolto canebullo

    (@canebullo)


    buongiorno a tutti,

    ho un meta value così composto:
    {“administrator”:”0″,”customer”:”99″,”trade”:”0″,”pro”:”0″}

    vorrei poter estrarre il valore “customer”, ossia “99” e non capisco come fare. per ora ho la seguente funzione ma qualcosa non quadra:

    
    $id_prodotto = $product->get_ID();
    $prezzo_suggerito = get_post_meta($id_prodotto, 'festiUserRolePrices', true); 
    $valore = $prezzo_suggerito[ 'customer' ];
    
    echo $valore;
    

    in questo modo mi viene restituito il seguente errore: Warning: Illegal string offset ‘customer’.

    qualcuno sa dirmi dove sbaglio?
    grazie!

Stai visualizzando 2 risposte - dal 1 al 2 (di 2 totali)
  • Moderatore Guido Scialfa

    (@wido)

    Ciao @canebullo,

    Il problema è che il valore del meta è un json e non un dato serializzato.

    Quello che devi fare e passare il meta prelevato alla funzione json_decode per decodificare la stringa ad un effettivo json, poi potrai accedervi tramite $prezzo_suggerito[ 'customer' ]

    Chi ha creato la discussione canebullo

    (@canebullo)

    grazie @wido!

    non essendo esperto in php e non avendo mai dovuto estrapolare questo tipo di dati, mi ero fissato a provare con unserialize.

    grazie a te ho risolto in questo modo:

    
    $id_prodotto = $product->get_ID();
    $prezzo_suggerito = get_post_meta($id_prodotto, 'festiUserRolePrices', true); 
    
    $obj = json_decode($prezzo_suggerito);
    
    print $obj -> {'customer'};
    
Stai visualizzando 2 risposte - dal 1 al 2 (di 2 totali)
  • Il topic ‘custom field // get meta value specifico’ è chiuso a nuove risposte.