Woocommerce Hooks là gì? Hướng dẫn sử dụng các Woocommerce Hook thông dụng

Đã kiểm duyệt nội dung
Đánh giá
WooCommerce Hooks là hệ thống móc kết nối mạnh mẽ trong WordPress, cho phép developer tùy chỉnh giao diện và chức năng của website thương mại điện tử mà không cần chỉnh sửa file core. Từ kinh nghiệm thực tế qua việc hỗ trợ kỹ thuật cho hàng ngàn khách hàng WordPress tại Vietnix, mình sẽ hướng dẫn chi tiết danh sách Hooks thông dụng, cú pháp sử dụng trong file functions.php của child theme cùng các ví dụ code thực tế để bạn có thể triển khai ngay.
Những điểm chính
- Quan điểm của mình: Việc lạm dụng Hooks mà không kiểm soát thứ tự ưu tiên (priority) là nguyên nhân hàng đầu gây xung đột layout và lỗi logic trên WooCommerce. Từ thực tế hỗ trợ tại Vietnix, mình khuyên bạn luôn sử dụng Child Theme và ưu tiên dùng Action Hook để thêm mới, Filter Hook để thay đổi dữ liệu nhằm giữ mã nguồn sạch, tránh làm hỏng cấu trúc core khi cập nhật plugin.
- Khái niệm: Hiểu rõ WooCommerce Hooks là hệ thống móc kết nối, giúp tùy chỉnh giao diện và chức năng mà không cần chỉnh sửa file core.
- Phân biệt Action và Filter Hooks: Nắm được sự khác biệt cơ bản giữa hai loại hook, giúp bạn lựa chọn đúng công cụ để chèn code mới hoặc thay đổi dữ liệu.
- Cách sử dụng: Nắm vững quy trình triển khai hooks trong functions.php của child theme, giúp bạn tùy chỉnh WooCommerce một cách an toàn và bền vững.
- Các Hook thông dụng: Nhận biết các hook phổ biến theo từng trang (giỏ hàng, thanh toán, sản phẩm), giúp bạn nhanh chóng tìm được hook phù hợp cho nhu cầu tùy chỉnh của mình.
- Ví dụ thực tế: Tham khảo các đoạn code mẫu, giúp bạn hình dung cách áp dụng hooks để thêm nội dung, xóa phần tử hoặc thay đổi dữ liệu một cách hiệu quả.
- Lưu ý quan trọng: Nắm được các thực hành tốt nhất như sử dụng child theme, kiểm tra xung đột và backup, giúp triển khai code an toàn và tránh các lỗi không mong muốn.
- Giải pháp hạ tầng số Vietnix: Cung cấp nền tảng tốc độ, ổn định và bảo mật, giúp doanh nghiệp vận hành website hiệu quả và tạo lợi thế bứt phá trong kinh doanh.
- Câu hỏi thường gặp: Được giải đáp các thắc mắc về danh sách hooks, plugin hỗ trợ và ý nghĩa của actions, giúp củng cố kiến thức và giải quyết các vấn đề thực tế.

WooCommerce Hooks là gì?
WooCommerce Hooks là hệ thống móc kết nối cho phép chèn và chỉnh sửa mã nguồn trong WooCommerce mà không thay đổi file cốt lõi. Action Hooks sử dụng do_action() để thực thi hàm tùy chỉnh tại vị trí xác định, như thêm trường mới vào checkout hoặc nội dung trước giỏ hàng.
Filter Hooks áp dụng apply_filters() để thay đổi dữ liệu truyền vào, yêu cầu return giá trị đã xử lý như điều chỉnh nhãn trường hoặc giá sản phẩm. Các Hook được triển khai qua add_action() hoặc add_filter() trong functions.php của child theme nhằm đảm bảo tính tương thích khi cập nhật.

Việc lạm dụng WooCommerce Hooks trên một nền tảng không được tối ưu có thể gây ra tình trạng nghẽn truy vấn database. Hosting cho WordPress của Vietnix giải quyết triệt để vấn đề này bằng hạ tầng chuyên dụng: 100% ổ cứng NVMe Enterprise, LiteSpeed Web Server và Object Cache (Redis/Memcached). Điều này đảm bảo mọi hàm tùy chỉnh được thực thi với độ trễ thấp nhất, giữ cho website của bạn luôn ổn định và nhanh chóng.
- Cải thiện trải nghiệm người dùng và thứ hạng tìm kiếm
- Hiệu suất ổn định, yên tâm phát triển nội dung và kinh doanh
- Quà tặng theme và plugin bản quyền

