WooCommerce: Como editar o get_price_html

8

Estou tentando editar o valor do preço para um único produto.

Em single-product/price.php , há uma chamada de modelo para $product->get_price_html . Como posso editar essa função / método para mudar a forma como o HTML é apresentado?

No momento, mesmo se eu excluir todo o conteúdo da função localizada em class-wc-product , ela ainda será milagrosamente exibida? Alguém sabe por quê?

    
por Lucky Luke 27.01.2013 / 20:15

2 respostas

14

Os arquivos principais e de plug-in nunca devem ser editados diretamente, pois qualquer atualização pode substituir suas alterações. Se você procurar na fonte WooCommerce no método get_price_html , há vários filtros disponíveis para modificar a saída do função.

Veja add_filter no Codex para mais informações sobre como adicionar filtros a apply_filters chama.

De get_price_html em class-wc-product :

return apply_filters('woocommerce_get_price_html', $price, $this);

Para adicionar seu próprio filtro:

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 );
}
    
por Milo 27.01.2013 / 21:06
5
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>';
   }
}
    
por Pankaj jha 03.01.2014 / 15:13