Substituir o conteúdo da coluna “is_in_stock” na lista de produtos de administração do WooCommerce

Dec 18 2020

Tento substituir o conteúdo da coluna "is_in_stock" na lista de produtos de administração do WooCommerce.

Para isso eu uso atualmente:

<?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';
        }
    }
}
?>

Mas isso não substitui o conteúdo padrão, mas adiciona meu texto a ele. O conteúdo padrão é o status de estoque onstock, backorderou out of stock.

Eu criei um tipo de produto personalizado e desejo substituir o conteúdo na coluna is_in_stockse o producttype for igual a variável. Se não for igual, echo o padrão de WooCommerce.

Posso remover a coluna inteira e adicionar minha própria coluna, mas não tenho conteúdo padrão se o producttype não for igual.

Quem pode me ajudar um pouco?

Respostas

3 7uc1f3r Dec 18 2020 at 15:19

Não há necessidade de excluir a coluna padrão e substituí-la por uma nova, você pode apenas usar o woocommerce_admin_stock_htmlfiltro onde você tem acesso ao $productobjeto.

Dessa forma, você pode adicionar seu próprio texto / status à coluna existente.

Então você obtém:

// 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 );