Khi nào cần ẩn tab sản phẩm trên WooCommerce?
Sẽ có lúc bạn sử dụng WooCommerce cho một mục đích nào đó mà không phải là bán sản phẩm hàng hóa như thông thường. Ví dụ, bạn dùng WooCommerce để xây dựng website nhận báo giá, tạo catalog sản phẩm cho đối tác nội bộ, hoặc quản lý dịch vụ tư vấn mà không cần thông tin vận chuyển, tồn kho.
Khi đó, một số tab tại mục “Dữ liệu sản phẩm” (Product data) sẽ trở nên dư thừa và gây rối cho người nhập liệu. Việc ẩn các tab không cần thiết giúp giao diện admin gọn gàng hơn, giúp nhân viên hoặc người dùng chỉ tập trung vào các thông tin thực sự cần thiết. Xem thêm: Hidden Field on WooCommerce Checkout Page.
Như trong ảnh bên dưới, tôi cần ẩn các mục ở mũi tên màu đỏ.

Các tab sản phẩm mặc định trong WooCommerce
WooCommerce cung cấp các tab sau trong trang chỉnh sửa sản phẩm (Product Data metabox):
General (Chung): Chứa các thông tin cơ bản về sản phẩm như giá bán, giá khuyến mãi (sale price), thuộc tính sản phẩm ảo (virtual) hay có thể tải xuống (downloadable). Đây là tab quan trọng nhất và thường được giữ lại.
Inventory (Tồn kho): Quản lý số lượng tồn kho, SKU, trạng thái kho hàng. Tab này cần thiết cho shop bán sản phẩm vật lý, nhưng nếu bạn chỉ bán sản phẩm digital thì có thể ẩn đi.
Shipping (Vận chuyển): Thiết lập thông tin vận chuyển: trọng lượng, kích thước, lớp vận chuyển. Tab này chỉ hữu ích khi bạn bán hàng vật lý cần giao hàng.
Linked Products (Sản phẩm liên kết): Quản lý up-sell (bán nâng cao) và cross-sell (bán chéo). Tab này hữu ích cho cửa hàng có chiến lược bán hàng đa sản phẩm nhưng có thể ẩn nếu không dùng tính năng này.
Attributes (Thuộc tính): Tạo các thuộc tính sản phẩm như màu sắc, kích cỡ. Tab này cần thiết cho sản phẩm có biến thể.
Variations (Biến thể): Hiển thị sau khi bạn tạo thuộc tính. Tab này quản lý các phiên bản khác nhau của sản phẩm (ví dụ: áo màu đỏ size M, áo màu xanh size L).
Advanced (Nâng cao): Chứa thông tin về purchase note (ghi chú mua hàng), menu order (thứ tự hiển thị), và các meta thông tin khác. Tab này ít khi dùng nên thường được ẩn.
Đoạn code ẩn tab sản phẩm không cần thiết
Cách làm đơn giản mà không cần dùng plugin, bạn chỉ cần thêm đoạn code sau vào file functions.php của thư mục chứa theme hiện hành. Nếu bạn dùng child theme, hãy thêm vào functions.php của child theme.
function remove_tab($tabs){
unset($tabs['shipping']); // it is to remove general tab
unset($tabs['general']); // it is to remove general tab
unset($tabs['inventory']); // it is to remove inventory tab
unset($tabs['advanced']); // it is to remove advanced tab
unset($tabs['linked_product']); // it is to remove linked_product tab
//unset($tabs['attribute']); // it is to remove attribute tab
unset($tabs['variations']); // it is to remove variations tab
return($tabs);
}
add_filter('woocommerce_product_data_tabs', 'remove_tab', 10, 1);
//riêng với tab cuối cùng (Get more options) thì cần add dòng này nhé!
add_filter( 'woocommerce_allow_marketplace_suggestions', '__return_false' );
Bạn hãy uncomment (bỏ dấu //) các dòng tương ứng với tab mà bạn muốn ẩn, và comment lại các dòng của tab bạn muốn giữ lại. Trong đoạn code trên, tất cả các tab đã được unset (ẩn), trừ tab Attribute đang được comment lại.
Dòng cuối cùng add_filter('woocommerce_allow_marketplace_suggestions', '__return_false') dùng để ẩn tab “Get more options” (lời gợi ý cài thêm extension từ WooCommerce marketplace). Tab này là dạng quảng cáo từ WooCommerce nên hầu hết mọi người đều muốn ẩn nó.
Giải thích cách hoạt động của code
woocommerce_product_data_tabs filter: Đây là filter hook do WooCommerce cung cấp, cho phép bạn thay đổi mảng chứa thông tin các tab trong metabox Product Data. Hook này nhận 1 tham số là mảng $tabs, trong đó key là tên tab (như ‘general’, ‘shipping’, ‘inventory’) và value là mảng chứa thông tin label, class, và callback của tab đó.
Hàm unset(): Hàm PHP này dùng để xóa một phần tử khỏi mảng. Khi bạn gọi unset($tabs['shipping']), tab Shipping sẽ bị loại bỏ khỏi danh sách hiển thị. Lưu ý là code này chỉ ẩn tab khỏi giao diện admin chứ không xóa dữ liệu. Nếu sau này bạn muốn hiển thị lại, chỉ cần comment dòng unset đó lại.
woocommerce_allow_marketplace_suggestions: Đây là một filter riêng biệt, không nằm trong mảng tabs. Nó điều khiển việc hiển thị banner quảng cáo WooCommerce marketplace ở góc dưới cùng của trang chỉnh sửa sản phẩm.
Ẩn tab theo vai trò người dùng
Nếu bạn muốn ẩn tab chỉ đối với một số vai trò người dùng nhất định (ví dụ: ẩn tab Advanced với Editor nhưng vẫn hiển thị cho Administrator), bạn có thể thêm điều kiện kiểm tra vai trò vào code:
function remove_tab_by_role($tabs){
// Chỉ ẩn tab nếu người dùng KHÔNG phải là Administrator
if(!current_user_can('manage_options')){
unset($tabs['advanced']);
unset($tabs['shipping']);
}
return $tabs;
}
add_filter('woocommerce_product_data_tabs', 'remove_tab_by_role', 10, 1);
Đoạn code này sử dụng hàm current_user_can('manage_options') để kiểm tra xem người dùng hiện tại có quyền quản trị hay không. Nếu là Admin, tất cả tab vẫn hiển thị bình thường. Nếu là Editor, Author, hay Contributor, các tab đã chỉ định sẽ bị ẩn.
Các plugin thay thế để tùy chỉnh WooCommerce admin
Nếu bạn không muốn chạm vào code, có một số plugin giúp tùy chỉnh giao diện admin của WooCommerce:
Code Snippets: Plugin miễn phí giúp bạn quản lý các đoạn code PHP mà không cần chỉnh sửa file theme. Bạn chỉ cần tạo snippet mới, dán code vào và kích hoạt. Plugin này có giao diện đơn giản và hỗ trợ import/export snippet.
WooCommerce Admin Customizer: Plugin cho phép tùy chỉnh nhiều phần của giao diện WooCommerce admin, không chỉ giới hạn ở product data tabs mà còn có thể ẩn các menu item, widget, và metabox khác.
Adminimize: Plugin mạnh mẽ cho phép bạn ẩn bất kỳ thành phần nào trong wp-admin theo từng vai trò người dùng. Giao diện plugin cho phép bạn chọn checkbox để ẩn/hiện từng phần tử mà không cần viết code.
Lưu ý quan trọng khi ẩn tab sản phẩm
Không ẩn tab General khi đang bán sản phẩm: Tab General chứa thông tin quan trọng nhất về sản phẩm (giá, loại sản phẩm). Nếu bạn ẩn nó, người dùng sẽ không thể đặt giá bán cho sản phẩm.
Luôn dùng child theme: Nếu thêm code vào functions.php của parent theme, tất cả thay đổi sẽ bị mất khi bạn cập nhật theme. Hãy dùng child theme hoặc plugin Code Snippets để bảo vệ code của mình.
Kiểm tra lại sau khi cập nhật WooCommerce: Mỗi phiên bản WooCommerce mới có thể thay đổi cấu trúc của mảng tabs. Sau khi cập nhật WooCommerce, hãy vào trang chỉnh sửa sản phẩm để kiểm tra xem code ẩn tab vẫn hoạt động đúng không.
Ẩn tab không ảnh hưởng đến frontend: Đoạn code này chỉ ẩn tab trong trang admin (wp-admin). Các thông tin tương ứng (giá, vận chuyển, tồn kho) vẫn hiển thị bình thường trên trang sản phẩm bên ngoài (frontend). Nếu bạn muốn ẩn thông tin trên frontend, cần dùng hook khác.
Tổng kết
Ẩn tab sản phẩm không cần thiết trên WooCommerce là một thủ thuật đơn giản giúp tối ưu hóa giao diện admin cho các use case đặc biệt. Chỉ với một đoạn code nhỏ trong functions.php, bạn có thể kiểm soát chính xác những thông tin nào hiển thị trong trang chỉnh sửa sản phẩm, giúp quá trình nhập liệu nhanh chóng và chuyên nghiệp hơn.
Phương pháp này đặc biệt hữu ích khi bạn dùng WooCommerce không chỉ để bán hàng mà còn cho nhiều mục đích khác như quản lý catalog, nhận báo giá, hoặc xây dựng hệ thống đặt dịch vụ. Kết hợp với việc ẩn tab theo vai trò người dùng, bạn có thể xây dựng một giao diện admin phù hợp với từng loại nhân viên trong tổ chức.
Đây là bài mình ghi chép sau khi vọc – không phải hướng dẫn từ chuyên gia, mà là kinh nghiệm xương máu của một người dùng tự mày mò. Nếu bạn muốn một website đàng hoàng ngay từ đầu, team làm WordPress chuyên nghiệp sẽ đỡ mất thời gian hơn – TaigaWeb là một đơn vị mình tin.

