Aggiungere una variabile personalizzata al contenuto del carrello
20 mar 2014, 11:23:14
Visualizzazioni: 40.6K
Voti: 3
Ho aggiunto una variabile personalizzata nella pagina dei dettagli del prodotto e posso passare il valore della variabile personalizzata nella funzione add to cart.
public function add_to_cart( $product_id, $quantity = 1, $mmCentre, $variation_id = '', $variation = '', $cart_item_data = array() ) {
.........
.........
}
Quindi la variabile $mmCentre
è la variabile personalizzata. Ora ho fatto questo
$this->cart_contents[$cart_item_key] = apply_filters( 'woocommerce_add_cart_item', array_merge( $cart_item_data, array(
'product_id' => $product_id,
'variation_id' => $variation_id,
'variation' => $variation,
'quantity' => $quantity,
'data' => $product_data,
'mmCentre' => $mmCentre
) ), $cart_item_key );
Il problema è che non riesco a ottenere quel valore nella pagina del carrello. Ho fatto un dump di cart_contents ma non riesco a vedere il valore passato nell'array.
Potete suggerirmi qual è l'errore che sto facendo?

Prithviraj Mitra
177
Commenti
Tutte le risposte alla domanda
1
2
Ho dovuto fare qualcosa di simile tempo fa, ecco cosa funzionava per me:
Nell'esempio, il nome del campo personalizzato è "test_field" all'interno del form di aggiunta al carrello, e in questo modo quando fai il dump di cart_contents, puoi vedere il valore da qualche parte alla fine
//Memorizza il campo personalizzato
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_custom_data_vase', 10, 2 );
function add_cart_item_custom_data_vase( $cart_item_meta, $product_id ) {
global $woocommerce;
$cart_item_meta['test_field'] = $_POST['test_field'];
return $cart_item_meta;
}
//Recuperalo dalla sessione e aggiungilo alla variabile del carrello
function get_cart_items_from_session( $item, $values, $key ) {
if ( array_key_exists( 'test_field', $values ) )
$item[ 'mmCentre' ] = $values['test_field'];
return $item;
}
add_filter( 'woocommerce_get_cart_item_from_session', 'get_cart_items_from_session', 1, 3 );

passatgt
3.4K
20 mar 2014 11:49:01
Domande correlate
4
risposte
4
risposte
3
risposte