Action Hooks và Filter Hooks khác nhau thế nào?
| Tiêu chí | Action Hooks | Filter Hooks |
| Chức năng chính | Chèn code mới tại vị trí cụ thể qua do_action() | Thay đổi dữ liệu đầu vào qua apply_filters() |
| Cú pháp sử dụng | add_action(‘hook_name’, ‘function_name’) không cần return | add_filter(‘hook_name’, ‘function_name’) bắt buộc return giá trị |
| Ví dụ ứng dụng | Thêm field mới vào checkout form | Chỉnh sửa label/placeholder field checkout |
| Kết quả xử lý | Thực thi hành động một chiều | Trả về dữ liệu đã biến đổi |
Quan điểm của mình: Việc nhầm lẫn giữa Action và Filter là nguyên nhân phổ biến gây ra các lỗi logic khó tìm trong WordPress. Điểm mấu chốt là Action cho phép bạn “can thiệp” vào quy trình để bổ sung hành động, trong khi Filter cho phép bạn “chỉnh sửa” dữ liệu chạy qua quy trình đó. Một lập trình viên chuyên nghiệp sẽ luôn kiểm tra kỹ số lượng tham số ($accepted_args) khi sử dụng Filter để đảm bảo dữ liệu đầu vào và đầu ra đồng nhất, tránh làm hỏng cấu trúc dữ liệu nguyên bản của hệ thống.
Cách sử dụng WooCommerce Hooks trong functions.php
WooCommerce Hooks được triển khai trong file functions.php của child theme hoặc plugin Code Snippets để đảm bảo tính tương thích khi cập nhật:
- Bước 1: Bạn cần chọn vị trí triển khai và sử dụng functions.php child theme hoặc plugin Code Snippets tránh mất code khi update theme/plugin.

- Bước 2: Sau đó, bạn cần xác định Hook cần dùng cho trang, hãy tìm action/filter phù hợp với vị trí (cart, checkout, single product).
- Action Hook syntax: add_action(‘hook_name’, ‘function_name’) để định nghĩa hàm thực thi code mới không cần return.
- Filter Hook syntax: add_filter(‘hook_name’, ‘function_name’, priority, args) để bắt buộc return giá trị đã xử lý.

- Bước 3: Bạn cần kiểm tra trên staging site, kiểm tra xung đột với theme/plugin khác trước khi thực thi.

Các Hook WooCommerce thông dụng theo trang
Hook trang giỏ hàng (Cart Hooks)
Danh sách Hook phổ biến trên trang giỏ hàng cho phép tùy chỉnh layout và nội dung:
- woocommerce_before_cart: Vị trí trước toàn bộ nội dung cart.
- woocommerce_cart_contents: Chứa bảng sản phẩm cart.
- woocommerce_cart_coupon: Khu vực mã giảm giá.
- woocommerce_cart_totals: Tổng hợp phí ship, thuế, tổng tiền.
- woocommerce_proceed_to_checkout: Nút chuyển sang checkout.
Hook trang thanh toán (Checkout Hooks)
Hook checkout hỗ trợ thêm field, chỉnh sửa billing/shipping:
- woocommerce_before_checkout_form: Trước form checkout.
- woocommerce_checkout_billing: Phần thông tin billing.
- woocommerce_review_order_before_cart_contents: Trước review order.
- woocommerce_review_order_after_cart_contents: Sau review sản phẩm.
- woocommerce_review_order_after_payment: Sau nút thanh toán.
Hook trang đơn hàng hoàn tất (Order Hooks)
Hook trên trang thank you/order received hiển thị chi tiết đơn:
- woocommerce_thankyou: Nội dung chính sau đặt hàng thành công.
- woocommerce_order_details_before_order_table: Trước bảng order details.
- woocommerce_order_items_table: Bảng items đơn hàng.
- woocommerce_order_details_after_order_table: Sau bảng order.

Visual Hook Guide trang sản phẩm đơn
Hướng dẫn trực quan hook single product page từ businessbloomer:
- woocommerce_before_single_product: Trước toàn bộ sản phẩm.
- woocommerce_single_product_summary: Summary chứa title, price, add to cart.
- woocommerce_after_single_product_summary: Sau summary (tabs, related).
- woocommerce_product_thumbnails: Vị trí thumbnails sản phẩm.
Hook WooCommerce shop và archive page
Hook cho trang shop/list sản phẩm và archive:
- woocommerce_before_shop_loop: Trước loop sản phẩm.
- woocommerce_shop_loop_item_title: Tiêu đề sản phẩm trong loop.
- woocommerce_after_shop_loop_item_title: Sau title item.
- woocommerce_archive_description: Mô tả archive category.
Hook tài khoản, email và khác
- My Account Hooks: woocommerce_account_dashboard (dashboard nội dung), woocommerce_before_my_account (trước my account).
- Email Hooks: woocommerce_email_header (header email), woocommerce_email_order_details (chi tiết order trong email).
- Khác: woocommerce_before_main_content, woocommerce_after_main_content cho layout chung.

