Переопределить контент из столбца «is_in_stock» в списке продуктов администратора WooCommerce
Я пытаюсь переопределить контент из столбца is_in_stock в списке продуктов администратора WooCommerce.
Для этого я сейчас использую:
<?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.
Я могу удалить весь столбец и добавить свой собственный, но тогда у меня нет содержимого по умолчанию, если тип продукта не равен.
Кто может мне немного помочь?
Ответы
Нет необходимости удалять столбец по умолчанию и заменять его новым, вы можете просто использовать 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 );