Visualizzare l'ID prodotto e la chiave dell'elemento nel carrello

30 lug 2018, 09:17:14
Visualizzazioni: 13.8K
Voti: 1

Come posso visualizzare l'ID prodotto e la product_item_key di ogni articolo nel carrello invece del conteggio totale?

function iconic_cart_count_fragments( $fragments ) {

    $fragments['div.header-cart-count'] = '<div class="header-cart-count">' . WC()->cart->get_cart_contents_count() . '</div>';

    return $fragments;

} 

Grazie

0
Tutte le risposte alla domanda 2
2

Techno Deviser, probabilmente per errore, nel ciclo foreach ha impostato il valore su $fragments['div.header-cart-count'] invece di concatenarlo.

Prova questa modifica:

function iconic_cart_count_fragments( $fragments ) {

     foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { 
        $fragments['div.header-cart-count'] .= '<div class="header-cart-count">' .$cart_item_key.'<br><br>'. $cart_item['product_id']. '</div>'; 
     } 
     return $fragments; 
} 

Oppure:

function iconic_cart_count_fragments( $fragments ) {

     $cart = WC()->cart->get_cart();
     if (!empty($cart)) {
         foreach ( $cart as $cart_item_key => $cart_item )
            $output .= $cart_item_key. ' - ' . $cart_item['product_id'] . '<br>';
         $fragments['div.header-cart-count'] = '<div class="header-cart-count">' . $output . '</div>'; 
     }
     return $fragments; 
} 
30 lug 2018 12:57:56
Commenti

@JyotiSharma Ho appena controllato il secondo esempio dal codice sopra. Se ho 2 prodotti diversi nel carrello e clicco "aggiungi al carrello" sul successivo, l'indice div.header-cart-count nella risposta JSON ha 3 coppie chiave/valore.

nmr nmr
30 lug 2018 21:46:25

Sì hai ragione, grazie! Tutto funziona bene, sto chiudendo questo argomento ora.

Jyoti Sharma Jyoti Sharma
31 lug 2018 06:37:39
9

Prova qualcosa del genere

global $woocommerce;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {

echo $cart_item_key;
echo $cart_item['product_id'];
}

OPPURE

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
echo $cart_item_key;
echo $cart_item['product_id'];
}

OPPURE

    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
 $fragments['div.header-cart-count'] = '<div class="header-cart-count">' .$cart_item['product_id']. '</div>'; 
 }

Questo ti darà gli ID dei prodotti, invece dell'output attuale.

Soluzione funzionante finale.

 global $woocommerce; 
 add_filter( 'woocommerce_add_to_cart_fragments', 'iconic_cart_count_fragments', 10, 1 ); 
 function iconic_cart_count_fragments( $fragments ) {
     foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { 
     $fragments['div.header-cart-count'] = '<div class="header-cart-count">' .$cart_item_key.'<br><br>'. $cart_item['product_id']. '</div>'; 
     return $fragments; 
     } 

     } 
30 lug 2018 11:00:13
Commenti

ho già provato così ma dopo il frontend diventa completamente bianco.

Jyoti Sharma Jyoti Sharma
30 lug 2018 11:22:10

codice del file function.php add_filter( 'woocommerce_add_to_cart_fragments', 'iconic_cart_count_fragments', 10, 1 );

function iconic_cart_count_fragments( $fragments ) {

$fragments['div.header-cart-count'] = '<div class="header-cart-count">' . foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {

echo $cart_item_key; echo $cart_item['product_id']; } . '</div>';

return $fragments;

}

Jyoti Sharma Jyoti Sharma
30 lug 2018 11:22:39

Stai sbagliando

Techno Deviser Techno Deviser
30 lug 2018 11:23:58

qual è il modo corretto? il mio obiettivo è visualizzare ogni item_id e item_key del carrello dopo che viene attivato l'aggiunta al carrello via ajax sulla pagina della categoria/home

Jyoti Sharma Jyoti Sharma
30 lug 2018 11:27:26

Prova la soluzione dell'ultimo passaggio

Techno Deviser Techno Deviser
30 lug 2018 11:40:16

Sto solo fornendo una risposta in base alla tua domanda, all'interno della tua funzione.

Techno Deviser Techno Deviser
30 lug 2018 11:42:10

grazie mille, funziona esattamente come volevo.

global $woocommerce; add_filter( 'woocommerce_add_to_cart_fragments', 'iconic_cart_count_fragments', 10, 1 );

function iconic_cart_count_fragments( $fragments ) { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $fragments['div.header-cart-count'] = '<div class="header-cart-count">' .$cart_item_key.'<br><br>'. $cart_item['product_id']. '</div>';

} return $fragments; }

Jyoti Sharma Jyoti Sharma
30 lug 2018 12:18:31

Nessun problema. Contrassegno come risposta

Techno Deviser Techno Deviser
30 lug 2018 12:28:44

grazie ma mi dispiace, mostra solo il valore di un prodotto anche quando ce ne sono molti nel carrello voglio mostrare tutti gli ID prodotto e le chiavi degli articoli nel carrello

Jyoti Sharma Jyoti Sharma
30 lug 2018 12:40:44
Mostra i restanti 4 commenti