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.php및 content-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.