WooCommerce: come modificare get_price_html
2 risposta
- voti
-
- 2013-01-27
Ifile coree pluginnon devonomaiesseremodificati direttamente,poiché qualsiasi aggiornamentopotrebbe sovrascrivere lemodifiche. Seguardinellafonte WooCommerce almetodo
get_price_html
,ci sono una serie di filtri disponibilimodificare l'output dellafunzione.Vedi
add_filter
nel Codexpermaggioriinformazioni sull'aggiunta difiltri aapply_filters
chiamate.Da
get_price_html
inclass-wc-product
:return apply_filters('woocommerce_get_price_html', $price, $this);
Quindi,per aggiungereiltuofiltro:
add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 ); function wpa83367_price_html( $price, $product ){ return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price ); }
Core and plugin files should never be edited directly, as any updates could overwrite your changes. If you look in WooCommerce source at the
get_price_html
method, there are a number of filters available to modify the output of the function.See
add_filter
in Codex for more info on adding filters toapply_filters
calls.From
get_price_html
inclass-wc-product
:return apply_filters('woocommerce_get_price_html', $price, $this);
So to add your own filter:
add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 ); function wpa83367_price_html( $price, $product ){ return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price ); }
-
Grazieper la risposta,apropositoperché quandoeliminoil contenuto dellafunzioneprincipale restituisce comunque l'outputnormalmenteThanks for the answer, by the way why when I delete the contents of the main function it still returns the output as normal
- 0
- 2013-01-27
- Lucky Luke
-
Quindi diciamo che se cifosse una venditae mi restituisse "
£ 2£ 1 ",comeposso cambiarloin "Was:£ 2Adesso: £ 1 "con unfiltro?So lets say if there was a sale on and it returns me `£2£1`, how can i change that into `Was:£2Now:£1` with a filter?- 1
- 2013-01-27
- Lucky Luke
-
non sono sicuro,non homoltafamiliarità con WooCommerce,forse un'altra classe loestende.vedimodifica sopraper latua seconda domanda.not sure, not too familiar with WooCommerce, perhaps another class extends it. see edit above for your second question.
- 0
- 2013-01-27
- Milo
-
Brill,;),grande aiutoBrill, ;), great help
- 0
- 2013-01-27
- Lucky Luke
-
Sto cercando di sapere che cosa sta succedendonelfiltropredefinito `woocommerce_get_price_html`per` $price`.Nelmio sito,woocommercemostra 0 $peri prodottigratuitiinvece di "Gratis!"I am trying to know that what happening in default `woocommerce_get_price_html` filter for `$price`. In my site,woocommerce shows 0$ for free products instead `Free!`
- 0
- 2016-12-07
- SKMohammadi
-
Qualefile ha quellafunzione?Non riesco atrovareilfile.GrazieWhich file has that function? I can't find the file. Thanks
- 0
- 2020-06-19
- Si8
-
- 2014-01-03
function wpa83368_price_html( $price,$product ){ // return $product->price; if ( $product->price > 0 ) { if ( $product->price && isset( $product->regular_price ) ) { $from = $product->regular_price; $to = $product->price; return '<div class="old-colt"><del>'. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' Retail </del> | </div><div class="live-colst">'.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'Our Price</div>'; } else { $to = $product->price; return '<div class="live-colst">' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . 'Our Price</div>'; } } else { return '<div class="live-colst">0 Our Price</div>'; } }
function wpa83368_price_html( $price,$product ){ // return $product->price; if ( $product->price > 0 ) { if ( $product->price && isset( $product->regular_price ) ) { $from = $product->regular_price; $to = $product->price; return '<div class="old-colt"><del>'. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' Retail </del> | </div><div class="live-colst">'.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'Our Price</div>'; } else { $to = $product->price; return '<div class="live-colst">' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . 'Our Price</div>'; } } else { return '<div class="live-colst">0 Our Price</div>'; } }
-
Anche seiltuo codicepuòfunzionare (enon homotivo dipensare chenon lo sia) questo è un sito di domande/risposte,non un repository di codice,quindi èmeglio condividere competenzee conoscenze spiegandoiltuo codice,invece di scrivere semplicemente codice senza spiegazioniné commentiin linea ...Even if your code can work (and I have no reason to think it doesn't) this is a Q/A site, not a code repository so it's better share expertice and knowledge explaining your code, instead of just write code with no explaination nor inline comments...
- 6
- 2014-01-03
- gmazzap
-
il codice utilizza ancheproprietà dell'oggetto chenon sonobuone.the code also uses object properties which is not good.
- 0
- 2018-05-08
- Svetoslav Marinov
Sto cercando dimodificareil valore delprezzoper un singoloprodotto.
In
single-product/price.php
c'è una chiamata almodello$product->get_price_html
.Comepossomodificare quellafunzione/metodoper cambiareilmodoin cui vienepresentato l'HTML?Almomento anche seeliminotuttoil contenuto dellafunzione che sitrovain
class-wc-product
viene visualizzato ancoramiracolosamente?Qualcuno saperché?