WooCommerce yönetici ürün listesinde "is_in_stock" sütunundaki içeriği geçersiz kılın

Dec 18 2020

WooCommerce yönetici ürün listesindeki "is_in_stock" sütunundaki içeriği geçersiz kılmaya çalışıyorum.

Bunun için şu anda kullanıyorum:

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

Ancak bu, varsayılan içeriği geçersiz kılmaz, ancak metnimi buna ekler. Varsayılan içerik stok durumudur onstock, backorderya out of stock.

Özel bir ürün türü oluşturdum ve ürün türü is_in_stockdeğişkene eşitse sütundaki içeriği geçersiz kılmak istiyorum . Eşit değilse, WooCommerce'den varsayılanı yankı yapın.

Tüm sütunu kaldırabilir ve kendi sütunumu ekleyebilirim, ancak ürün türü eşit değilse varsayılan içeriğim yok.

Bana kim biraz yardım edebilir?

Yanıtlar

3 7uc1f3r Dec 18 2020 at 15:19

Varsayılan sütunu silmenize ve yenisiyle değiştirmenize gerek yoktur, yalnızca nesneye woocommerce_admin_stock_htmlerişiminiz olan filtreyi kullanabilirsiniz $product.

Bu şekilde kendi metninizi / durumlarınızı mevcut sütuna ekleyebilirsiniz.

Böylece şunları elde edersiniz:

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