Visualizza il valore di un singolo attributo del prodotto nella pagina Shop (Woocommerce)

2 nov 2016, 01:22:56
Visualizzazioni: 53.5K
Voti: 6

Sto cercando di visualizzare il valore di un singolo attributo ('size') nella pagina shop. Ho utilizzato il seguente codice per mostrare tutti i valori, ho provato ad adattarlo per mostrare un singolo attributo, ma senza successo...

Potete aiutarmi ad adattare il codice per visualizzare solo i valori dell'attributo 'size'?

// Ottieni gli attributi
$attributes = $product->get_attributes();
// Inizia il ciclo
foreach ( $attributes as $attribute ) : 
    // Controlla e genera output, adattato da /templates/single-product/product-attributes.php
    if ( $attribute['is_taxonomy'] ) {
        $values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );
        echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
    } else {
        // Converti i separatori in virgole e mostra i valori
        $values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
        echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
    }
endforeach;

Potete farmi sapere come modificarlo?

0
Tutte le risposte alla domanda 2
8
11

Basta usare global $product e poi utilizzare il metodo get_attribute() di quell'oggetto prodotto, come mostrato di seguito-

$size = $product->get_attribute( 'pa_size' );

Puoi anche ottenerlo con il seguente codice-

global $product;
$size = array_shift( wc_get_product_terms( $product->id, 'pa_size', array( 'fields' => 'names' ) ) );

Ricorda che devi assolutamente usare global $product.

2 nov 2016 06:35:32
Commenti

Grazie, e come posso poi visualizzare i valori (separati da spazio)?

nadyawell nadyawell
2 nov 2016 16:06:25

Non ho capito a cosa ti riferisci con "separati da spazi"!! E se pensi che questa risposta ti abbia aiutato, per favore accettala.

CodeMascot CodeMascot
2 nov 2016 16:36:14

Mi è stato utile, grazie. Ho solo difficoltà a visualizzare correttamente i valori nel mio template. Puoi consigliarmi come visualizzarli?

nadyawell nadyawell
2 nov 2016 16:39:59

Puoi fornire qualche link visibile o immagine di come vuoi mostrarli? @user3767576

CodeMascot CodeMascot
2 nov 2016 16:41:35

http://nadinka.webd.pl/modafirma/category/clothing/ - al passaggio del mouse sull'immagine del prodotto vedrai un riquadro con le taglie disponibili, voglio visualizzare lì tutti i valori delle taglie assegnati al prodotto. Ho provato a mostrarli usando $echo, ma appare solo il primo valore (ce ne sono più di uno per ogni prodotto)

nadyawell nadyawell
2 nov 2016 16:48:16

Capito. Sono un po' occupato al momento. Dammi un po' di tempo. Ti risponderò. Va bene amico mio?

CodeMascot CodeMascot
2 nov 2016 16:59:14

Il codice che ha funzionato per me è $size = $product->get_attribute( 'pa_size' ); global $product; $size = array_values( wc_get_product_terms( $product->id, 'pa_size', array( 'fields' => 'names' ) ) ); $prodsizes=implode(", ",$size); echo $prodsizes;

nadyawell nadyawell
2 nov 2016 22:01:48

Per mostrare un attributo specifico chiamato "Dimensioni Articolo":

add_action( 'woocommerce_single_product_summary', 'display_product_formated_dimensions_table', 25 );

function display_product_formated_dimensions_table(){ global $product;

$item_dimensions = $product->get_attribute( 'Item Dimensions' ); if ( $product->has_attributes() ) { echo '<table class="shop_attributes"><tr> <th>' . __( 'Dimensioni Articolo', 'woocommerce' ) . '</th> <td class="product_dimensions">' . esc_html( $item_dimensions ) . '</td> </tr></table>'; } }

Antebios Antebios
3 dic 2020 07:32:21
Mostra i restanti 3 commenti
1
-1
$product = wc_get_product();
echo $product->get_attribute( 'Dimensione' );
16 lug 2018 10:53:12
Commenti

Potresti spiegare perché questa è una risposta?

Krzysiek Dróżdż Krzysiek Dróżdż
16 lug 2018 12:00:07