Ganti konten dari kolom "is_in_stock" di daftar produk admin WooCommerce

Dec 18 2020

Saya mencoba untuk mengganti konten dari kolom "is_in_stock" di daftar produk admin WooCommerce.

Untuk ini saya saat ini menggunakan:

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

Tetapi ini tidak menimpa konten default tetapi menambahkan teks saya ke ini. Konten default adalah status stok onstock, backorderatau out of stock.

Saya membuat jenis produk khusus dan saya ingin mengganti konten di kolom is_in_stockjika jenis produk sama dengan variabel. Jika tidak sama, gema default dari WooCommerce.

Saya dapat menghapus seluruh kolom dan menambahkan kolom saya sendiri tetapi kemudian saya tidak memiliki konten default jika producttype tidak sama.

Siapa yang bisa sedikit membantu saya?

Jawaban

3 7uc1f3r Dec 18 2020 at 15:19

Tidak perlu menghapus kolom default dan menggantinya dengan yang baru, Anda bisa menggunakan woocommerce_admin_stock_htmlfilter di mana Anda memiliki akses ke $productobjek tersebut.

Dengan begitu Anda dapat menambahkan teks / status Anda sendiri ke kolom yang ada.

Jadi Anda mendapatkan:

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