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_html의 class-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.