WooCommerce व्यवस्थापक उत्पाद सूची में कॉलम "is_in_stock" से सामग्री को ओवरराइड करें
मैं 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_stock
जाए यदि उत्पाद टाइप चर के बराबर हो। यदि समान नहीं है WooCommerce से डिफ़ॉल्ट गूंज।
मैं पूरे कॉलम को हटा सकता हूं और अपना कॉलम जोड़ सकता हूं, लेकिन तब मेरे पास कोई डिफ़ॉल्ट सामग्री नहीं है यदि producttype समान नहीं है।
कौन मेरी थोड़ी मदद कर सकता है?
जवाब
डिफ़ॉल्ट कॉलम को हटाने और इसे एक नए के साथ बदलने की आवश्यकता नहीं है, आप केवल उस 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 );