WP-Cron (wp-cron.php): ปิดการทำงานและตั้งค่า Cron ของระบบ | ปรับแต่งประสิทธิภาพ WordPress

ใน WordPress งาน Cron คือฟีเจอร์ที่รันงานซึ่งตั้งเวลาไว้ตามเวลาหรือวันที่ที่กำหนดโดยอัตโนมัติ งานนี้ทำงานผ่านไฟล์ wp-cron.php และ WordPress จะเรียกไฟล์นี้ทุกครั้งที่หน้าเว็บโหลดเพื่อประมวลผลงานที่ตั้งเวลาไว้ วิธีนี้สะดวก แต่ในเว็บไซต์ที่มีทราฟฟิกสูงอาจทำให้ประสิทธิภาพลดลง
Ⅰ. ขั้นตอนการทำงานของ WP-Cron และปัญหาด้านประสิทธิภาพ
WordPress ไม่ได้ใช้ระบบ Cron แบบดั้งเดิมของเซิร์ฟเวอร์ Linux แต่มีฟีเจอร์ Cron ของตัวเองคือ WP-Cron ซึ่งทำงานผ่านไฟล์ wp-cron.php โดย ⓐ ทุกครั้งที่ผู้ใช้เข้าชมเว็บไซต์ จะตรวจว่ามีงานที่ตั้งเวลาไว้หรือไม่แล้วรันงานนั้น และ ⓑ ปลั๊กอินอย่าง Rank Math และ WP Rocket จะรันงานตามรอบที่ตั้งเวลาไว้เอง
ในทางกลับกัน บนเว็บไซต์ที่มีทราฟฟิกสูง wp-cron.php อาจถูกเรียกบ่อยเกินไปจนทำให้เซิร์ฟเวอร์รับภาระหนัก โดยเฉพาะเมื่อมีผู้ใช้เข้ามาพร้อมกันหลายคน งาน Cron ที่ซ้ำกันจะถูกรัน ซึ่งอาจนำไปสู่ การใช้ CPU ที่เพิ่มขึ้น, การตอบสนองที่ล่าช้า, ความเร็วในการโหลดหน้าที่ลดลง และปัญหาอื่น ๆ
ข้อจำกัดเชิงโครงสร้างของ WP-Cron นี้อาจทำให้ประสิทธิภาพของ WordPress ลดลง โดยเฉพาะใน เว็บไซต์ที่ต้องการประสิทธิภาพสูง ร้านค้าออนไลน์ หรือพอร์ทัลข่าว ซึ่งอาจเกิดคอขวดร้ายแรงได้
🔄 วิธีการทำงานและโครงสร้างของ WP-Cron
Ⅱ. ปรับแต่งประสิทธิภาพ WordPress
การปรับแต่งประสิทธิภาพ WordPress มีหลายวิธี หลังจากปรับแต่งแคช ฟรอนต์เอนด์ และฐานข้อมูลแล้ว ยังปรับปรุงต่อได้ด้วยการตั้งค่า WP-Cron
ทุกครั้งที่หน้า WordPress โหลด ระบบจะตรวจอีเวนต์ที่ตั้งเวลาไว้ และเพราะปลั๊กอินมีงานตามรอบ จึงจำเป็นต้องใช้ WP-Cron ที่ไม่มีประสิทธิภาพนี้ให้มีประสิทธิภาพมากขึ้น
1️⃣ ทดสอบ WP-Cron
เมื่อตรวจงาน Cron ด้วย WP-CLI จะเห็น Cron ที่ทำงานอยู่กำลังรัน และเห็นว่าปลั๊กอินอย่าง Rank Math และ WP Rocket รันงานที่ตั้งเวลาไว้เป็นรายวันหรือทุก ๆ ไม่กี่นาที

