WooCommerce에서 제품을 숨기거나 카테고리 또는 역할별로 제품을 숨기는 방법

게시 됨: 2020-02-24

WooCommerce와 이 게시물에서 특정 제품을 숨기는 데 사용할 수 있는 여러 가지 방법이 있습니다. WooCommerce에서 제품을 숨기는 이러한 각 방법을 살펴보겠습니다. WooCommerce 스토어에서 제품을 숨겨야 하는 몇 가지 이유가 있지만 목록의 맨 위에 있는 것은 제품의 재고가 없거나 제품이 예약된 경우입니다. 특정 고객 또는 사용자 역할.

WooCommerce 제품 숨기기

품절 제품을 숨기려면 먼저 제품을 숨기는 대신 제품에 품절 라벨을 추가하는 것을 고려해야 합니다.

그럼에도 불구하고 이러한 품절 제품이나 다른 WooCommerce 제품을 숨기고 싶다면 이 게시물에서 ID, 이름 또는 카테고리별로 제품을 숨길 수 있는 방법을 공유하겠습니다.

옵션을 사용하여 WooCommerce 제품 숨기기

WooCommerce는 기본적으로 사용자가 제품의 가시성을 제어할 수 있는 탁월한 옵션과 함께 제공됩니다.

이미지를 게시하기 전에 가시성 옵션을 제어하여 WooCommerce에서 숨겨진 제품을 만들 수 있습니다. 가시성을 사용하여 WooCommerce에서 제품을 숨기려면 다음 단계를 따라야 합니다.

  1. WordPress 사이트 대시보드에 로그인
  2. 아래 이미지와 같이 제품 메뉴를 클릭하면 가시성 옵션을 사용하여 사용자에게 숨기고 싶은 제품에 접근할 수 있습니다. Woocommerce에서 제품을 숨기는 방법
  3. 아래와 같이 숨기려는 모든 제품 목록에서 제품을 선택하고 편집을 클릭하여 제품 편집 화면에 액세스합니다. Woocommerce에서 제품을 숨기는 방법
  4. 오른쪽 아래 게시 메타박스 아래에 있는 제품 편집 화면에는 '카탈로그 가시성'이라는 옵션이 있습니다. 이 링크를 클릭하면 옵션이 있는 드롭다운이 나타나고 마지막 옵션은 숨김입니다.
    이 라디오 옵션을 선택하고 확인을 클릭한 다음 게시물을 업데이트하면 제품이 상점 카탈로그에서 숨겨집니다. 이 세 단계(1,2,3)에 설명된 대로: Woocommerce에서 제품을 숨기는 방법
  5. 이 옵션을 저장하고 게시물을 업데이트하면 상점 프론트엔드에서 볼 수 있듯이 제품 가시성이 숨김으로 설정됩니다. Woocommerce에서 제품을 숨기는 방법
  6. 제품 편집 화면의 백엔드에서 카탈로그 가시성 옵션을 확인하면 게시물이 업데이트되었을 때 숨김으로 업데이트된 것을 볼 수 있습니다. Woocommerce에서 제품을 숨기는 방법

이것은 상점 카탈로그에서 WooCommerce 제품을 숨기는 가장 빠른 방법입니다. 자식 테마에 코드를 추가하는 것과 같이 사용할 수 있는 다른 방법이 있습니다. WooCommerce에서 제품을 숨기는 데 사용할 수 있는 더 많은 옵션을 살펴보겠습니다.

Woocommerce Shop 페이지에서 특정 카테고리 제품 숨기기

WooCommerce의 상점 페이지에서 특정 제품을 숨기려면 상점 페이지 'woocommerce_product_query'의 쿼리를 대상으로 하는 작업 후크를 사용하여 이를 수행할 수 있습니다.

콜백 함수는 $tax_query를 사용하여 숨기려는 제품과 관련된 용어로 범위를 좁혀야 합니다.

이 경우 $tax_query 배열의 용어 키는 게시물에서 현재 WooCommerce 제품 카테고리를 얻는 방법에 대해 설명한 카테고리/태그와 동일합니다.

이 제품을 '자동차 부품' 카테고리에서 숨기고 싶다고 가정해 보겠습니다.

우커머스 제품 숨기기

functions.php 파일에 추가된 다음 코드 스니펫을 사용하여 쇼핑 페이지에서 제품을 숨길 수 있습니다.

 /**
 * 쇼핑 페이지에서 카테고리별 WooCommerce 제품을 숨깁니다.
 *
 * @param $q
 */
 

add_action( 'woocommerce_product_query', 'njengah_hide_product_by_category_shop_page' ); 

기능 njengah_hide_product_by_category_shop_page( $q ) {

    $tax_query = (배열) $q->get( 'tax_query' );

    $tax_query[] = 배열(
           '분류' => '제품_고양이',
           '필드' => '슬러그',
           'terms' => array( 'uncategorised','auto-parts'), // 샵 페이지의 '자동차 부품' 카테고리에 상품을 표시하지 않습니다.
           '연산자' => '없음'
    );


    $q->set( 'tax_query', $tax_query );

}

