VPS

Tùy biến WooCommerce bằng Claude Code không đụng core

Thanh Nguyễn Đăng 11 phút đọc 3 khối lệnh

Tùy biến WooCommerce bằng Claude Code không đụng core
Mục lục bài viết
  1. Vì sao phải đi bằng hook, nói bằng ngôn ngữ chủ shop
  2. Dựng plugin riêng trong ba phút
  3. Giao việc cho Claude Code sao cho ra code dùng được
  4. Staging là chỗ duy nhất được phép thử
  5. Máy chủ ảnh hưởng thế nào tới việc này
  6. Vì sao phải đi bằng điểm móc, nói bằng ngôn ngữ chủ shop
  7. Giao việc cho trợ lý sao cho ra mã dùng được
  8. Môi trường thử là chỗ duy nhất được phép thử
  9. Máy chủ ảnh hưởng thế nào
  10. Câu hỏi thường gặp
  11. Bài viết liên quan

Trả lời nhanh: Nguyên tắc sống còn khi tùy biến WooCommerce: không sửa file trong plugin gốc và không sửa theme mẹ, vì bản cập nhật kế tiếp sẽ ghi đè hết. Cách đúng là dùng hook (action và filter) đặt trong một plugin nhỏ của riêng bạn. Claude Code làm phần này rất nhanh vì nó tra được tên hook và viết đúng khuôn, nhưng bạn phải cho nó chạy trên bản staging chứ không phải web đang bán hàng.

Chủ shop nào chạy WooCommerce cũng tới lúc cần một thứ mà không plugin nào làm đúng ý: thêm phí theo tỉnh, đổi cách hiển thị giá, gắn nhãn riêng cho đơn sỉ. Thuê ngoài thì lâu và tốn, tự mò thì sợ vỡ web đang bán. Claude Code rút ngắn phần viết code rất nhiều, nhưng chỉ an toàn khi bạn đặt nó vào đúng quy trình. Bài này là quy trình đó, viết cho người biết dùng WordPress ở mức quản trị viên, không cần là lập trình viên chuyên nghiệp.

Vì sao phải đi bằng hook, nói bằng ngôn ngữ chủ shop

WooCommerce và theme của bạn đều được nhà phát triển cập nhật thường xuyên, và mỗi lần cập nhật là toàn bộ file gốc bị thay mới. Sửa thẳng vào đó giống như viết lên tờ giấy sắp bị thay: lần cập nhật kế tiếp, tùy biến của bạn biến mất, thường là biến mất lặng lẽ giữa mùa bán hàng.

Hook là những điểm móc mà WooCommerce chừa sẵn để người ngoài chen code vào mà không đụng vào ruột. Có hai loại: action để chèn thêm việc tại một thời điểm (ví dụ sau khi đơn hàng hoàn tất thì gửi thông báo), và filter để sửa một giá trị trước khi nó được dùng (ví dụ đổi cách hiển thị giá). Code viết theo hook sống sót qua mọi bản cập nhật.

Vậy đặt code hook ở đâu? Đừng đặt trong functions.php của theme, vì đổi theme là mất. Đặt trong một plugin nhỏ do bạn tạo, ví dụ tên là shop-cua-toi. Bật tắt được, gỡ được, chuyển sang máy chủ khác cũng mang theo được.

Dựng plugin riêng trong ba phút

Tạo thư mục wp-content/plugins/shop-cua-toi/ với một file shop-cua-toi.php, nội dung khởi đầu chỉ cần chừng này:

CodeDựng plugin riêng trong ba phútphp
<?php/** * Plugin Name: Tuy bien shop cua toi * Description: Cac tuy bien WooCommerce rieng cua shop, dung hook, khong sua core. * Version: 1.0.0 */if (!defined('ABSPATH')) exit;   // chặn truy cập trực tiếp // Ví dụ: thêm ghi chú dưới nút thêm vào giỏ hàngadd_action('woocommerce_after_add_to_cart_button', function () {    echo '<p class="ghi-chu-shop">Giao trong 24h noi thanh</p>';});

Vào trang Plugins trong bảng quản trị, kích hoạt, xong. Từ giờ mọi tùy biến đều thêm vào file này hoặc các file con trong cùng thư mục. Khi có sự cố, bạn tắt đúng một plugin là web trở lại nguyên trạng, thay vì phải đi tìm xem mình đã sửa những đâu.