2️⃣ วิธีตั้งค่า WP-Cron
WP-Cron คือตัวตั้งเวลาเสมือนที่จัดการงานที่ตั้งเวลาไว้ของ WordPress โดย wp-cron.php จะทำงานเมื่อผู้ใช้เข้าชม แต่การทำงานที่อิงทราฟฟิกไม่เสถียร และการถูกเรียกมากเกินไปอาจทำให้เซิร์ฟเวอร์รับภาระหนัก จึงมักเสริมด้วย Cron ของระบบ
หากจำเป็น แนะนำให้ตั้งค่า DISABLE_WP_CRON ใน wp-config.php เพื่อปิด WP-Cron แล้วรันเป็นประจำด้วย Cron ของ Linux
|
รายการ |
ปิด WP-Cron + รันด้วย Cron ของระบบอย่างเดียว |
|---|---|
|
ตั้งค่า |
ปิด WP-Cron แล้วรัน wp-cron.php จาก Cron ของระบบ |
|
ข้อดี |
ไม่มีการรันซ้ำ รันตามเวลาได้แม่นยำ และเซิร์ฟเวอร์รับภาระน้อย |
|
ข้อเสีย |
ฟีเจอร์ปลั๊กอินบางส่วนอาจหยุดทำงาน และถ้าตั้งค่าผิดอาจมีงานตกหล่น |
|
แนะนำ · สถานการณ์ |
เหมาะกับเว็บไซต์ที่มีทราฟฟิกสูงและมีงานที่ตั้งเวลาไว้มาก |
แต่วิธีที่ ① มีข้อเสียคือ ฟีเจอร์ PreLoad ของปลั๊กอินแคชอย่าง WP Rocket ที่สร้างแคชล่วงหน้าทุก 1 นาทีก่อนผู้เข้าชมจะเข้ามาที่หน้าเว็บ จะถูกปิดไปด้วย
⚙️ แก้ไขไฟล์ wp-config.php
ตั้งค่าได้ด้วยการปิด WP_CRON
# ปิด WP_CRON
define( 'DISABLE_WP_CRON', true );ขณะที่ WP-Cron กำลังทำงาน WP_CRON_LOCK_TIMEOUT จะทำหน้าที่เป็น [ตัวล็อกตามเวลา] ที่กันการพยายามรันครั้งอื่น.
# 5 นาทีใส่ 300 รันทุก 60 นาทีใส่ 3600
define('WP_CRON_LOCK_TIMEOUT', 300);ด้วยเหตุนี้ แทนที่จะปิดแค่ WP-Cron ในไฟล์ wp-config.php ขอแนะนำให้ปิดแล้วเพิ่มงาน System Cron ซึ่งเซิร์ฟเวอร์ที่ดูแลอยู่ตอนนี้ก็ตั้งค่าด้วยวิธีนี้
⚙️ เปิดใช้ Cron ของระบบบนเซิร์ฟเวอร์ Linux [พื้นฐาน]
เปิดใช้แยกตามโดเมนได้
# รันทุก 5 นาที
*/5 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
# รันทุก 30 นาที
*/30 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
# รันทุก 1 ชั่วโมง
0 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
# รันวันละ 1 ครั้ง
0 3 * * * curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&14 บรรทัดด้านบนเป็นตัวอย่างตามรอบเวลาที่ลงทะเบียนใน crontab ทุกเวลาที่กำหนด curl จะเรียกที่อยู่ [wp-cron.php] ทำให้งานที่ตั้งเวลาไว้ทำงานได้แม้ไม่มีผู้เข้าชม
# กรณีเป็นเซิร์ฟเวอร์ภายในเครื่อง
*/5 * * * * php /path/to/wordpress/wp-cron.php > /dev/null 2>&1
# รันทุก 30 นาที
*/30 * * * * php /path/to/wordpress/wp-cron.php > /dev/null 2>&1
# รันทุก 1 ชั่วโมง
0 * * * * php /path/to/wordpress/wp-cron.php > /dev/null 2>&1
# รันวันละ 1 ครั้ง
0 3 * * * php /path/to/wordpress/wp-cron.php > /dev/null 2>&1ถ้าติดตั้ง WP-CLI ไว้ ตั้งเพียงบรรทัดเดียวตามรอบเวลาที่ต้องการได้ ▼
# รันทุก 5 นาที
*/5 * * * * cd /sites/example.com/files/ && flock -n ~/.wp_cron.lock /usr/local/bin/wp cron event run --due-now --quiet
# รันทุก 30 นาที
*/30 * * * * cd /sites/example.com/files/ && flock -n ~/.wp_cron.lock /usr/local/bin/wp cron event run --due-now --quiet
# รันทุก 1 ชั่วโมง
0 * * * * cd /sites/example.com/files/ && flock -n ~/.wp_cron.lock /usr/local/bin/wp cron event run --due-now --quiet
# รันวันละ 1 ครั้ง
0 3 * * * cd /sites/example.com/files/ && flock -n ~/.wp_cron.lock /usr/local/bin/wp cron event run --due-now --quietเป็นการตั้งค่าให้ WP-CLI ภายในเซิร์ฟเวอร์รันเฉพาะงานที่ตั้งเวลาไว้ซึ่งถึงกำหนดแล้วด้วยตัวเลือก [--due-now] ส่วน [flock -n] จะข้ามการรันครั้งใหม่ถ้าการรันก่อนหน้ายังไม่จบ
⚙️ WP-CLI กับ Cron ของระบบทุก 1 นาที และการกันงาน Cron ซ้ำ
WP_CRON แบบเดิมมีโครงสร้างที่ถ้างานมีมากจะข้ามไปเฉย ๆ แล้วค่อยรันใหม่ภายหลัง ให้ปิด WP-Cron แบบเดิมและตั้งให้งานที่ตั้งเวลาไว้คงการล็อกไว้ 5 นาที เพื่อกันไม่ให้ Cron ของระบบกับ WP-Cron รันซ้อนกัน
define('DISABLE_WP_CRON', true); // ปิดการรันอัตโนมัติของ WP-Cron
define('WP_CRON_LOCK_TIMEOUT', 300); // ไม่รอ → ข้าม; คงการล็อก 5 นาทีขณะรันงานที่ตั้งเวลาไว้
/* That's all, stop editing! Happy publishing. */ตั้งตัวเลือก flock -n เพิ่มให้ Cron ของระบบ เพื่อให้ฝั่ง Cron ของระบบจบการทำงานทันที
# ตั้งค่า wp cron: flock -n → ไม่รอ → จบทันที
*/1 * * * * cd /sites/example.com/files/ && flock -n ~/.wp_cron.lock /usr/local/bin/wp cron event run --due-now --quietผลของการตั้งค่าแบบผสมข้างต้นคือ
- การรันอัตโนมัติภายใน WP ถูกปิด → งานที่ตั้งเวลาไว้รันได้โดยไม่ขึ้นกับจำนวนผู้เข้าชม
- Cron ของระบบพยายามรันทุก 1 นาที → ถ้ามีงานที่ตั้งเวลาไว้ก็จะรัน
- เมื่อถูกล็อกจะไม่รันซ้ำเป็นเวลา 5 นาที → กันการรันซ้ำ (ในทางปฏิบัติ เมื่อตั้ง flock -n แล้ว WP_CRON_LOCK_TIMEOUT ก็ไม่จำเป็นนัก)
เมื่อกันการรันซ้ำแล้ว ลำดับการทำงานจริงคือ
- 08:00 → Cron ของระบบเรียก wp-cron.php
- งานที่ตั้งเวลาไว้ A ทำงาน → ตั้งล็อก 5 นาที
- 08:01 → Cron ของระบบเรียกอีกครั้ง
- งาน A ยังถูกล็อก → ไม่รัน
- 08:02–08:04 → เหมือนเดิม
- 08:05 → ปลดล็อก → ถ้ามีงานที่ตั้งเวลาไว้ถัดไปก็จะรัน
WordPress ไม่ได้รันงานเองโดยอัตโนมัติ แต่ระบบเป็นผู้รับผิดชอบการรันแทน และ WP_CRON_LOCK_TIMEOUT ทำหน้าที่เป็นตัวป้องกันเสริมที่กันการรันซ้ำ
|
รายการ |
WP_CRON_LOCK_TIMEOUT |
flock -n |
|---|---|---|
|
รูปแบบการล็อก |
ภายใน WordPress |
ระดับระบบ |
|
ตำแหน่งที่เก็บล็อก |
อิง DB: doing_cron ใน wp_options |
อิงไฟล์ในระบบ: ~/.wp_cron.lock |
|
รอหรือไม่ |
❌ ไม่รอ → ข้าม |
❌ ไม่รอ → จบทันที |
|
กันการรันซ้ำ |
✅ กันการรันซ้ำ |
✅ กันการรันซ้ำ |
เมื่อทำเสร็จแล้ว ตรวจสอบได้ด้วยคำสั่ง WP-CLI ว่า Cron ยังทำงานได้ดีเหมือนเดิมหรือไม่
wp cron event list+-------------------------------------------+---------------------+-----------------------+---------------+
| hook | next_run_gmt | next_run_relative | recurrence |
+-------------------------------------------+---------------------+-----------------------+---------------+
| rocket_saas_pending_jobs | 2026-10-17 12:00:57 | now | 1 minute |
| action_scheduler_run_queue | 2026-10-17 12:00:57 | now | 1 minute |
| action_scheduler_run_queue_rucss | 2026-10-17 12:00:58 | now | 1 minute |
| rocket_saas_on_submit_jobs | 2026-10-17 12:00:58 | now | 1 minute |
| rocket_preload_process_pending | 2026-10-17 12:00:59 | now | 1 minute |
| rocket_purge_time_event | 2026-10-17 12:16:59 | 15 minutes 8 seconds | 1 hour |
| wp_privacy_delete_old_export_files | 2026-10-17 12:28:46 | 26 minutes 55 seconds | 1 hour |
| wp_update_user_counts | 2026-10-17 20:15:52 | 8 hours 14 minutes | 12 hours |
| rocket_preload_revert_old_failed_rows | 2026-10-17 20:17:59 | 8 hours 16 minutes | 12 hours |
| wp_version_check | 2026-10-17 20:28:34 | 8 hours 26 minutes | 12 hours |
| wp_update_plugins | 2026-10-17 20:58:34 | 8 hours 56 minutes | 12 hours |
| wp_update_themes | 2026-10-17 21:28:34 | 9 hours 26 minutes | 12 hours |
| recovery_mode_clean_expired_keys | 2026-10-18 07:28:46 | 19 hours 26 minutes | 1 day |
| wp_privacy_personal_data_cleanup_requests | 2026-10-18 07:28:46 | 19 hours 26 minutes | 1 day |
| wp_scheduled_delete | 2026-10-18 08:15:52 | 20 hours 14 minutes | 1 day |
| delete_expired_transients | 2026-10-18 08:15:52 | 20 hours 14 minutes | 1 day |
| wp_scheduled_auto_draft_delete | 2026-10-18 08:15:54 | 20 hours 14 minutes | 1 day |
| wp_delete_temp_updater_backups | 2026-10-18 08:16:17 | 20 hours 14 minutes | 1 week |
| rocket_update_dynamic_lists | 2026-10-18 08:16:57 | 20 hours 15 minutes | 1 week |
| rocket_saas_clean_rows_time_event | 2026-10-18 08:16:57 | 20 hours 15 minutes | 1 week |
| rocket_performance_hints_cleanup | 2026-10-18 08:16:58 | 20 hours 15 minutes | 1 day |
| rocket_preload_clean_rows_time_event | 2026-10-18 08:26:57 | 20 hours 25 minutes | 1 week |
| rocket_database_optimization_time_event | 2026-10-18 09:34:25 | 21 hours 32 minutes | 1 day |
| wp_site_health_scheduled_check | 2026-10-19 07:28:46 | 1 day 19 hours | 1 week |
| rocket_remove_saas_failed_jobs | 2026-10-19 08:16:58 | 1 day 20 hours | 3 days |
+-------------------------------------------+---------------------+-----------------------+---------------+ผลลัพธ์จะแสดงชื่อ hook ที่ลงทะเบียนไว้ เวลารันครั้งถัดไป และรอบการทำซ้ำ งานที่คอลัมน์ [next_run_relative] เป็น [now] จะถูกประมวลผลทันทีในการรัน Cron ครั้งถัดไป
Ⅲ. เมื่องานที่ตั้งเวลาไว้ของ WP-Cron ไม่ทำงาน
เราอาจคิดว่าเมื่อถึงเวลาที่ตั้งไว้ งานจะรันเอง แต่ WP-Cron ไม่ได้ดูเวลา มันจะตรวจงานที่ต้องทำเมื่อมีคำขอหน้าเว็บเข้ามา งานที่ตั้งเวลาไว้ตอนบ่าย 2 โมง ถ้าไม่มีคำขอเลยจนถึง 5 โมงเย็น ก็จะรันตอนคำขอแรกของเวลา 5 โมงเย็น
เมื่อการรันล่าช้า โพสต์ที่ตั้งเวลาเผยแพร่ไว้จะแสดงเป็น [ตารางเวลาผิดพลาด] (Missed schedule) ในรายการโพสต์ และใน [การปรับปรุงที่แนะนำ] ของแท็บสถานะที่ [เครื่องมือ › สุขภาพเว็บ] จะมี [งานที่ตั้งเวลาไว้ล้มเหลว] ขึ้นมา งานที่ปลั๊กอินลงทะเบียนไว้ เช่น การโหลดแคชล่วงหน้า ก็รอรันด้วยเหตุผลเดียวกัน
งานที่ตั้งเวลาไว้จะผ่านคำขอหน้าเว็บ การตรวจงานที่ต้องทำ และคำขอ loopback ก่อนจะรันใน [wp-cron.php] ถ้าขาดตอนใดตอนหนึ่ง งานจะไม่รันแม้เลยเวลาแล้ว
1️⃣ เมื่อไม่มีผู้เข้าชมหรือแคชหน้าเว็บเป็นผู้ตอบกลับ
WP-Cron ตรวจงานที่ต้องทำเฉพาะในคำขอที่ทำให้ WordPress ทำงาน ช่วงที่ไม่มีผู้เข้าชม งานที่เลยเวลาแล้วจึงกองค้างอยู่อย่างนั้น ต่อให้มีผู้เข้าชม ถ้าตอบกลับด้วยไฟล์แคชหน้าเว็บ WordPress ก็ไม่ทำงาน ผลจึงเหมือนกัน
ใน WordPress ที่เปิดแคชหน้าเว็บของ WP Rocket ไว้ เมื่อเปิดหน้าแรกที่ถูกแคชแล้ว ไม่มีการเรียก [wp-cron.php] ถูกบันทึกไว้ แต่พอเปิดที่อยู่ที่ไม่ถูกแคช การเรียกก็ถูกบันทึกในวินาทีเดียวกัน และงานที่ค้างอยู่ 5 งานก็ได้รัน
ดูงานที่ค้างอยู่ได้โดยกรองรายการของ WP-CLI ให้เหลือเฉพาะบรรทัดที่ [next_run_relative] เป็น [now]
wp cron event list --next_run_relative=now --fields=hook,next_run_gmt,next_run_relative+----------------------------------+---------------------+-------------------+
| hook | next_run_gmt | next_run_relative |
+----------------------------------+---------------------+-------------------+
| rocket_saas_pending_jobs | 2026-10-17 14:49:57 | now |
| action_scheduler_run_queue | 2026-10-17 14:49:57 | now |
| action_scheduler_run_queue_rucss | 2026-10-17 14:49:58 | now |
| rocket_saas_on_submit_jobs | 2026-10-17 14:49:58 | now |
| rocket_preload_process_pending | 2026-10-17 14:49:59 | now |
+----------------------------------+---------------------+-------------------+[now] คืองานที่เลยเวลาที่กำหนดไปแล้ว และคำสั่งแสดงรายการนี้ก็โหลด WordPress ด้วย ถ้ามีงานค้างอยู่ ทันทีที่คำสั่งจบก็จะเรียก [wp-cron.php] ถ้ารันคำสั่งเดิมซ้ำทันที งานที่เพิ่งเห็นจะหายไปจากรายการแล้ว
ถ้าต้องการเคลียร์งานที่ค้างก่อนแก้ต้นเหตุ ให้ใช้ WP-CLI รันเฉพาะงานที่เลยกำหนดแล้วทันที
wp cron event run --due-nowExecuted the cron event 'rocket_saas_pending_jobs' in 0.005s.
Executed the cron event 'action_scheduler_run_queue' in 0.006s.
Executed the cron event 'action_scheduler_run_queue_rucss' in 0.006s.
Executed the cron event 'rocket_saas_on_submit_jobs' in 0.005s.
Executed the cron event 'rocket_preload_process_pending' in 0.007s.
Success: Executed a total of 5 cron events.คำสั่งนี้รันงานภายในเซิร์ฟเวอร์โดยไม่ต้องมีคำขอ HTTP ถ้าต้องการให้ประมวลผลตามรอบที่กำหนดโดยไม่ขึ้นกับการเข้าชม ให้ลงทะเบียนคำสั่งเดียวกันไว้ใน Cron ของระบบ
2️⃣ เมื่อเปิดแค่ DISABLE_WP_CRON แต่ไม่มี Cron ของระบบ
ถ้าตั้ง [DISABLE_WP_CRON] เป็น true ต่อให้มีคำขอหน้าเว็บเข้ามา WP-Cron ก็จะไม่ตรวจงานที่ต้องทำ เอกสารทางการก็แนะนำให้ลงทะเบียนกับตัวตั้งเวลางานของระบบก่อน แล้วจึงใส่ค่าคงที่นี้ ถ้าใส่แค่ค่าคงที่โดยไม่ลงทะเบียน ก็จะไม่มีที่ไหนรันงานที่ตั้งเวลาไว้
เมื่อใส่ค่าคงที่ไว้ โพสต์ที่ตั้งเวลาไว้อีกราว 1 นาทีข้างหน้ายังคงเป็น [ตั้งเวลาไว้] แม้เลยเวลาแล้ว และช่องวันที่ในรายการโพสต์แสดง [ตารางเวลาผิดพลาด] ระหว่างนั้นไม่มีการเรียก [wp-cron.php] ถูกบันทึกเลยสักครั้ง
ตรวจได้ว่าค่าคงที่นี้เปิดอยู่หรือไม่ด้วย [wp cron test]
wp cron testError: The DISABLE_WP_CRON constant is set to true. WP-Cron spawning is disabled.ถ้าเจอข้อผิดพลาดนี้ ให้ตรวจว่าใน Cron ของระบบมีบรรทัดที่เรียก [wp-cron.php] หรือรัน [wp cron event run] หรือไม่ ถ้า crontab ของบัญชีเว็บไซต์ว่างอยู่ จะแสดงตามด้านล่าง
crontab -lno crontab for exampleถ้าไม่มีบรรทัดนั้น ให้ลงทะเบียน Cron ของระบบ แต่ถ้าสภาพแวดล้อมลงทะเบียนไม่ได้ ให้ลบบรรทัด [DISABLE_WP_CRON] แล้วกลับไปใช้ WP-Cron
3️⃣ เมื่อคำขอ loopback ของเซิร์ฟเวอร์ถูกบล็อก
เมื่อมีงานต้องทำ WP-Cron จะให้เซิร์ฟเวอร์ส่งคำขอไปยัง [wp-cron.php] ที่ที่อยู่เว็บไซต์ของตัวเองเพื่อรันงาน คำขอนี้คือคำขอ loopback ถ้ามีกฎความปลอดภัยที่บล็อก [wp-cron.php] คำขอ loopback จะได้ 403 กลับมา และงานจะไม่ถูกรัน
บนเซิร์ฟเวอร์ที่ใช้ Nginx กับ Apache เมื่อจำกัดให้ [wp-cron.php] เปิดได้จาก 127.0.0.1 เท่านั้น คำขอ loopback ก็ถูกบล็อกด้วย 403 เพราะคำขอที่เซิร์ฟเวอร์ส่งไปยังโดเมนของตัวเองจะเข้ามาทาง IP สาธารณะ และ [wp cron test] ก็คืนรหัสสถานะเดียวกัน
wp cron testError: WP-Cron spawn returned HTTP status code: 403 Forbiddenเมื่องานค้างเกิน 5 นาทีแล้วเปิดหน้า [สุขภาพเว็บ] ใน [การปรับปรุงที่แนะนำ] จะแสดงทั้งคำเตือน loopback และงานที่ตั้งเวลาไว้ล้มเหลวพร้อมกัน

