prosource

Woocommerce 관리 제품 목록에서 열을 추가/제거하는 방법

probook 2023. 4. 3. 21:35
반응형

Woocommerce 관리 제품 목록에서 열을 추가/제거하는 방법

제품 목록을 볼 때 Woocommerce 관리 영역의 열을 사용자 지정하고 싶습니다.

특히 일부 열을 제거하고 여러 개의 사용자 지정 필드 열을 추가합니다.

온라인으로 나열된 많은 솔루션을 시도했습니다. 다음과 같은 열을 제거하고 새 열을 추가할 수 있습니다.

add_filter( 'manage_edit-product_columns', 'show_product_order',15 );
function show_product_order($columns){

   //remove column
   unset( $columns['tags'] );

   //add column
   $columns['offercode'] = __( 'Offer Code'); 

   return $columns;
}

그러나 새로운 컬럼에 실제 제품 데이터를 입력하려면 어떻게 해야 합니까(이 경우 '오퍼코드'라고 하는 커스텀필드).

필터manage_edit-{post_type}_columns는 실제로 열을 추가하는 데만 사용됩니다.각 게시물(제품)의 열에 표시되는 내용을 제어하려면manage_{post_type}_posts_custom_column액션.이 액션은 각 게시물에 대해 각 커스텀컬럼에 대해 호출되며 다음 두 개의 인수를 전달합니다.$column그리고.$postid.

이 조작은 매우 간단합니다.아래에 커스텀필드의 「offercode」를 표시하는 예를 나타냅니다.

add_action( 'manage_product_posts_custom_column', 'wpso23858236_product_column_offercode', 10, 2 );

function wpso23858236_product_column_offercode( $column, $postid ) {
    if ( $column == 'offercode' ) {
        echo get_post_meta( $postid, 'offercode', true );
    }
}

플러그인을 사용하여 관리 열과 같은 동작을 제어할 수도 있습니다.

이 테이블 보기는 많은 플러그인과 워드프레스 자체에서 사용됩니다.열 이름을 확인해야 합니다.$columns['tags']는 Woocommerce가 아닌 Wordpress Post View의 태그입니다!

다음은 Woocommerce가 사용하는 몇 가지 $column 목록입니다.

$columns['cb']  
$columns['thumb']
$columns['name'] 
$columns['sku'] 
$columns['is_in_stock']
$columns['price']
$columns['product_cat'] 
$columns['product_tag']
$columns['featured']
$columns['product_type']
$columns['date']

이러한 제거를 적용하기 위한 올바른 필터입니다.

add_filter( 'manage_edit-product_columns', 'change_columns_filter',10, 1 );
function change_columns_filter( $columns ) {
unset($columns['product_tag']);
unset($columns['sku']);
unset($columns['featured']);
unset($columns['product_type']);
return $columns;
}

특정 순서로 삽입하려는 경우 바로 뒤에 열을 추가하는 방법은 다음과 같습니다.Price:

add_filter( 'manage_edit-product_columns', 'wootix_show_product_order', 15 ) ;

function wootix_show_product_order( $columns )
{
    //add column
    $arr = array( 'wootix_credit' => __( 'Credits', 'wootix' ) ) ;

    array_splice( $columns, 6, 0, $arr ) ;

    return $columns ;
}

컬럼을 추가로 정렬하고 싶은 경우(상기와 같이 컬럼은 끝에 부가됩니다), "manage_edit-product_columns" 후크에서 이와 같은 작업을 수행할 수 있습니다(예: 구현한 클래스에서 가져온 것입니다).

const BACKEND_PRODUCT_GRID_FIELD_SORTORDER = [
    'cb',
    'thumb',
    'name',
    'pa_size_text',
    'sku',
    'is_in_stock',
    'price',
    'product_cat',
    'product_tag',
    'featured',
    'product_type',
    'date',
    'stats',
    'likes'
];

/**
 * Registers new columns for the backend products grid of Woocommerce.
 * Additionally it sorts the fields after
 * self::BACKEND_PRODUCT_GRID_FIELD_SORTORDER. Fields not included in
 * self::BACKEND_PRODUCT_GRID_FIELD_SORTORDER will be attached to the end of
 * the array.
 *
 * @param array $aColumns - the current Woocommerce backend grid columns
 *
 * @return array - the extended backend grid columns array
 */
public function add_columns_to_product_grid( $aColumns ) {
    $aColumns['pa_size_text'] = __( 'Unit size', 'intolife_misc' );
    #unset($aColumns['thumb']);
    $aReturn = [];
    foreach ( self::BACKEND_PRODUCT_GRID_FIELD_SORTORDER as $sKey ) {
        if ( isset( $aColumns[ $sKey ] ) ) {
            $aReturn[ $sKey ] = $aColumns[ $sKey ];
        }
    }

    /**
     * search additional unknown fields and attache them to the end
     */
    foreach ( $aColumns as $sKey => $sField ) {
        if ( ! isset( $aReturn[ $sKey ] ) ) {
            $aReturn[ $sKey ] = $sField;
        }
    }

    return $aReturn;
}

언급URL : https://stackoverflow.com/questions/23858236/how-to-add-remove-columns-in-woocommerce-admin-product-list

반응형