Bối cảnh và vấn đề nghiên cứu

Thương mại điện tử tại Việt Nam chứng kiến sự tăng trưởng nhanh chóng cùng với sự phổ biến của Internet và công nghệ thông tin. Theo số liệu thống kê được nhóm tác giả trích dẫn trong báo cáo, Việt Nam có khoảng 41 triệu người dùng Internet (chiếm hơn 45% dân số cả nước), trong đó hơn 1/3 dân số sử dụng mạng Internet để tra cứu thông tin dịch vụ và mua sắm trực tuyến, đặc biệt tập trung ở nhóm người tiêu dùng trẻ. Trong bối cảnh đó, việc sở hữu một website bán hàng trực tuyến trở thành yêu cầu thiết yếu đối với các doanh nghiệp và cá nhân kinh doanh nhằm mở rộng kênh tiếp cận khách hàng, quảng bá sản phẩm và duy trì năng lực cạnh tranh trên môi trường số.

Ngành hàng mỹ phẩm và chăm sóc sắc đẹp là một thị trường có nhu cầu tiêu dùng lớn và tỷ suất lợi nhuận cao. Tuy nhiên, đặc thù của thị trường này là sự phong phú về chủng loại, thương hiệu, công dụng cũng như sự xuất hiện của nhiều mặt hàng không rõ nguồn gốc xuất xứ. Khách hàng trực tuyến ngày càng khắt khe hơn về nguồn gốc sản phẩm và tính minh bạch của đơn vị phân phối. Việc xây dựng một website thương mại điện tử chuyên biệt không chỉ giúp phân loại sản phẩm khoa học theo tính năng, công dụng, thương hiệu để tối ưu hóa trải nghiệm tìm kiếm của người dùng, mà còn đóng vai trò tạo dựng uy tín thương hiệu và gia tăng tỷ lệ chuyển đổi đơn hàng.

Xuất phát từ thực tiễn trên, Nhóm 5 sinh viên Khoa Công nghệ thông tin kinh doanh – Trường Đại học Kinh tế TP. Hồ Chí Minh (UEH) đã thực hiện báo cáo cuối kỳ môn Công nghệ Thương mại điện tử với đề tài: "Thiết Kế Website Thương Mại Điện Tử: Hướng Dẫn Chi Tiết", tập trung vào việc triển khai thực tế website bán mỹ phẩm "VieBeauty".

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Xây dựng và xuất bản một hệ thống website thương mại điện tử hoàn chỉnh trên nền tảng WordPress và WooCommerce, cấu hình tên miền và máy chủ lưu trữ (hosting).
  2. Thiết kế giao diện người dùng (UI/UX) cho các trang thành phần cốt lõi: Trang chủ (Home), Trang chi tiết sản phẩm (Single Product), Trang giỏ hàng (Cart), Trang thanh toán (Checkout) và Trang cảm ơn/tiếp nhận đơn hàng (Thank You/Order Received).
  3. Nghiên cứu cơ chế vận hành của hệ thống Hook (Action Hooks và Filter Hooks) trong WooCommerce để can thiệp mã nguồn PHP, tùy biến 22 tính năng chuyên sâu nhằm nâng cao tính năng quản trị và trải nghiệm mua sắm mà không phụ thuộc hoàn toàn vào các plugin bên thứ ba.
  4. Thiết lập các quy tắc xử lý dữ liệu biểu mẫu, kiểm tra tính hợp lệ của số điện thoại Việt Nam và kiểm soát spam bình luận/đánh giá trên hệ thống.

Phạm vi nghiên cứu và triển khai:

  • Đối tượng nghiên cứu: Quy trình thiết kế website thương mại điện tử ngành mỹ phẩm, cấu trúc module của WooCommerce, kỹ thuật can thiệp Hook trong WordPress/WooCommerce.
  • Không gian và môi trường triển khai: Tên miền thử nghiệm https://group5.fun/ triển khai trên nền tảng hosting hỗ trợ PHP/MySQL.
  • Thời gian thực hiện: Tháng 10 năm 2023 (thời điểm hoàn thành và xuất bản hệ thống).