Giao việc cho Claude Code sao cho ra code dùng được

Điểm mạnh của agent ở đây là nó thuộc hệ thống hook của WooCommerce và viết đúng khuôn ngay lần đầu. Điểm yếu là nó không biết shop bạn bán gì, khách của bạn hành xử ra sao, và theme bạn dùng đã tùy biến những gì. Cho nên yêu cầu phải kèm ngữ cảnh:

TerminalGiao việc cho Claude Code sao cho ra code dùng đượcbash
Trong plugin wp-content/plugins/shop-cua-toi, thêm tính năng:với đơn hàng có tổng từ 2 triệu trở lên, hiện nhãn "Miễn phí vận chuyển"ở trang sản phẩm và bỏ phí ship ở trang thanh toán.Ràng buộc:- Chỉ dùng hook của WooCommerce, không sửa file ngoài thư mục plugin này- Không tạo bảng mới trong database- Viết ghi chú tiếng Việt cho từng đoạn- Sau khi viết, liệt kê các bước tôi cần bấm để kiểm thử

Ba chi tiết đáng học trong yêu cầu trên: khoanh vùng thư mục được phép sửa, cấm những thứ khó hoàn tác như tạo bảng mới, và bắt agent tự viết kịch bản kiểm thử. Muốn khỏi lặp lại các ràng buộc này mỗi lần, đưa chúng vào file luật theo bài CLAUDE.md.

Một thói quen nữa giúp bạn ngủ ngon: yêu cầu agent giải thích trước khi sửa. Đọc phần giải thích, nếu thấy nó định đụng vào chỗ không nên thì dừng ngay, rẻ hơn nhiều so với việc phát hiện sau khi web đã lỗi.

Staging là chỗ duy nhất được phép thử

Đây là phần nghiêm túc nhất của bài. Web đang bán hàng không phải nơi thử nghiệm, kể cả khi bạn tin vào đoạn code vừa nhận. Một lỗi ở trang thanh toán trong hai tiếng có thể tốn nhiều hơn cả năm tiền máy chủ.

Quy trình an toàn gồm bốn bước. Một, dựng bản sao của web ở một tên miền phụ hoặc một máy chủ riêng, chép cả cơ sở dữ liệu để có dữ liệu thật. Nếu bạn hay sửa code trực tiếp trên máy chủ, cách gọn nhất là dựng luôn máy dev từ xa rồi làm việc trên đó. Hai, chỉ cho Claude Code làm việc trên bản sao đó. Ba, kiểm thử theo đúng danh sách bước mà bạn đã bắt agent viết ra, và luôn có một lần đặt hàng thử từ đầu tới cuối gồm cả thanh toán. Bốn, khi đã chắc, chép riêng thư mục plugin sang web thật rồi kích hoạt, không chép đè cả mã nguồn.

Trước khi đẩy, sao lưu web thật, cả file lẫn cơ sở dữ liệu, theo bài backup VPS. Bản sao lưu chưa từng phục hồi thử thì chưa tính là bảo hiểm.

Máy chủ ảnh hưởng thế nào tới việc này

Hai chỗ liên quan trực tiếp. Thứ nhất là staging: bản sao web cần chỗ chạy, và đặt nó cùng một máy chủ với web thật là cách đơn giản nhất nếu máy còn dư tài nguyên, hoặc tách hẳn máy khác cho an toàn. Đây là lý do nhiều shop chọn gói VPS có dư một chút thay vì gói vừa khít.

Thứ hai là tốc độ khi shop lớn dần. WooCommerce nặng về cơ sở dữ liệu, mỗi lượt xem sản phẩm và mỗi thao tác trong trang quản trị đều là hàng loạt truy vấn nhỏ. Khi đơn hàng tích lũy tới hàng nghìn, đây là chỗ nghẽn trước tiên, và ổ đĩa nhanh tạo khác biệt rõ hơn cả việc tăng CPU. Chẩn đoán chi tiết nằm ở bài WooCommerce chậm khi nhiều đơn, còn cách chọn cấu hình theo lượng khách thì xem bài VPS cho WordPress.

Vì sao phải đi bằng điểm móc, nói bằng ngôn ngữ chủ shop

