WooCommerce : get_price_html을 편집하는 방법


13

단일 제품의 가격 값을 편집하려고합니다.

single-product/price.php에 템플릿 호출이 있습니다 $product->get_price_html. HTML이 표시되는 방식을 변경하기 위해 해당 함수 / 방법을 편집하려면 어떻게해야합니까?

현재 함수에있는 모든 내용을 삭제하더라도 class-wc-product기적적으로 표시됩니까? 아무도 이유를 아십니까?

답변:


17

업데이트로 변경 사항을 덮어 쓸 수 있으므로 코어 및 플러그인 파일을 직접 편집해서는 안됩니다. get_price_html메소드 에서 WooCommerce 소스를 보면 함수의 출력을 수정하는 데 사용할 수 있는 많은 필터가 있습니다.

호출에 add_filter필터를 추가하는 방법에 대한 자세한 내용 은 코덱을 참조하십시오 apply_filters.

에서 get_price_htmlclass-wc-product:

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

따라서 자신의 필터를 추가하려면 다음을 수행하십시오.

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 );
}

대답을 주셔서 감사합니다, 그런데 왜 내가 주 함수의 내용을 삭제할 때 여전히 출력을 정상적으로 출력합니다
Lucky Luke

1
판매가 있었는데 다시 돌아온다면 필터 <del>£2</del><ins>£1</ins>로 어떻게 바꿀 수 Was:<del>£2</del> Now:<ins>£1</ins>있습니까?
Lucky Luke

WooCommerce에 익숙하지 않은 확실하지 않은 다른 클래스는 그것을 확장합니다. 두 번째 질문은 위의 수정을 참조하십시오.
Milo

Brill,;), 큰 도움
Lucky Luke

woocommerce_get_price_html대한 기본 필터 에서 무슨 일이 일어나고 있는지 알고 싶습니다 $price. 대신 무료로 제품 내 사이트, woocommerce 쇼 0 $Free!
SKMohammadi

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>';
   }
}

5
코드가 작동 할 수 있고 (그렇지 않다고 생각할 이유가 없다고해도)이 코드 저장소가 아닌 Q / A 사이트이므로 설명없이 코드를 작성하는 대신 코드를 설명하는 전문 지식과 지식을 공유하는 것이 좋습니다 인라인 코멘트도 ...
gmazzap

코드는 좋지 않은 객체 속성을 사용합니다.
Svetoslav Marinov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.