테마 기능에 이 코드를 추가하면 '자동차 부품' 카테고리를 제품을 숨기려는 다른 카테고리로 바꿀 수 있습니다. 그러면 아래와 같이 쇼핑 페이지의 해당 카테고리에서 제품이 효과적으로 숨겨집니다.

우커머스 제품 숨기기

WooCommerce 로그인하지 않으면 제품 숨기기

WooCommerce에서 제품을 숨기는 또 다른 일반적인 방법은 로그인 여부에 관계없이 사용자의 상태에 따라 제품 가시성을 제한하는 것입니다.

첫 번째 단계는 분명히 사용자가 로그인했는지 확인하는 것입니다. 여기에서 사용자가 WordPress에 로그인했는지 확인하는 방법에 대해 자세히 설명했습니다.

이 코드를 사용하여 로그인 상태를 확인한 다음 쿼리와 결합하여 사용자의 로그인 상태에 따라 조건부로 WooCommerce 제품을 숨길 것입니다.

코드는 다음과 같아야 합니다.

 **
 * 사용자가 로그인하지 않은 경우 WooCommerce 제품 숨기기 
 *
 * @param $query
 */
 

기능 njengah_hide_product_if_user_not_logged( $query ) {
	
	
    if ( $query->is_main_query() && is_woocommerce() && !is_user_logged_in() ) {
		
        $tax_query = 배열(
            정렬(
                    '분류' => '제품_고양이',
                    '필드' => '슬러그',
                    'terms' => array( 'uncategorised','auto-parts'), // 샵 페이지의 '자동차 부품' 카테고리에 상품을 표시하지 않습니다.
                    'operator'=> 'NOT IN' // 제외
                )
            );

        $query->set('tax_query', $tax_query);
    }
}

add_action( 'pre_get_posts', 'njengah_hide_product_if_user_not_logged' );

보시다시피 쿼리를 진행하기 전에 사용자가 is_user_logged_in() 함수를 사용하여 로그인했는지 조건부로 확인하고 있습니다.

Woocommerce 사용자 역할별 제품 숨기기

사용자 역할별로 제품을 숨길 수도 있습니다. WordPress에서 현재 사용자 역할을 가져오는 방법에 대한 이전 자습서에서 설명했듯이 현재 로그인한 사용자와 해당 사용자 역할을 먼저 가져와야 합니다. 사용자 역할을 가져오는 이 코드는 다음과 같습니다.

 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정

        $roles = ( 배열 ) $user->roles; // 역할 획득

        $roles[0] //현재 사용자 역할

이 코드를 이전 pre_get_posts 작업과 결합해야 하며 모든 사용자가 관리자가 예상하는 제품을 숨길 코드는 다음과 같습니다.

 /**
 * 이 경우에는 관리자만 이 제품을 볼 수 있는 것처럼 사용자 역할별로 WooCommerce 제품을 숨깁니다. 
 *
 * @param $query
 */


기능 njengah_hide_product_by_user_role( $query ) {
	
	 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 
	 $roles = ( 배열 ) $user->roles; // 역할 획득 
	
	
    if ( $query->is_main_query() && is_woocommerce() && $roles[0] != '관리자' ) {
		
        $tax_query = 배열(
            정렬(
                    '분류' => '제품_고양이',
                    '필드' => '슬러그',
                    'terms' => array( 'uncategorised','auto-parts'), // 샵 페이지의 '자동차 부품' 카테고리에 상품을 표시하지 않습니다.
                    'operator'=> 'NOT IN' // 제외
                )
            );

        $query->set('tax_query', $tax_query);
    }
}

add_action( 'pre_get_posts', 'njengah_hide_product_by_user_role' );

쿼리를 조건부로 확인하는 이 코드 줄에서 볼 수 있듯이 사용자 역할이 admin이 아닌지 확인하는 조건을 도입했습니다 – $roles[0] != 'administrator' 그런 다음 쿼리를 진행합니다. 이것이 사용자 역할에 따라 WooCommerce 제품을 숨기는 방법입니다.

특정 요구 사항에 맞게 이 예를 설명할 수 있으며 이러한 모든 경우를 결합하여 WooCommerce 제품을 숨기는 하나의 조건부 방법을 만들 수도 있습니다.

마지막 생각들

이 게시물에서는 사용자 역할별 숨기기, 사용자가 로그인하지 않은 경우 제품 숨기기, 이러한 조건 없이 WooCommerce 제품 숨기기를 포함하여 WooCommerce 제품을 숨길 수 있는 세 가지 일반적인 방법을 강조했습니다. 또한 제품 편집 화면에서 제공되는 카탈로그 가시성 옵션을 사용하여 WooCommerce 제품을 숨기는 가장 간단한 방법을 설명했습니다. 이제 상점에서 WooCommerce 제품을 숨기기 위해 이러한 솔루션 중 하나를 쉽게 구현할 수 있기를 바랍니다.