Cách làmChuyện gì xảy ra khi cập nhậtNên dùng không
Sửa thẳng tệp lõi của WooCommerceMất sạch thay đổi, và có thể vỡ shopKhông, tuyệt đối
Sửa thẳng tệp giao diện mua sẵnMất khi giao diện cập nhậtKhông
Dùng giao diện conGiữ được khi giao diện cha cập nhậtĐược, cho phần hiển thị
Viết plugin riêng dùng điểm mócGiữ nguyên qua mọi lần cập nhậtĐúng nhất, cho phần chức năng

Nói bằng ngôn ngữ chủ shop: sửa thẳng vào lõi giống như xây thêm phòng trên đất thuê. Chủ đất sửa nhà một cái là phần bạn xây mất sạch. Điểm móc là chỗ nhà sản xuất chừa sẵn để bạn gắn thêm mà không đụng vào tường của họ.

Giao việc cho trợ lý sao cho ra mã dùng được

TerminalGiao việc cho trợ lý sao cho ra mã dùng đượcbash
# Ba thu phai noi ro trong yeu cau, neu khong se ra ma khong dung duoc: # 1. Noi ro phai dung hook, khong duoc sua file loi#    "Viet trong plugin rieng, chi dung action va filter cua WooCommerce" # 2. Noi ro phien ban WooCommerce va PHP dang chayphp -vwp plugin get woocommerce --field=version 2>/dev/null # 3. Noi ro moi truong: day la shop dang ban that hay ban thu#    "Code nay se chay tren staging truoc, khong deploy thang" # Sau khi co ma: doc lai truoc khi dua len, chu y ba diem#   - Co ghi truc tiep vao co so du lieu khong#   - Co truy van trong vong lap khong#   - Co kiem du lieu dau vao truoc khi dung khong

Môi trường thử là chỗ duy nhất được phép thử

  • Không bao giờ thử mã mới trên shop đang bán. Một lỗi trong luồng thanh toán là mất đơn và mất khách.
  • Môi trường thử phải có dữ liệu giống thật về cấu trúc, nhưng dùng khóa thanh toán ở chế độ thử.
  • Kiểm trọn luồng sau mỗi thay đổi: xem sản phẩm, thêm giỏ, thanh toán, nhận thư xác nhận, đơn hiện trong trang quản trị.
  • Sao lưu trước khi đưa lên shop thật, và đưa lên vào khung giờ ít đơn nhất.

Máy chủ ảnh hưởng thế nào

Mã tùy biến thường thêm truy vấn vào mỗi lượt xem trang. Với shop ít đơn thì không cảm nhận được; với shop nhiều đơn thì mỗi truy vấn thừa nhân lên rất nhanh. Sau khi thêm tùy biến, đo lại thời gian trang giỏ hàng và trang thanh toán, không chỉ đo trang chủ. Xem bài về WooCommerce chậm khi nhiều đơn.

Câu hỏi thường gặp

Tôi không biết code, có tự làm theo bài này được không?

Được ở mức tùy biến nhỏ nếu bạn biết dùng bảng quản trị WordPress và dám thao tác với file qua trình quản lý file. Điều kiện bắt buộc là làm trên bản staging và có sao lưu. Với tính năng chạm tới thanh toán hoặc tồn kho, nên nhờ người có nghề soát lại trước khi đẩy lên web thật.

Claude Code có tự đẩy code lên web thật không?

Chỉ khi bạn cho phép. Hãy giữ agent trong phạm vi thư mục dự án trên máy staging và không đưa cho nó thông tin đăng nhập máy chủ thật. Việc đẩy lên production nên là thao tác tay của bạn, hoặc đi qua quy trình có bước duyệt.

Tùy biến bằng hook có làm web chậm đi không?

Vài hook nhẹ thì không đáng kể. Chậm thường đến từ code gọi truy vấn nặng trong vòng lặp hoặc gọi dịch vụ bên ngoài ngay trong lúc tải trang. Khi giao việc, yêu cầu agent tránh truy vấn trong vòng lặp và đo lại tốc độ trang sau khi bật tính năng mới.

Nên gộp mọi tùy biến vào một plugin hay tách nhiều plugin?

Với shop nhỏ thì một plugin duy nhất là gọn và dễ quản lý. Tách riêng khi một tính năng đủ lớn hoặc bạn muốn bật tắt độc lập, ví dụ phần tích hợp vận chuyển. Đặt tên file rõ ràng theo chức năng quan trọng hơn số lượng plugin.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.