พอลบกฎออก [wp cron test] ก็กลับมาสำเร็จอีกครั้ง ถ้าต้องคงกฎไว้ ให้รันด้วย WP-CLI จาก Cron ของระบบ การรันด้วย WP-CLI ไม่ผ่านคำขอ HTTP งานที่ค้างจึงถูกประมวลผลได้แม้กฎเดิมยังอยู่
🔢 FAQ & เนื้อหาแนะนำ






ℹ️ ประกาศเรื่องลิงก์แอฟฟิลิเอต
เนื้อหาของเว็บไซต์นี้มีลิงก์แอฟฟิลิเอต หากผู้เข้าชมซื้อสินค้าหรือบริการผ่านลิงก์เหล่านี้ เว็บไซต์นี้จะได้รับค่าคอมมิชชันจากผู้ขาย ในกระบวนการนี้ ราคาที่ผู้ซื้อจ่าย(ราคาจะลดลงเมื่อมีโปรโมชัน↓)จะไม่สูงขึ้นแต่อย่างใด ราคา ส่วนลด และข้อมูลสต็อกที่แสดงเป็นข้อมูล ณ เวลาที่เขียนและอาจต่างจากความเป็นจริง โปรดตรวจสอบกับผู้ขายอีกครั้งก่อนซื้อ การเลือกและการประเมินสินค้าเขียนตามเกณฑ์ของเราเอง และการได้รับค่าคอมมิชชันหรือไม่ไม่มีผลต่อลำดับการแนะนำหรือเนื้อหาการประเมิน