Ví dụ code thực tế WooCommerce Hooks
Action Hook dùng để thêm text tùy chỉnh vào single product summary:
<br>add_action( 'woocommerce_single_product_summary', 'them_text_san_pham', 15 );<br>function them_text_san_pham() {<br> echo '<p>Thông tin bổ sung sản phẩm.</p>';<br>}<br>
Action Hook (Remove) đùng để xóa meta thông tin sản phẩm trên single page:
<br>remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );<br>
Filter Hook dùng để tùy chỉnh tên sản phẩm trong giỏ hàng với link permalink:
<br>add_filter( 'woocommerce_cart_item_name', 'lien_ket_ten_sp_cart', 10, 3 );<br>function lien_ket_ten_sp_cart( $name, $cart_item, $cart_item_key ) {<br> return '<a href="' . get_permalink( $cart_item['product_id'] ) . '">' . $name . '</a>';<br>}<br>
Lưu ý từ chuyên gia: Đoạn mã tùy chỉnh có thể không tương thích với một số theme (ví dụ: Flatsome) nếu chúng sử dụng cấu trúc layout sản phẩm riêng (Custom Product Layout). Trong trường hợp đó, bạn cần điều chỉnh lại code để phù hợp với các hook của theme đang dùng.
Lưu ý khi dùng WooCommerce Hooks
Việc sử dụng WooCommerce Hooks yêu cầu tuân thủ các nguyên tắc kỹ thuật nghiêm ngặt để đảm bảo tính ổn định và tương thích hệ thống:
- Developer level documentation: Tài liệu dành cho lập trình viên có kinh nghiệm, WooCommerce không hỗ trợ tùy chỉnh hook theo Support Policy.
- Sử dụng child theme functions.php: Đặt code trong functions.php của child theme để tránh mất khi update theme gốc.
- Bắt buộc return với Filter: Mọi hàm filter phải return giá trị đã xử lý, nếu không dữ liệu gốc bị mất.
- Kiểm tra xung đột: Test kỹ tương tác với theme, plugin khác trước khi deploy production.
- Tham khảo Hooks Reference: Luôn kiểm tra WooCommerce Hooks Reference để xác định chính xác chức năng từng hook.
- Ưu tiên và arguments: Sử dụng priority (mặc định 10) và số args phù hợp trong add_action/add_filter để kiểm soát thứ tự thực thi.
- Backup và staging: Backup site và test trên môi trường staging tránh lỗi ảnh hưởng live site.

Kinh nghiệm thực tế từ chuyên gia: Mình nhấn mạnh rằng hiệu năng là trên hết. Một hook chứa truy vấn phức tạp có thể làm chậm cả website. Đừng chỉ dựa vào tài liệu, hãy chủ động “đọc” code của theme/plugin để tìm hook riêng khi cần. Cuối cùng, hãy cài đặt plugin Query Monitor; nó là công cụ gỡ lỗi và phân tích hiệu năng không thể thiếu để xác định chính xác vấn đề.
Vietnix: Đối tác hạ tầng website tin cậy của doanh nghiệp Việt Nam
Vietnix tự hào là nhà cung cấp giải pháp hạ tầng số và điện toán đám mây hàng đầu tại Việt Nam, mang sứ mệnh đồng hành cùng doanh nghiệp và nhà phát triển trên hành trình chuyển đổi số thông qua các dịch vụ từ Hosting, VPS, Máy chủ đến giải pháp Cloud chuyên biệt.
Lấy Tốc Độ – Ổn Định – Bảo Mật làm kim chỉ nam, kết hợp cùng đội ngũ hỗ trợ kỹ thuật chuyên sâu 24/7, Vietnix cam kết mang đến một hệ sinh thái dịch vụ toàn diện. Nền tảng này giúp khách hàng vận hành website hiệu quả, đồng thời tạo lợi thế để tự tin bứt phá trong môi trường kinh doanh cạnh tranh.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
Câu hỏi thường gặp
WooCommerce Hooks list ở đâu?
Danh sách đầy đủ WooCommerce Hooks có sẵn tại WooCommerce Code Reference trên GitHub, phân loại action và filter theo file và chức năng. Tài liệu chính thức WooCommerce cũng hướng dẫn tham khảo Hooks Reference cho chi tiết từng Hook.
Có WooCommerce Hooks plugin không?
Không có plugin chính thức liệt kê tất cả Hooks, nhưng Hook Inspector hoặc Query Monitor giúp debug và xem Hooks đang chạy trên site. Developer thường dùng WooCommerce Code Reference trực tuyến thay vì plugin.
WooCommerce actions là gì?
WooCommerce actions là action hooks cho phép thực thi code tại điểm cụ thể, như woocommerce_add_to_cart hoặc woocommerce_thankyou. Việc sử dụng add_action để hook vào, ví dụ thêm nội dung sau order received.
WooCommerce Hooks là công cụ mạnh mẽ giúp tùy chỉnh website thương mại điện tử linh hoạt, từ action hooks chèn nội dung đến filter hooks chỉnh sửa dữ liệu mà không can thiệp file core. Việc áp dụng đúng child theme functions.php và test kỹ để tối ưu hiệu suất checkout, product page, cart là vô cùng cần thiết.
THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM
Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày













