Một vài tính năng vui vui có thể có bác cần để quản lý trạng thái kho hàng cho trang quản trị sản phẩm.
Mục địch dùng để hiển thị thêm trạng thái kho hàng mới, hiển thị trạng thái kho hàng mới lên cột “kho” và hiển thị nội dung trạng thái kho hàng ra trang sản phẩm.
Các bác follow theo code sau nhé:
// Thêm trạng thái kho hàng
add_filter( ‘woocommerce_product_stock_status_options’, ‘add_custom_product_stock_status_option’ );
function add_custom_product_stock_status_option( $statuses ){
$statuses[‘discontinued’] = __( ‘Ngừng kinh doanh’, ‘woocommerce’ );
$statuses[‘out-of-stock’] = __( ‘Tạm hết hàng’, ‘woocommerce’ );
$statuses[‘coming-soon’] = __( ‘Hàng sắp về’, ‘woocommerce’ );
$statuses[‘order’] = __( ‘Hàng order’, ‘woocommerce’ );
return $statuses;
}
add_filter( ‘woocommerce_get_availability_text’, ‘custom_get_availability_text’, 10, 2 );
function custom_get_availability_text( $availability, $product ) {
switch ( $product->get_stock_status() ) {
case ‘out-of-stock’:
$availability = __( ‘Tạm hết hàng’, ‘woocommerce’ );
break;
case ‘coming-soon’:
$availability = __( ‘Hàng sắp về’, ‘woocommerce’ );
break;
case ‘order’:
$availability = __( ‘Hàng order, vui lòng liên hệ để đặt hàng’, ‘woocommerce’ );
break;
case ‘discontinued’:
$availability = __( ‘Ngừng kinh doanh’, ‘woocommerce’ );
break;
}
return $availability;
}
// Hàm trả về chuỗi HTML cho các trạng thái kho hàng
function get_custom_stock_status_html( $status ) {
$colors = array(
‘discontinued’ => ‘#ff0000’,
‘out-of-stock’ => ‘#ffa500’,
‘coming-soon’ => ‘#555555’,
‘order’ => ‘#3399ff’,
);
$text = wc_get_product_stock_status_options()[ $status ];
$color = isset( $colors[ $status ] ) ? $colors[ $status ] : ‘#008000’;
return ‘<span style=”color: ‘ . $color . ‘; font-weight: bold;”>’ . $text . ‘</span>’;
}
// Hiển thị trạng thái kho hàng ra cột kho
add_action( ‘manage_product_posts_custom_column’, ‘show_custom_product_stock_status’, 10, 2 );
function show_custom_product_stock_status( $column, $post_id ){
global $product;
if( $column == ‘is_in_stock’ ){
switch( $product->get_stock_status() ){
case ‘discontinued’:
case ‘out-of-stock’:
case ‘coming-soon’:
case ‘order’:
echo get_custom_stock_status_html( $product->get_stock_status() );
break;
default:
echo ‘<span style=”color: #008000; font-weight: bold;”>Còn hàng</span>’;
break;
}
}
}
// Ẩn hiển thị trạng thái mặc định
add_filter(‘woocommerce_admin_stock_html’, ‘__return_false’);
Trang web của mình các bác có thể xem qua một số trạng thái ở trang sản phẩm