STT Họ tên sinh viên Mã số sinh viên (MSSV)
1 Huỳnh Ngọc Khánh Vy 88214020004
2 Phan Thiện Quốc 87221020149
3 Phạm Đan Quyên 87221020150
4 Đỗ Thị Hồng Cẩm 35221025653
5 Nguyễn Thị Minh Trâm 35221025686

Giảng viên hướng dẫn: ThS. Trần Lê Phúc Thịnh.


Cơ sở lý thuyết và phương pháp thực hiện

Cơ sở lý thuyết và công nghệ

Báo cáo dựa trên nền tảng kiến trúc mã nguồn mở của hệ quản trị nội dung (CMS) WordPress kết hợp với giải pháp thương mại điện tử WooCommerce. Các khái niệm và công nghệ cốt lõi được áp dụng gồm:

  • Cơ chế Hook trong WordPress/WooCommerce: Gồm Actions (cho phép chèn thêm code xử lý hoặc giao diện tại các vị trí định sẵn trong vòng đời thực thi trang) và Filters (cho phép can thiệp, thay đổi hoặc định dạng lại dữ liệu trước khi xuất ra trình duyệt hoặc lưu vào cơ sở dữ liệu).
  • Output Buffering trong PHP: Sử dụng các hàm ob_start() và ob_get_clean() để lưu trữ tạm thời nội dung đầu ra của biểu mẫu vào bộ đệm trước khi trả về qua cơ chế Shortcode.
  • AJAX và REST Endpoints trong WordPress: Cơ chế xử lý bất đồng bộ thông qua admin-ajax.php, kết hợp các hàm xác thực an toàn wp_nonce_field và check_ajax_referer để ghi nhận phản hồi khảo sát của khách hàng vào ghi chú đơn hàng (add_order_note).
  • Regular Expressions (Regex): Sử dụng hàm preg_match trong PHP để kiểm tra và ngăn chặn chuỗi chứa liên kết độc hại (http://, https://) trong nội dung bình luận.

Phương pháp nghiên cứu và triển khai

Đề tài sử dụng phương pháp thiết kế và triển khai thực nghiệm hệ thống phần mềm (System Implementation & Empirical Testing), kết hợp:

  • Phương pháp phân tích yêu cầu: Khảo sát các chức năng cần thiết của một website kinh doanh mỹ phẩm (hiển thị tồn kho, gợi ý freeship, tính ngày giao hàng, đánh giá sản phẩm).
  • Phương pháp lập trình tùy biến (Custom Scripting): Viết mã nguồn PHP thuần bổ sung vào tệp functions/snippets thay vì lạm dụng plugin đóng gói sẵn, giúp tối ưu hiệu năng và quyền kiểm soát mã nguồn.
  • Phương pháp kiểm thử chức năng (Functional Testing): Thử nghiệm từng kịch bản nghiệp vụ (đơn hàng dưới/trên ngưỡng freeship, số điện thoại đúng/sai định dạng, bình luận ngắn/dài/chứa liên kết).

Thiết kế và triển khai hệ thống

Kiến trúc triển khai và môi trường vận hành

Hệ thống được cấu hình và xuất bản thông qua các bước kỹ thuật:

  1. Quản lý mã nguồn và cơ sở dữ liệu: Nén và tải toàn bộ mã nguồn WordPress lên máy chủ lưu trữ (web hosting), nhập cơ sở dữ liệu MySQL và cập nhật thông số kết nối (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST) trong tệp cấu hình wp-config.php.
  2. Cấu hình giao diện và Module xây dựng trang: Sử dụng trình dựng trang Elementor để phân chia bố cục giao diện Trang chủ, tích hợp các khối hiển thị danh mục, Media Carousel cho các chương trình khuyến mãi, chèn video giới thiệu và bản đồ định vị cửa hàng.
+-------------------------------------------------------------------------+
|                            NGƯỜI DÙNG / TRÌNH DUYỆT                     |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                       GIAO DIỆN & HOOKS WOOCOMMERCE                     |
|  - Custom Header (wp_head, wp_body_open)                                |
|  - Custom Form Lien He (Shortcode, Output Buffering)                   |
|  - Single / Archive Products (Media Carousel, Shortcodes, Badges)       |
|  - Cart & Checkout (Freeship bar, Delivery date estimate, Phone regex)  |
|  - Order Received / Thank You (Custom texts, AJAX awareness survey)     |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                           XỬ LÝ DỮ LIỆU & BẢO MẬT                       |
|  - Validate Phone (Devvn / woocommerce_checkout_process)                |
|  - Filter Comments (preprocess_comment, pre_comment_content)            |
|  - Nonce Verification (check_ajax_referer)                              |
|  - wp_mail & wp_insert_comment                                          |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                     MÁY CHỦ HOSTING & CƠ SỞ DỮ LIỆU                     |
|  - Tên miền: https://group5.fun/ | wp-config.php | MySQL Database       |
+-------------------------------------------------------------------------+

Nội dung chính theo từng chương

Báo cáo được chia thành 2 phần nội dung kỹ thuật chính theo cấu trúc tài liệu:

Phần 1: Giới thiệu về website

Phần này trình bày tổng quan cấu trúc giao diện, cách thức bố trí các trang chức năng và quy trình triển khai website https://group5.fun/:

  • 1.1 Publish website: Trình bày các bước đưa website vào hoạt động thực tế, bao gồm tải mã nguồn lên hosting, nhập cơ sở dữ liệu và cấu hình lại tệp config.php.
  • 1.2 Giới thiệu header và hình ảnh header của website:
    • Nhóm tự thiết kế logo và ảnh nền đầu trang.
    • Xây dựng hai hệ thống menu: Menu chính (danh mục sản phẩm, giỏ hàng, thanh toán, form liên hệ, bản đồ, đăng nhập) và Menu phụ (gắn URL các sản phẩm tiêu biểu nhằm mục đích up-sell).
    • Can thiệp mã nguồn PHP vào hook wp_head và wp_body_open để hiển thị thông tin thời gian mở cửa (9:00AM - 8:00PM, Email: group5@gmail.com) và banner dịch vụ.
    • Xây dựng form liên hệ tự viết bằng mã nguồn PHP qua shortcode [Form_Lien_He], sử dụng ob_start(), kiểm tra dữ liệu đầu vào bằng lệnh if, gửi thư thông báo tới quản trị viên qua wp_mail() và lưu trữ thông tin bằng wp_insert_comment().
    • Tích hợp bản đồ vị trí cửa hàng bằng tiện ích của Elementor.
  • 1.3 Trang chủ:
    • Sử dụng các hộp hình ảnh (Image Boxes) và Media Carousel trong Elementor để hiển thị các chương trình khuyến mãi tự động trượt, banner phân loại thương hiệu và video giới thiệu sản phẩm.
    • Sử dụng shortcode hiển thị danh sách sản phẩm nổi bật và sản phẩm đang giảm giá với giới hạn tối đa 2 sản phẩm.
    • Thiết lập khối hiển thị các bài viết (post) để tăng cường nội dung và hỗ trợ tiếp cận khách hàng.
  • 1.4 Footer website: Thể hiện đầy đủ thông tin liên hệ và chính sách của cửa hàng.
  • 1.5 Trang sản phẩm: Bố cục hình ảnh chi tiết, mô tả sản phẩm, danh mục sản phẩm tương tự và danh mục các sản phẩm người dùng vừa xem.
  • 1.6 Trang giỏ hàng: Hiển thị danh sách sản phẩm đã chọn, số lượng, tạm tính và khu vực nhập mã giảm giá.
  • 1.7 Trang thanh toán – Check out: Giao diện điền thông tin giao hàng, chọn phương thức vận chuyển và xác nhận đặt hàng.
  • 1.8 Trang Thank You sau khi đặt hàng: Hiển thị chi tiết đơn hàng, tích hợp tính năng gợi ý sản phẩm bán thêm (up-sells) và biểu mẫu thu thập khảo sát khách hàng.

Phần 2: Can thiệp bằng code vào các Hook của WooCommerce

Phần này là trọng tâm kỹ thuật của đồ án, trình bày chi tiết mã nguồn PHP, logic xử lý và vị trí hook để tùy biến 22 tính năng trên hệ thống thương mại điện tử:

                                    CÁC HOOK WOOCOMMERCE ĐƯỢC CAN THIỆP
 [Trang Sản Phẩm & Danh Mục]               [Trang Giỏ Hàng & Thanh Toán]               [Trang Cảm Ơn & Tiện Ích Khác]
 • woocommerce_product_single_add_to_cart   • woocommerce_before_cart                   • woocommerce_endpoint_order-received_title
 • woocommerce_product_add_to_cart_text     • woocommerce_after_cart_totals             • woocommerce_thankyou_order_received_text
 • woocommerce_sale_flash                   • woocommerce_shipping_instance_form_fields • woocommerce_thankyou
 • woocommerce_dropdown_variation_attribute • woocommerce_shipping_method_add_rate_args• preprocess_comment
 • woocommerce_after_shop_loop_item         • woocommerce_package_rates                 • pre_comment_content
                                            • woocommerce_checkout_process              • wp_head / wp_footer / Shortcodes

Bảng tổng hợp 22 kỹ thuật can thiệp Hook và mã nguồn

STT Tên chức năng tùy biến Hook / Hàm WordPress & WooCommerce sử dụng Cơ chế và logic xử lý kỹ thuật
2.1 Đổi nút "Add To Cart" woocommerce_product_single_add_to_cart_text, woocommerce_product_add_to_cart_text Thay đổi văn bản mặc định thành Buy Now ♥ trên cả trang chi tiết sản phẩm và trang danh mục (archive).
2.2 Tự động áp dụng Coupon woocommerce_before_cart, WC()->cart->get_subtotal() Lấy giá trị tổng đơn hàng trong giỏ; nếu đạt từ 500.000 VNĐ trở lên thì tự động gọi apply_coupon('COUPON') giảm 50%, nếu chưa đạt thì gọi remove_coupon và in thông báo yêu cầu mua thêm.
2.3 Thêm biểu tượng bảo mật giỏ hàng woocommerce_after_cart_totals, wp_head Thêm thẻ HTML chứa icon ổ khóa Secure Checkout dưới nút tiến hành thanh toán, đồng thời chèn CSS màu xanh lá cây vào header.
2.4 Thay đổi tiêu đề tiếp nhận đơn woocommerce_endpoint_order-received_title Thay đổi chuỗi tiêu đề mặc định thành thông điệp cảm ơn mang thương hiệu VieBeauty.
2.5 Cá nhân hóa nội dung tiếp nhận đơn woocommerce_thankyou_order_received_text, $order->get_billing_last_name() Lấy họ tên người thanh toán từ đối tượng đơn hàng để hiển thị lời chào cá nhân hóa trên trang cảm ơn.
2.6 Ước tính ngày giao hàng init, woocommerce_shipping_instance_form_fields_$id, woocommerce_shipping_method_add_rate_args, woocommerce_after_shipping_rate Tạo trường cấu hình số ngày giao hàng trong cài đặt phương thức vận chuyển, lưu dưới dạng metadata và tự động cộng dồn số ngày vào ngày hiện tại để in ngày giao dự kiến.
2.7 Thông báo thanh tiến độ Freeship woocommerce_package_rates, woocommerce_cart_totals_before_shipping, woocommerce_checkout_before_order_review Thiết lập ngưỡng miễn phí vận chuyển 400.000 VNĐ. Nếu tổng giỏ hàng nhỏ hơn 400.000 VNĐ, hệ thống hiển thị thanh <progress> và số tiền còn thiếu; khi đạt đủ điều kiện sẽ hiển thị thông báo chúc mừng.
2.8 Thay đổi huy hiệu "SALE" woocommerce_sale_flash Đổi nhãn giảm giá mặc định thành khối HTML nền xanh lá chữ trắng: 🌟 Hot Deals! 🌟.
2.9 Đổi văn bản chọn biến thể woocommerce_dropdown_variation_attribute_options_args Gán giá trị tham số show_option_none thành "Chọn loại sản phẩm giúp VieBeauty".
2.10 Tùy chỉnh trạng thái tồn kho Bộ lọc quản lý trạng thái kho hàng WooCommerce Thay đổi cách hiển thị nhãn "Còn Hàng" và "Hết Hàng" trên giao diện sản phẩm.
2.11 Hiển thị số lượng đã bán woocommerce_after_shop_loop_item, $product->get_total_sales() Gọi phương thức get_total_sales() của đối tượng sản phẩm để in số lượng sản phẩm đã bán ra bên dưới giá trên trang lưu trữ danh mục.
2.12 Form khảo sát kênh nhận biết qua AJAX woocommerce_thankyou, wp_footer, wp_ajax_collect_feedback, wp_ajax_nopriv_collect_feedback Chèn biểu mẫu radio chọn kênh nhận biết (Google Search, Facebook, Website, Social Media khác, Bạn bè) tại trang Thank You; gửi dữ liệu qua AJAX tới admin-ajax.php, kiểm tra mã nonce và ghi kết quả vào ghi chú đơn hàng (add_order_note).
2.13 Kiểm thực số điện thoại Việt Nam woocommerce_checkout_process, hàm xác thực Devvn_validate_phone_field_process Bắt buộc số điện thoại thanh toán phải bắt đầu bằng chữ số 0 và đúng độ dài tiêu chuẩn; nếu sai sẽ chặn tiến trình thanh toán và báo lỗi.
2.14 Tích hợp danh sách yêu thích (Wishlist) Plugin TI Woocommerce Wishlist Cài đặt và cấu hình trang "Sản phẩm yêu thích", liên kết trực tiếp vào trang Giỏ hàng.
2.15 Chặn bình luận quá ngắn preprocess_comment, strlen() Kiểm tra độ dài nội dung bình luận; nếu dưới 2 ký tự thì ngắt thực thi bằng wp_die() thông báo bình luận quá ngắn.
2.16 Giới hạn ký tự tối đa của bình luận preprocess_comment, strlen() Ngăn chặn các đánh giá quá dài (thiết lập thử nghiệm 10 ký tự) nhằm hạn chế hành vi spam làm ảnh hưởng giao diện bài viết.
2.17 Chống chèn liên kết spam pre_comment_content, preg_match() Sử dụng biểu thức chính quy quét các chuỗi http:// hoặc https://; nếu phát hiện sẽ chặn bằng wp_die().
2.18 Thêm thanh thông tin Header wp_head Tạo snippet PHP hiển thị thông tin thời gian làm việc (9:00AM - 8:00PM) và email liên hệ ở vị trí đầu trang.
2.19 Tạo nút quay về đầu trang (Back to Top) wp_footer, add_shortcode, CSS & jQuery Tạo shortcode [back_to_top_custom] kết hợp script cuộn mượt (animate({scrollTop: 0})) và CSS định vị cố định ở góc dưới bên phải.
2.20 Hiển thị chữ "Hết hàng" trên ảnh sản phẩm Hook hiển thị loop sản phẩm WooCommerce Tự động thêm chữ thông báo "Hết hàng" đè lên ảnh đại diện khi số lượng tồn kho bằng 0.
2.21 Thêm nút gọi Hotline nhanh Tích hợp khối HTML/CSS cố định Bổ sung nút gọi điện thoại nhanh cố định ở góc dưới bên trái màn hình hỗ trợ tư vấn tức thì.
2.22 Thiết lập trang Đăng ký và Đăng nhập Module tài khoản người dùng WooCommerce Xây dựng giao diện đăng ký tài khoản thành viên và đăng nhập chuyên biệt cho khách hàng thân thiết.

Kết quả và đóng góp

Kết quả triển khai thực tế

  • Xây dựng hoàn chỉnh website thương mại điện tử mỹ phẩm "VieBeauty" trên môi trường Internet thực tế tại tên miền https://group5.fun/ (vận hành thử nghiệm đến ngày 31/10/2023).
  • Triển khai thành công 22 kỹ thuật can thiệp mã nguồn PHP vào hệ thống Hook của WordPress và WooCommerce, kiểm chứng hoạt động chính xác của các quy tắc tự động hóa:
    • Tự động áp dụng mã giảm giá 50% khi giỏ hàng vượt mốc 500.000 VNĐ.
    • Hiển thị thanh tiến độ Freeship động dựa trên mốc chi tiêu 400.000 VNĐ.
    • Kiểm soát luồng nhập liệu form thanh toán (chặn số điện thoại không bắt đầu bằng số 0).
    • Thu thập dữ liệu kênh nhận biết khách hàng bất đồng bộ bằng AJAX và tự động ghi vào Order Notes của quản trị viên.
    • Ngăn chặn triệt để tình trạng spam bình luận (quét độ dài tối thiểu, độ dài tối đa và đường dẫn URL bên ngoài).

Đóng góp kỹ thuật của đề tài

  1. Tự chủ mã nguồn và tối ưu hóa hệ thống: Đề tài minh chứng việc thay thế các plugin cồng kềnh (như Contact Form 7 hoặc các plugin sửa đổi giao diện nhỏ lẻ) bằng các đoạn mã nguồn PHP ngắn gọn được móc nối chính xác vào các Action/Filter Hooks giúp hệ thống tinh gọn, giảm thiểu xung đột phần mềm và tăng tốc độ tải trang.
  2. Quy trình hướng dẫn kỹ thuật chi tiết: Cung cấp tài liệu tham khảo có cấu trúc rõ ràng, bao gồm mã nguồn PHP hoàn chỉnh cho từng kịch bản nghiệp vụ bán hàng thực tế trên nền tảng WooCommerce.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Thời gian vận hành tên miền thử nghiệm: Tên miền thử nghiệm https://group5.fun/ chỉ duy trì hoạt động trong thời gian ngắn (đến 31/10/2023) phục vụ đánh giá môn học.
  • Tham số thử nghiệm giới hạn ký tự bình luận: Tham số độ dài bình luận tối đa trong kịch bản chặn spam được nhóm thiết lập mức thử nghiệm là 10 ký tự ($max_characters = 10), mức này cần được điều chỉnh linh hoạt hơn để phù hợp với ngữ cảnh thực tế của người dùng thật.

Hướng mở rộng

  • Tích hợp các cổng thanh toán trực tuyến phổ biến tại Việt Nam (VNPay, MoMo, ZaloPay) vào quy trình checkout WooCommerce.
  • Kết nối tự động API của các đơn vị vận chuyển (Giao Hàng Nhanh, Giao Hàng Tiết Kiệm, Viettel Post) để tính toán phí vận chuyển và ngày giao hàng thực tế theo thời gian thực thay vì sử dụng cấu hình tĩnh.

Giá trị tham khảo

Báo cáo là tài liệu tham khảo có giá trị ứng dụng cao đối với:

  • Sinh viên các ngành Hệ thống thông tin quản lý, Công nghệ thông tin kinh doanh, Thương mại điện tử: Tham khảo cấu trúc đồ án xây dựng website kinh doanh trực tuyến và phương pháp viết báo cáo kỹ thuật.
  • Lập trình viên WordPress/WooCommerce mới bắt đầu: Nắm bắt phương pháp can thiệp vào vòng đời xử lý của WooCommerce thông qua các Filter và Action Hooks cơ bản đến nâng cao (quản lý giỏ hàng, tính cước vận chuyển, xử lý AJAX đơn hàng, lọc dữ liệu bình luận).
  • Chủ doanh nghiệp nhỏ hoặc cá nhân kinh doanh trực tuyến: Tham khảo các ý tưởng tối ưu hóa trải nghiệm người dùng trên trang thanh toán và giỏ hàng nhằm kích cầu mua sắm (upselling, freeship progress bar, coupon tự động).

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

1. Nhóm tác giả sử dụng những hook nào để thay đổi văn bản của nút "Add To Cart"?

Nhóm tác giả sử dụng hai filter hook:

  • woocommerce_product_single_add_to_cart_text để thay đổi nút trên từng trang chi tiết sản phẩm riêng lẻ.
  • woocommerce_product_add_to_cart_text để thay đổi nút trên các trang lưu trữ sản phẩm (Archive / Shop loop). Cả hai hook đều trả về chuỗi văn bản mới: Buy Now ♥.

2. Logic tự động thêm mã giảm giá (Coupon) tại trang giỏ hàng hoạt động như thế nào?

Logic được móc nối vào hook woocommerce_before_cart. Hàm kiểm tra tổng giá trị đơn hàng thông qua WC()->cart->get_subtotal(). Nếu tổng tiền đạt từ 500.000 VNĐ trở lên, hệ thống gọi WC()->cart->apply_coupon('COUPON') để tự động giảm 50% và in thông báo thành công. Nếu dưới 500.000 VNĐ, hệ thống gỡ mã coupon bằng WC()->cart->remove_coupon('COUPON') và hiển thị thông báo nhắc người dùng mua thêm để đạt ngưỡng ưu đãi.

3. Biểu mẫu liên hệ tại trang Header được xây dựng bằng cách nào thay vì dùng plugin có sẵn?

Nhóm tác giả tự lập trình mã nguồn PHP thuần và đăng ký shortcode [Form_Lien_He] thông qua hàm add_shortcode(). Bên trong hàm xử lý, kỹ thuật Output Buffering (ob_start() và ob_get_clean()) được áp dụng để bao bọc mã HTML của form. Dữ liệu gửi đi qua phương thức POST được kiểm tra tính hợp lệ; nếu đầy đủ, hệ thống gửi email đến hòm thư quản trị viên bằng hàm wp_mail() và lưu dữ liệu phản hồi bằng hàm wp_insert_comment().

4. Hệ thống thực hiện việc thu thập dữ liệu khảo sát khách hàng ở trang Cảm Ơn bằng phương thức gì?

Biểu mẫu khảo sát ("Bạn biết VieBeauty qua kênh nào?") được render tại hook woocommerce_thankyou. Khi khách hàng chọn một nút radio, mã JavaScript ở wp_footer sẽ gửi yêu cầu AJAX bất đồng bộ đến admin-ajax.php. Phía máy chủ lắng nghe qua hook wp_ajax_collect_feedback và wp_ajax_nopriv_collect_feedback, tiến hành xác thực bảo mật với check_ajax_referer và ghi nhận câu trả lời trực tiếp vào ghi chú của đơn hàng ($order->add_order_note()).

5. Những giải pháp nào được nhóm áp dụng để chống bình luận rác (spam comment)?

Nhóm triển khai 3 tầng lọc dữ liệu qua các hook của WordPress:

  1. Chặn bình luận quá ngắn (dưới 2 ký tự) bằng cách móc hàm kiểm tra strlen() vào hook preprocess_comment.
  2. Chặn bình luận quá dài (vượt quá giới hạn ký tự quy định) cũng thông qua hook preprocess_comment.
  3. Chặn các bình luận chứa liên kết ngoài không an toàn bằng cách sử dụng biểu thức chính quy preg_match('/http:\/\/|https:\/\//', $comment_text) móc vào filter pre_comment_content.

Kết luận

Báo cáo cuối kỳ của Nhóm 5 – Trường Đại học Kinh tế TP. Hồ Chí Minh đã hoàn thành toàn diện mục tiêu xây dựng website thương mại điện tử ngành mỹ phẩm "VieBeauty" trên nền tảng WordPress và WooCommerce. Đề tài nổi bật ở việc làm chủ mã nguồn thông qua việc áp dụng thành công 22 kỹ thuật can thiệp chuyên sâu vào hệ thống Hooks của WooCommerce nhằm tự động hóa các kịch bản bán hàng, tối ưu hóa giao diện và nâng cao tính bảo mật. Đây là tài liệu thực hành có giá trị tham khảo rõ ràng, thiết thực cho sinh viên và các nhà phát triển trong lĩnh vực công nghệ thương mại điện tử.