Woocommerce - rimuovere l'immagine segnaposto predefinita?

5 ago 2013, 10:42:41
Visualizzazioni: 23.4K
Voti: 2

Come posso mostrare le immagini solo per alcuni articoli ma non per altri?

Sto lavorando su un menu di ristorante con ordinazione online, visualizzando il menu del cibo (prodotti WooCommerce) con shortcode - ad esempio [product_category category="starters" orderby="date" order="asc"] ecc.

Molti degli articoli non richiedono un'immagine, ma ho scoperto che se un prodotto non ha un'immagine associata, WooCommerce aggiunge automaticamente un segnaposto poco gradevole agli elenchi.

Posso disattivare tutte le miniature, ma ho ancora bisogno del supporto per le miniature per qualsiasi prodotto che richiede un'immagine.

Se elimino l'immagine segnaposto predefinita, viene sostituita con il testo "placeholder"!

Se sostituisco il loro segnaposto con un piccolo .png trasparente, questo viene ingrandito alla dimensione delle miniature, creando un indesiderato "spazio vuoto" per l'immagine mancante.

Non so cos'altro provare? Grazie

0
Tutte le risposte alla domanda 3
1

woocommerce_template_loop_product_thumbnail è una funzione pluggable, quindi puoi sovrascriverla con il tuo codice. Ogni volta che vedi una funzione in un ambiente WordPress che si presenta così:

if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {

/**
 * Ottiene l'anteprima del prodotto per il loop.
 *
 * @access public
 * @subpackage  Loop
 * @return void
 */
function woocommerce_template_loop_product_thumbnail() {
    echo woocommerce_get_product_thumbnail();
}
}

il controllo if ( ! function_exists('qualcosa' ) ) indica una funzione pluggable che puoi sovrascrivere creando una funzione con lo stesso nome nel tuo tema o child theme.

La funzione di WooCommerce mostra essenzialmente l'anteprima se esiste e il placeholder se non esiste, quindi nella tua versione dovrai semplicemente eliminare quella parte, in questo modo:

function woocommerce_template_loop_product_thumbnail() {
    global $post;
    if ( has_post_thumbnail() )
          echo get_the_post_thumbnail( $post->ID, 'shop_catalog' );
}
5 ago 2013 17:20:23
Commenti

Grazie per questo Helga (la vichinga) :) E grazie per aver dedicato del tempo a spiegare come e perché funziona - molto utile

speedypancake speedypancake
5 ago 2013 19:02:32
1

Trovata una risposta altrove http://www.peterrknight.com/woocommerce-tutorial-better-product-listings-for-imageless-products-part-1/ che includo. Potrebbe probabilmente essere sistemata o semplificata, ma sembra funzionare perfettamente rimuovendo l'immagine segnaposto predefinita per i prodotti che non hanno un'immagine:

function before_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
    echo '<div class="no-image">';
}
}
add_action( 'woocommerce_before_shop_loop_item', 'before_imageless_product', 9 );

function after_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
    add_action( 'woocommerce_before_shop_loop_item_title',      'woocommerce_template_loop_product_thumbnail', 10 );
    echo '</div>';
}
}
add_action( 'woocommerce_after_shop_loop_item', 'after_imageless_product', 9 );
5 ago 2013 14:28:56
Commenti

Grazie per il codice, funziona perfettamente per i prodotti. C'è un modo per modificarlo in modo che funzioni con le categorie di prodotti invece?

Richard Mišenčík Richard Mišenčík
13 dic 2018 13:33:19
1
-2

questo è un modo semplice per rimuovere l'immagine predefinita del segnaposto. segui semplicemente i passaggi:

1: vai al plugin woocommerce
2: vai alla cartella templates
3: poi vai alla cartella single product

qui troverai il file product-image.php. aprilo e rimuovi solo il codice menzionato qui sotto

 else {
   echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="Placeholder" />', woocommerce_placeholder_img_src() ), $post->ID );
 }

il tuo problema sarà risolto :)

grazie

19 dic 2013 14:23:52
Commenti

Non dovresti mai modificare i file core di WordPress, i temi e i plugin (almeno non se ci sono altri modi). Non appena aggiorni il plugin ecc., le tue modifiche verranno perse.

tfrommen tfrommen
19 dic 2013 14:39:07