WooCommerce 관리 제품 목록에있는 "is_in_stock"열의 콘텐츠 무시

Dec 18 2020

WooCommerce 관리 제품 목록에서 "is_in_stock"열의 내용을 재정의하려고합니다.

이를 위해 현재 다음을 사용합니다.

<?php
add_action('manage_product_posts_custom_column', 'stock_override' );
 
function stock_override($column_name){ global $post;
    $product = wc_get_product($post->ID);
    if( $product->is_type('variable')){ if ($column_name == 'is_in_stock') {
            echo 'own text';
        }
    }
}
?>

그러나 이것은 기본 콘텐츠를 재정의하지 않고 여기에 내 텍스트를 추가합니다. 기본 내용은 재고 상태이다 onstock, backorder또는 out of stock.

사용자 지정 제품 유형을 만들었고 is_in_stockproducttype이 변수와 같으면 열의 내용을 재정의하고 싶습니다 . 같지 않으면 WooCommerce의 기본값을 에코합니다.

전체 열을 제거하고 내 열을 추가 할 수 있지만 제품 유형이 같지 않으면 기본 콘텐츠가 없습니다.

누가 나를 조금 도울 수 있습니까?

답변

3 7uc1f3r Dec 18 2020 at 15:19

기본 열을 삭제하고 새 열로 바꿀 필요가 없습니다 . 개체에 woocommerce_admin_stock_html액세스 할 수있는 필터를 사용하면 $product됩니다.

이렇게하면 기존 열에 자신의 텍스트 / 상태를 추가 할 수 있습니다.

따라서 다음을 얻을 수 있습니다.

// Admin product list: is_in_stock
function filter_woocommerce_admin_stock_html( $stock_html, $product ) { // Condition if ( $product->is_type('variable') ) {
        $stock_html = '<mark class="someclass" style="background:transparent none; color:#33ccff; font-weight:700; line-height:1;">' . __( 'My text', 'woocommerce' ) . '</mark>'; } return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );