WooCommerce: Cómo editar get_price_html
2 respuestas
- votos
-
- 2013-01-27
Los archivosprincipales y de complementosnunca debeneditarse directamente,ya que cualquier actualizaciónpodría sobrescribir sus cambios. Sibuscaen lafuente de WooCommerceelmétodo
get_price_html
,hay una serie de filtros disponiblesparamodificar la salida de lafunción.Consulte
add_filter
en Codexpara obtenermásinformación sobre cómo agregarfiltros aapply_filters
llamadas.De
get_price_html
enclass-wc-product
:return apply_filters('woocommerce_get_price_html', $price, $this);
Entonces,para agregar supropiofiltro:
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 ); }
-
Graciaspor la respuesta,por cierto,¿por qué cuandoeliminoel contenido de lafunciónprincipal,todavía devuelve la salida comonormal?Thanks 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
-
Entonces,digamos que si hubo una venta yme devuelve `
£ 2£ 1 `,¿cómopuedo cambiareso a `Was:£ 2Ahora: £ 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
-
Noestoy seguro,nomuyfamiliarizado con WooCommerce,tal vez otra clase lo amplíe.vea laedición de arribapara su segundapregunta.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,;),gran ayudaBrill, ;), great help
- 0
- 2013-01-27
- Lucky Luke
-
Estoytratando de saber qué sucedeen elfiltropredeterminado `woocommerce_get_price_html`para` $price`.Enmi sitio,woocommercemuestra 0 $paraproductosgratuitosen lugar de "¡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
-
¿Qué archivotiene esafunción?Noencuentroel archivo.GraciasWhich 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>'; } }
-
Incluso si su códigopuedefuncionar (ynotengoninguna razónparapensar queno),estees un sitio depreguntas y respuestas,no un repositorio de código,por lo queesmejor compartirexperiencia y conocimientoexplicando su código,en lugar de simplementeescribir código sinexplicaciónni comentariosen línea ...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
-
el códigotambién usapropiedades de objeto queno sonbuenas.the code also uses object properties which is not good.
- 0
- 2018-05-08
- Svetoslav Marinov
Estoyintentandoeditarel valor delprecio de un soloproducto.
En
single-product/price.php
hay una llamada deplantilla a$product->get_price_html
.¿Cómopuedoeditaresafunción/métodopara cambiar laformaen que sepresentael HTML?Porelmomento,incluso sieliminotodoel contenido de lafunción ubicadaen
class-wc-product
,¿todavía semuestramilagrosamente?¿Alguien sabepor qué?