woocommerce에서 가격 및 결제 기능 숨기기


17

이 질문이 너무 광범위하다는 것을 알고 있지만 약간의 방향을 찾고 있습니다. 내 고객은 30-40 개의 제품을 갖춘 woocommerce 상점을 가지고 있습니다. 어떤 이유로 든 더 이상 온라인 판매를 원하지 않지만 웹 사이트에는 제품 페이지, 정보 등을 유지하려고합니다.

woocommerce에서 후크 등을 사용하여 가격과 같은 것을 숨기고 장바구니 버튼에 추가하는 방법이 있습니까? 아니면 그냥 PHP 템플릿 파일을 편집해야합니까?

답변:


23

운 좋게 woocommerce는 많은 고리를 가지고 있습니다. 이것은 가격과 버튼을 제거합니다.

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

당신은 파고 수 content-product.phpcontent-single-product.php더 많은 물건을 제거해야합니다.

숨기거나 제거하려는 가격 / 버튼 (페이지 / 기능과 같은) 이상이 있다고 생각할 수 있습니다. 이 자습서 에서는 몇 가지 포인터를 제공합니다.


그 후크가 functions.php에 삽입되어야한다고 생각하는 것이 맞습니까? 그렇다면 특정 섹션을 넣어야합니까? 그들이 작동한다면, 아마도 일부 스타일링과는 별도로 카트 기능이 더 이상 보이지 않을 것입니다.
James

1
예, functions.php에 넣을 수 있으며 다른 함수 내에 넣는 위치는 중요하지 않습니다. 마지막 파일 뒤에 넣지 않는 한 일반적으로 파일 끝에서 가장 안전합니다 ?>. 이렇게하면 장바구니 페이지가 제거되지는 않지만 실제로 장바구니에 무언가를 추가 할 가능성이 제거됩니다. 카트 페이지가 마음에 들지 않으면 비교적 안전해야합니다.
Ewout

효과가있다. 그러나 이것은 이상합니다. 이를 적용한 후 제품 이미지가 나타나지 않습니다. 그것은 그들의 위치를위한 빈 공간을 보여 주며, 내가 그들 위로 마우스를 가져 가서 클릭하면 올바른 이미지를 보여줍니다. 왜 그런 일이 일어나고 있는지에 대한 아이디어가 있습니까?
Brethlosze

13

위의 코드를 확장하면 (Ewout 덕분에) 다음 코드는 모든 가격을 제거하고 모든 woocommerce 제품의 '장바구니에 추가'버튼을 제거하고 이유에 대한 설명을 제공합니다. 직접 판매 제품을 제공하고 규칙을 준수하는 웹 사이트 코드가 필요했는데, 일반 대중에게 가격을 표시 할 수 없습니다.

테마의 functions.php 파일에 필터를 추가하십시오.

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}

이건 이상해. 이를 적용한 후 제품 이미지가 나타나지 않습니다. 그것은 그들의 위치를위한 빈 공간을 보여 주며, 내가 그들 위로 마우스를 가져 가서 클릭하면 올바른 이미지를 보여줍니다. 왜 그런 일이 일어나고 있는지에 대한 아이디어가 있습니까?
Brethlosze

이 코드는 WooCommerce v 3.2.1:-) 에서 작동하지 않습니다
Steve

1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

이렇게하면 결제를 완전히 방지하고 다음을 통해 모든 가격을 숨길 수 있습니다.

  • 모든 제품을 구매할 수 없도록 만들기 (1 행)
  • 가격 HTML 비우기 (2 행)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.