Action Scheduler vs WP‑Cron
🛠️ Nó làm gì?
Mặc dù tên scheduler là hourly (giờ), nhiệm vụ cụ thể bên trong hook này phụ thuộc vào cách plugin định nghĩa nó. Trong PMPro, chức năng này thường xử lý:
✅ Kiểm tra và xử lý các công việc nền định kỳ liên quan đến thành viên:
Gửi email nhắc khi thành viên sắp hết hạn hoặc đã hết hạn.
Kiểm tra và xử lý hết hạn membership, cập nhật trạng thái thành viên đúng lúc.
Gửi thông báo thanh toán định kỳ nếu bạn có subscription setup.
📌 Ngoài ra còn có các scheduler khác như:
pmpro_schedule_quarter_hourly— mỗi 15 phútpmpro_schedule_daily— hàng ngàyv.v.
Những hook này được dùng để “đặt lịch” và kích hoạt các tác vụ này đều đặn thông qua Action Scheduler — một hệ thống chạy tác vụ định kỳ và hàng loạt tốt hơn so với WP-Cron truyền thống.
🧠 Action Scheduler vs WP‑Cron
WP‑Cron là cách WordPress gốc xử lý các tác vụ theo lịch, nhưng dựa vào traffic site (người truy cập) mới kích hoạt.
Action Scheduler là hệ thống PMPro sử dụng nhằm đảm bảo các công việc nền được xử lý ổn định hơn và theo dõi được lịch sử thực thi — đặc biệt hữu ích với các email nhắc, kiểm tra subscription…
🧩 Tóm lại
➡️ pmpro_schedule_hourly: một scheduled hook chạy mỗi giờ
➡️ Vai trò: tự động chạy các công việc nền của Paid Memberships Pro như kiểm tra hạn membership, gửi email nhắc, cập nhật trạng thái thành viên…
➡️ Được xử lý bởi: hệ thống Action Scheduler của PMPro
Nếu bạn muốn xem chính xác mỗi tác vụ nào đang được chạy theo hook này (ví dụ cụ thể trên site của bạn), bạn có thể vào Tools → Scheduled Actions trong WordPress admin để xem log và lịch thực thi nhé! 💡
Bạn muốn mình hướng dẫn bạn cách xem và debug scheduled action này trong admin WordPress không? 😊
TÔi muốn cài đặt 1 tuần 1 lần các hằng số action_scheduler_run_recurring_actions_schedule_hook, pmpro_schedule_quarter_hourly, pmpro_schedule_hourly, pmpro_schedule_daily, action_scheduler_run_recurring_actions_schedule_hook, pmpro_schedule_weekly, pmpro_trigger_monthly
Để cài đặt các cron job (scheduled actions) cho các hooks như action_scheduler_run_recurring_actions_schedule_hook, pmpro_schedule_quarter_hourly, pmpro_schedule_hourly, pmpro_schedule_daily, pmpro_schedule_weekly, và pmpro_trigger_monthly chạy một lần mỗi tuần, bạn có thể sử dụng các đoạn mã sau trong file functions.php của theme hoặc một plugin tùy chỉnh để đăng ký các action này.
Cài đặt cron job mỗi tuần một lần:
Bước 1: Đảm bảo rằng bạn đã có các cron hooks cần thiết
Dưới đây là cách đăng ký một cron job cho mỗi hành động bạn đã đề cập. Bằng cách sử dụng wp_schedule_event(), bạn có thể xác định thời gian cụ thể để cron job của bạn chạy.
Bước 2: Định nghĩa tần suất "weekly"
WordPress không có một tần suất sẵn có cho weekly, vì vậy bạn sẽ cần phải thêm một tần suất mới để hỗ trợ việc chạy mỗi tuần một lần. Bạn có thể làm điều này bằng cách sử dụng cron_schedules để thêm tần suất mới.
Bước 3: Xử lý các cron jobs
Cuối cùng, bạn cần đảm bảo rằng các hành động được thực thi khi cron job chạy. Bạn có thể sử dụng add_action() để gắn các hàm xử lý cho mỗi cron hook.
Ví dụ:
Giải thích các bước:
Đăng ký cron job: Sử dụng
wp_schedule_event()để đăng ký các cron job với tần suấtweekly.Tạo tần suất mới: Thêm tần suất
weeklycho cron job, vớiintervallà604800giây (1 tuần).Xử lý các cron actions: Đảm bảo rằng khi cron job chạy, các hàm xử lý tương ứng với từng hook sẽ được kích hoạt.
Hủy bỏ cron job khi không còn cần thiết:
Để tránh việc cron jobs này chạy mãi mãi, bạn có thể thêm mã để hủy cron job khi plugin hoặc theme của bạn bị vô hiệu hóa:
Tóm lại:
Bạn có thể cài đặt các cron jobs chạy mỗi tuần một lần bằng cách sử dụng
wp_schedule_event()và định nghĩa tần suấtweekly.Đảm bảo rằng các hàm xử lý cho từng cron job cũng được đăng ký chính xác.
Nếu bạn cần thêm chi tiết hoặc có bất kỳ câu hỏi nào khác về việc xử lý cron jobs, cứ thoải mái hỏi mình nhé!
Không thấy hoạt động?
Nếu các cron job không hoạt động như mong đợi, có thể có một số lý do dẫn đến việc không thực thi. Dưới đây là các bước kiểm tra và khắc phục vấn đề:
1. Kiểm tra xem cron job có thực sự được đăng ký hay không
Vào Dashboard WordPress và sử dụng plugin WP Crontrol để xem các cron job đã được đăng ký trong hệ thống. Đây là một plugin rất hữu ích để quản lý các cron job.
Cài đặt và kích hoạt WP Crontrol từ Plugins.
Sau khi kích hoạt, vào Tools → Cron Events. Tại đây, bạn sẽ thấy danh sách tất cả các cron job được đăng ký và thời gian chạy của chúng.
Kiểm tra xem các cron job của bạn có xuất hiện không và xem liệu có bất kỳ lỗi nào trong quá trình chạy.
2. Kiểm tra tần suất weekly đã được đăng ký đúng chưa
weekly đã được đăng ký đúng chưaKiểm tra xem tần suất
weeklyđã được đăng ký đúng chưa bằng cách vào WP Crontrol hoặc kiểm tra các hàm đăng ký cron job (cron_schedules).Nếu bạn không thấy tần suất
weeklytrong danh sách, có thể bạn cần kiểm tra lại đoạn mã thêm tần suấtweeklyvàocron_schedules:
3. Kiểm tra các hàm xử lý cron job
Đảm bảo rằng các hàm xử lý (ví dụ:
handle_pmpro_schedule_hourly(),handle_pmpro_schedule_daily(), ...) không bị lỗi hoặc không có vấn đề trong logic của chúng.Thêm
error_log()trong các hàm xử lý để kiểm tra xem chúng có được gọi hay không. Ví dụ:
Kiểm tra file debug.log trong thư mục wp-content để xem có lỗi nào xảy ra không.
4. Kiểm tra WP-Cron
WordPress sử dụng WP-Cron để thực thi cron job. Tuy nhiên, WP-Cron chỉ chạy khi có người truy cập vào website. Nếu website của bạn không có lượng traffic thường xuyên, cron job có thể không được kích hoạt đúng lúc.
Bạn có thể thử chạy cron thủ công bằng cách truy cập URL:
http://yourdomain.com/wp-cron.php?doing_wp_cron(thayyourdomain.combằng tên miền của bạn).Nếu cron job không chạy khi truy cập thủ công, có thể bạn cần thiết lập một cron job thực sự trên máy chủ (cron job system) để kích hoạt
wp-cron.phpđịnh kỳ.
5. Thiết lập Cron Job thực tế trên máy chủ
Nếu WP-Cron không đủ mạnh mẽ, bạn có thể chuyển sang sử dụng cron job thực sự trên server:
Đăng nhập vào cPanel (hoặc sử dụng terminal nếu bạn sử dụng VPS).
Cài đặt cron job để gọi
wp-cron.phpđịnh kỳ.
Ví dụ:
Đặt cron job chạy mỗi 15 phút hoặc một khoảng thời gian tùy ý.
6. Kiểm tra các vấn đề với plugin xung đột
Đôi khi, các plugin khác có thể gây ra xung đột và ngừng hoạt động của cron job. Để kiểm tra điều này:
Tạm thời vô hiệu hóa tất cả các plugin (ngoại trừ WP Crontrol và PMPro).
Kiểm tra xem các cron job có hoạt động hay không.
Nếu cron job hoạt động bình thường, kích hoạt lại từng plugin một để xác định plugin nào gây ra vấn đề.
Tóm lại:
Kiểm tra bằng WP Crontrol: Xem các cron job đã đăng ký chưa.
Kiểm tra tần suất "weekly": Đảm bảo rằng bạn đã thêm đúng tần suất vào
cron_schedules.Đảm bảo các hàm xử lý không có lỗi: Dùng
error_log()để xác định vấn đề.Kiểm tra WP-Cron: Chạy thử thủ công qua
wp-cron.php.Cài đặt Cron Job thực tế: Đặt cron job trên server nếu cần.
Nếu sau khi kiểm tra và thử các bước trên mà vấn đề vẫn không được giải quyết, hãy thông báo cho tôi để mình có thể hỗ trợ thêm! 😊
Tắt cron nhưa nào?
Để tắt WP-Cron (hệ thống cron tự động của WordPress), bạn có thể làm theo các bước sau:
1. Tắt WP-Cron trong wp-config.php
wp-config.phpĐể tắt WP-Cron, bạn cần thêm một dòng mã vào file wp-config.php của website WordPress.
Mở file
wp-config.php(nằm trong thư mục gốc của WordPress).Thêm đoạn mã sau vào trước dòng
/* That's all, stop editing! Happy blogging. */:
Ví dụ:
Sau khi bạn thêm dòng mã này, WP-Cron sẽ không còn tự động chạy khi có người truy cập vào website của bạn.
2. Thiết lập Cron Job thực sự trên Server
Khi bạn tắt WP-Cron, bạn cần thiết lập cron job thực sự trên server để WordPress vẫn có thể thực hiện cron job định kỳ.
Để thiết lập cron job thực sự, làm theo các bước sau:
Đăng nhập vào cPanel hoặc SSH (nếu bạn dùng VPS).
Tạo cron job mới để gọi
wp-cron.phpcủa WordPress định kỳ. Bạn có thể cài đặt cron job này để chạy mỗi 15 phút, 1 giờ, hoặc theo chu kỳ bạn muốn.Ví dụ, nếu bạn muốn chạy cron job mỗi 15 phút, thêm dòng sau vào cron job:
Giải thích:
*/15 * * * *: Chạy mỗi 15 phút.wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron: Lệnhwgetnày sẽ gọi tệpwp-cron.phpcủa WordPress.> /dev/null 2>&1: Để ngăn việc ghi log lỗi không cần thiết.
Lưu cron job và kiểm tra lại để đảm bảo cron job đang hoạt động đúng.
3. Kiểm tra xem WP-Cron đã bị tắt chưa
Sau khi bạn đã tắt WP-Cron trong wp-config.php, bạn có thể kiểm tra xem cron job có còn chạy không bằng cách:
WP Crontrol Plugin: Nếu bạn sử dụng plugin WP Crontrol, bạn sẽ không thấy các cron job của WordPress chạy nữa, vì chúng không còn được kích hoạt qua WP-Cron.
Check Logs: Bạn cũng có thể kiểm tra lại logs hoặc sử dụng error_log trong mã của bạn để xem cron job có được gọi như mong đợi hay không.
Tóm lại:
Tắt WP-Cron: Thêm dòng mã
define('DISABLE_WP_CRON', true);vàowp-config.php.Thiết lập Cron Job thực sự: Đặt cron job trên server để gọi
wp-cron.phpđịnh kỳ.Kiểm tra: Kiểm tra xem cron job đã được thiết lập và hoạt động như mong đợi.
Nếu bạn gặp phải vấn đề trong quá trình thực hiện hoặc cần thêm hỗ trợ về việc cấu hình cron job, hãy thông báo cho tôi nhé! 😊
Check Logs ở đâu?
Để kiểm tra các log trong WordPress, bạn có thể sử dụng một số phương pháp khác nhau tùy theo loại log bạn muốn kiểm tra (log của cron job, lỗi PHP, hay các sự kiện trong WordPress). Dưới đây là các cách để kiểm tra log:
1. Kiểm tra File Debug Log trong WordPress
Nếu bạn muốn kiểm tra các lỗi và sự kiện liên quan đến WordPress, bạn có thể bật chế độ debug trong WordPress và lưu các log vào file debug.log.
Cách bật chế độ debug:
Mở file
wp-config.phpcủa website bạn.Thêm đoạn mã sau vào trước dòng
/* That's all, stop editing! Happy blogging. */:
WP_DEBUG: Bật chế độ debug.WP_DEBUG_LOG: Ghi lại các lỗi vào filewp-content/debug.log.WP_DEBUG_DISPLAY: Tắt hiển thị lỗi trên giao diện website, để tránh việc lộ thông tin nhạy cảm.
Sau khi bật debug, WordPress sẽ ghi lại tất cả các lỗi, cảnh báo và notice vào file debug.log trong thư mục wp-content.
Kiểm tra log:
Để kiểm tra log, vào thư mục
wp-contentvà mở filedebug.logđể xem các thông báo lỗi hoặc sự kiện.
2. Kiểm tra Cron Jobs trong WP Crontrol Plugin
Nếu bạn sử dụng plugin WP Crontrol, bạn có thể kiểm tra các cron job đã đăng ký và tình trạng của chúng.
Các bước:
Cài đặt và kích hoạt WP Crontrol từ Plugins.
Vào Tools → Cron Events trong bảng điều khiển WordPress.
Tại đây, bạn sẽ thấy danh sách các cron job đang chạy trên website của bạn, bao gồm các hook và thời gian chạy tiếp theo.
Nếu bạn không thấy cron job của mình, điều này có thể cho thấy chúng không được đăng ký đúng cách.
Bạn cũng có thể xóa các cron job không cần thiết hoặc thủ công kích hoạt các cron job từ đây.
3. Kiểm tra Error Logs từ Server
Nếu bạn muốn kiểm tra log liên quan đến lỗi của máy chủ (như lỗi PHP, lỗi máy chủ web), bạn có thể kiểm tra các error logs trên máy chủ của bạn.
Cách tìm error log trên server:
Trên cPanel:
Đăng nhập vào cPanel của bạn.
Tìm và mở Error Log.
Bạn sẽ thấy các lỗi PHP và các lỗi khác liên quan đến server.
Trên VPS/Server sử dụng SSH:
Nếu bạn sử dụng VPS hoặc server với SSH, bạn có thể kiểm tra log tại các vị trí sau (tuỳ vào cấu hình máy chủ):
Apache logs:
/var/log/apache2/error.loghoặc/var/log/httpd/error_logNginx logs:
/var/log/nginx/error.logPHP logs:
/var/log/php_errors.log
Để kiểm tra lỗi PHP, bạn có thể dùng lệnh như sau:
4. Sử dụng Plugin để Kiểm Tra Cron Job Logs
Ngoài WP Crontrol, một số plugin khác như Debug Bar cũng có thể giúp bạn kiểm tra cron job và các sự kiện trong WordPress.
5. Kiểm Tra Log từ action_scheduler
action_schedulerNếu bạn sử dụng Action Scheduler để quản lý cron jobs trong WordPress, bạn cũng có thể kiểm tra các log này từ cơ sở dữ liệu của WordPress. Action Scheduler lưu trữ thông tin về các task đã thực hiện trong bảng wp_actionscheduler_actions.
Kiểm tra logs:
Nếu bạn muốn kiểm tra trạng thái của các cron job được đăng ký và thực thi thông qua Action Scheduler, bạn có thể vào Tools → Scheduled Actions để xem lịch sử các hành động đã được thực hiện.
Tóm lại:
Bật WP Debug: Xem lỗi PHP trong file
wp-content/debug.log.WP Crontrol: Kiểm tra cron job đã đăng ký và trạng thái thực thi.
Server Logs: Kiểm tra logs từ máy chủ (cPanel, SSH).
Action Scheduler: Kiểm tra các hành động cron job trong bảng
wp_actionscheduler_actions.
Nếu bạn cần thêm hướng dẫn về việc kiểm tra một loại log cụ thể, hãy cho mình biết! 😊
define('DISABLE_WP_CRON', true); nhưng khi tôi chạy wget -q -O - https://test3.com/wp-cron.php\?doing_wp_cron nó vẫn ghi log điều đó chứng tỏ gì?
Khi bạn đã thêm dòng mã:
vào file wp-config.php, mục tiêu là tắt WP-Cron, để WordPress không tự động chạy cron jobs khi có người truy cập website. Tuy nhiên, khi bạn chạy lệnh wget -q -O - https://test3.com/wp-cron.php?doing_wp_cron và vẫn thấy ghi log, điều này có thể có vài lý do:
1. WP-Cron vẫn được gọi trực tiếp qua wget
wgetMặc dù bạn đã tắt WP-Cron thông qua DISABLE_WP_CRON, wp-cron.php vẫn có thể được gọi thủ công thông qua wget hoặc cron job thực tế mà bạn đã thiết lập. Lệnh wget sẽ yêu cầu WordPress gọi lại cron job, và nếu wp-cron.php được kích hoạt thủ công, nó sẽ thực hiện các cron job như bình thường.
Điều này có nghĩa là:
Nếu bạn chạy
wgetthủ công (bằng tay hoặc qua cron job thực tế), nó sẽ bỏ qua việc tắt WP-Cron trong mã nguồn của bạn và vẫn thực thi cron job.Kết luận: Việc chạy cron job thủ công qua
wgetkhông bị ảnh hưởng bởiDISABLE_WP_CRON, vìDISABLE_WP_CRONchỉ ngừng các cron job được kích hoạt qua truy cập website (HTTP request), không phải qua lệnhwgethay cron job server.
2. Kiểm tra cách cron job được thực thi
Nếu bạn đang sử dụng cron job thực sự trên server (thông qua cPanel hoặc SSH) để gọi
wp-cron.php, thì cron job vẫn sẽ chạy định kỳ theo cấu hình cron job của bạn.Ví dụ, cron job được thiết lập bằng lệnh
wgetnhư sau sẽ vẫn chạy dù WP-Cron đã bị tắt:Lý do: Cron job server hoạt động độc lập với việc tắt WP-Cron trong
wp-config.php.
3. Xác nhận WP-Cron đã bị tắt chính xác
Để đảm bảo rằng WP-Cron đã bị tắt hoàn toàn:
Kiểm tra lại
wp-config.phpvà chắc chắn dòng mãdefine('DISABLE_WP_CRON', true);đã được thêm đúng chỗ, trước dòng/* That's all, stop editing! Happy blogging. */.Kiểm tra lại cron job server (thông qua cPanel hoặc SSH) để đảm bảo cron job đã được thiết lập đúng và không chạy lệnh
wp-cron.phpnữa.Bạn có thể log thử xem nếu cron job có thực sự chạy định kỳ hay không. Ví dụ, thêm dòng sau vào trong
wp-cron.phpđể kiểm tra xem nó có được gọi hay không:
Sau đó kiểm tra file cron_test.log trong thư mục wp-content để xem cron có chạy khi bạn gọi bằng wget hay không.
Tóm lại:
DISABLE_WP_CRONngừng WP-Cron khi có người truy cập website, nhưng không ảnh hưởng đến các cron job thực tế (chạy quawgethoặc cron job server).Nếu bạn vẫn muốn tắt hoàn toàn cron job, hãy đảm bảo không có cron job server nào gọi
wp-cron.php.Kiểm tra lại
wp-config.phpvà cron job thực tế để đảm bảo mọi thứ được thiết lập đúng.
Nếu bạn cần thêm hướng dẫn cụ thể về cách loại bỏ cron job thực tế hoặc gặp vấn đề khác, cứ cho mình biết nhé!
define('DISABLE_WP_CRON', true); vào wp-config.php nó sẽ không tự động cron nữa phải không?
Đúng rồi! Khi bạn thêm dòng mã sau vào file wp-config.php của WordPress:
Điều này sẽ tắt WP-Cron. Có nghĩa là WordPress sẽ không tự động chạy cron jobs khi có người truy cập vào website nữa.
Ý nghĩa của DISABLE_WP_CRON:
DISABLE_WP_CRON:WP-Cron (một hệ thống cron job tích hợp sẵn của WordPress) thường sẽ tự động chạy các cron jobs mỗi khi có người truy cập vào website.
Khi bạn tắt WP-Cron bằng cách thêm dòng mã trên, WordPress sẽ không tự động chạy cron jobs mỗi khi có người truy cập nữa.
Tuy nhiên, điều này chỉ áp dụng cho việc cron jobs được kích hoạt khi có người truy cập. WP-Cron vẫn có thể hoạt động qua các phương pháp khác (như cron job thực tế từ server).
Sau khi tắt WP-Cron, bạn cần thiết lập cron job thực sự trên server nếu bạn vẫn muốn các cron jobs tự động chạy định kỳ mà không phụ thuộc vào traffic của website.
Ví dụ thiết lập cron job thực tế:
Đăng nhập vào cPanel hoặc VPS (SSH).
Thêm cron job mới để chạy file
wp-cron.phpđịnh kỳ. Ví dụ, bạn có thể đặt cron job này để chạy mỗi 15 phút:
Điều này sẽ gọi file wp-cron.php mỗi 15 phút, thực thi các cron jobs mà bạn đã thiết lập trong WordPress mà không phụ thuộc vào traffic của website.
Tóm lại:
Tắt WP-Cron: Dòng mã
define('DISABLE_WP_CRON', true);sẽ ngừng cron jobs tự động chạy khi có người truy cập vào website.Sử dụng Cron Job thực tế: Bạn cần thiết lập cron job thực sự trên server nếu muốn các cron jobs chạy định kỳ mà không cần phụ thuộc vào người truy cập.
Hy vọng câu trả lời này giúp bạn hiểu rõ hơn về cách thức hoạt động của WP-Cron và cách tắt nó! Nếu bạn có thêm câu hỏi nào, cứ cho mình biết nhé! 😊
Như vậy là các hook jetpack_clean_nonces này cũng không hoạt động nữa phải không? Trong https://test3.com/wp-admin/tools.php?page=wp-crontrol
Đúng rồi! Nếu bạn đã tắt WP-Cron bằng cách thêm dòng mã:
Tất cả các cron job và hook WordPress, bao gồm cả các hook của các plugin như Jetpack, chẳng hạn như jetpack_clean_nonces, sẽ không còn tự động chạy khi có người truy cập vào website nữa.
Cụ thể:
jetpack_clean_nonces: Đây là một hook cron job của Jetpack, được thiết lập để làm sạch các nonce cũ trong cơ sở dữ liệu sau một khoảng thời gian. Nếu WP-Cron bị tắt, các cron job của Jetpack (và các plugin khác) sẽ không được thực thi tự động.WP-Cron chỉ chạy khi có người truy cập vào website hoặc khi cron job được kích hoạt thủ công (bằng
wgethoặc cron job thực tế từ server).
Kiểm tra các Cron Job trong WP Crontrol:
Mặc dù WP-Cron bị tắt, bạn vẫn có thể kiểm tra tất cả các cron job đã đăng ký (bao gồm các cron job từ Jetpack) trong WP Crontrol.
Vào Tools → Cron Events trong trang quản trị WordPress.
Bạn sẽ thấy danh sách tất cả các cron job đã đăng ký và trạng thái của chúng.
Nếu WP-Cron bị tắt, các cron job này sẽ không được thực thi tự động nữa, nhưng bạn vẫn có thể xóa hoặc thực thi chúng thủ công từ giao diện WP Crontrol.
Cách khắc phục để cron job vẫn hoạt động:
Nếu bạn muốn cron job vẫn hoạt động mặc dù WP-Cron bị tắt, bạn cần thiết lập cron job thực tế trên server (để thay thế WP-Cron):
Các bước để thiết lập cron job thực tế:
Đăng nhập vào cPanel hoặc sử dụng SSH (nếu bạn sử dụng VPS).
Thêm cron job mới để gọi
wp-cron.phpcủa WordPress định kỳ. Ví dụ, thiết lập cron job này chạy mỗi 15 phút:
Lệnh này sẽ gọi wp-cron.php mỗi 15 phút, kích hoạt tất cả các cron job, bao gồm các hook như jetpack_clean_nonces.
Tóm lại:
Tắt WP-Cron: Khi bạn tắt WP-Cron, tất cả cron job tự động (bao gồm cả hook của Jetpack như
jetpack_clean_nonces) sẽ không chạy tự động.Thiết lập cron job thực tế: Bạn cần thiết lập cron job thực tế trên server để các cron job vẫn chạy định kỳ, bao gồm các hook của plugin như Jetpack.
Nếu bạn cần giúp đỡ thêm về cách thiết lập cron job thực tế hoặc gặp vấn đề khác, đừng ngần ngại hỏi mình nhé! 😊
Last updated