Ở bài trước ta đã biết để sửa giao diện woo không chỉ sửa mỗi thẻ html class và css, ta còn phải can thiệp tới các hàm và hook. Trong bài này ta cung đi tìm hiểu cơ chế thực thi của action hook qua việc thực hành một hook đơn giản.
để sửa hàm móc với hook ta copy tên hàm phần bôi đen trong ảnh
tìm trong thư mục woocommerce thêm tiền tố function tìm ra hàm thực sự của nó, rồi copy hàm đó dán vào themes/functions.php và viết các action và filter để thực thi hàm đó (tên hàm đã khai báo từ trước, thì ta phải đặt lại tên hàm, sử dụng
remove_action('ten hook','tên hàm',tt ưu tiên);
để loại bỏ hà cũ đi, sau đó
add_action('ten hook','tên hàm mới',tt ưu tiên);
để thay thế. độ ưu tiên số lớn hiển thị sau số nhỏ hiển thị trước.
hook là một hành động , hoặc một xử lý lọc nội dung, tất cả các hook sẽ được định nghĩa trong file
plusgins/woocommerce/includes/wc-template-hooks.php
để xem chi tiết các hook xem tại link
để tra xem tên hook thuộc file nào ta copy tên hook
vào link xem chi tiết các hook ctrl + f pate tên hook vào ô tìm kiếm sẽ tìm ra tên file chứa hook đó
Tại sao lại sử dụng hook?
vì trong cấu trúc của woocommerce không phải muốn sửa là sửa luôn 1 file mà nó phân tách nhỏ ra từng file , gần giống như css giúp tổ chức code đơn giản dễ dàng khi dùng lại.
Khi ta thay đổi template để làm giao diện thì chỉ việc thay đổi hàm chứ không sửa trực tiếp như vậy an toàn hơn.
Tất cả các function nằm ở plusgins/woocommerce/includes/wc-template-function.php (tìm kiếm các function nên tìm kiếm trong đây, vị trí phần khai báo function). và được định nghĩa lại trong file functions.php của theme mới.
hàm wc_get_template_part(A1,A2);
hàm lấy ra file A1-A2.php, như trong ảnh dưới đây là lấy ra file: content-product.php tại vị trí thực thi hàm.
ví dụ sử dụng hook:
Trong file functions.php khai báo hook chayhamcc móc nối với hàm cucai qua câu lệnh add_action.
để sử dụng hàm cucai thì ta thực hiện lệnh do_action với tên hook chayhamccc ở nơi cần thực thi hàm cucai.
kết quả khi thực thi hàm cucai
giờ hãy cùng so sánh cách làm ở trên với cách làm thêm thẻ h2 thông thường
thứ tự ưu tiên
ví dụ có 10 cái hàm cùng chạy một lúc thì cái add_action được ưu tiên thứ 10. Độ ưu tiên số lớn hiển thị sau số nhỏ hiển thị trước.
Nhận xét :
Đăng nhận xét