Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/marketingtumtook/tumtook-all-plugin/archive/refs/heads/main.zipปลั๊กอินนี้รวมปลั๊กอิน Tumtook ทั้งหมดที่แนบมาไว้ในปลั๊กอินเดียว โดยเก็บโค้ดเดิมไว้ใน modules/ เพื่อให้ asset path, vendor, shortcode, Gutenberg block และ logic เดิมทำงานเหมือนเดิมมากที่สุด
Modules Included
- Tumtook Brand Showcase
- Tumtook Download PDF Catalog
- Tumtook Gallery
- Tumtook Dynamic Comparison Table
- Tumtook Page Article Recommendations
- Tumtook Page Card Products ทั้งหมด
- Tumtook Page Product Recommendations
- Tumtook Job Working Cards
- Tumtook Video How To Slider
- Tumtook Gallery Auto
- Tumtook Home Product Recommendations
Shortcodes Included
[tumtook_brand_showcase][tumtook_brand_showCase][tumtook_catalog code="PDF"][gallery_pdf code="PDF" text="ดาวน์โหลด PDF"][tumtook_gallery][tumtook_gallery_auto][tumtook_comparison][tumtook_recommended_articles][tumtook_product_cards][tumtook_recommended_products][tumtook_home_recommended_products][tumtook_job_working_cards][video_how_to_slider][tumtook_video_how_to_slider][tumtook_video_how_to_youtube][tumtook_video_how_to_recommended_products]
Installation
- Deactivate the old standalone Tumtook plugins first.
- Upload
tumtook-all-in-one.zipin WordPress Admin > Plugins > Add New > Upload Plugin. - Activate Tumtook All-in-One Modules.
- Keep existing shortcodes and page meta as-is. The plugin preserves the original meta keys and shortcode names.
Tumtook Brand Showcase — ดีไซน์การ์ด
เพิ่มดีไซน์รูปแนวตั้ง 4:5 มุมโค้ง พร้อมชื่อแบรนด์และคำอธิบายสีขาวซ้อนบนภาพบริเวณด้านล่างที่ไล่เฉดดำ โดยเลือกได้ผ่าน layout="cards" ส่วน shortcode เดิมยังใช้ดีไซน์รูปภาพเดิม
- ในหน้าแก้ไข Page เปิดกล่อง Tumtook Brand Showcase แล้วเลือกรูปสำหรับแต่ละ Slide (สูงสุด 6 รูป)
- กรอก ชื่อแบรนด์ (ดีไซน์การ์ด), คำอธิบายใต้ชื่อแบรนด์ (ดีไซน์การ์ด) และ Card link URL แล้วบันทึกหน้า
- คัดลอก shortcode ในกล่องตั้งค่าไปวางในเนื้อหาหรือ widget Shortcode ของ Elementor
[tumtook_brand_showcase layout="cards"]
[tumtook_brand_showcase page_id="123" layout="cards"]
[tumtook_brand_showcase page_id="123"]
ใช้ page_id เป็น ID หน้าต้นทางเมื่อต้องการแสดงในหน้าอื่น ทั้งสองดีไซน์ใช้รูปและลิงก์ชุดเดียวกัน โดยชื่อแบรนด์และคำอธิบายจะแสดงเฉพาะดีไซน์การ์ด หากไม่มีชื่อแบรนด์จะใช้ Alt text เดิมแทน และหากไม่มีคำอธิบายจะซ่อนข้อความส่วนนั้น
การ์ดที่มีลิงก์กดได้ทั้งรูป ชื่อ คำอธิบาย และพื้นที่ว่างของการ์ด เมื่อ hover เฉดดำกับข้อความจะเลื่อนขึ้นพร้อมกัน 10% ของความสูงการ์ด โดยข้อความยังเป็นสีขาว รองรับการกดด้วยคีย์บอร์ดและลดการเคลื่อนไหวตามการตั้งค่าเครื่อง การ์ดที่ไม่มีลิงก์แสดงเป็นข้อมูลธรรมดา
ดีไซน์การ์ดขยายแถบสไลด์เต็มความกว้างหน้าจอเหมือนดีไซน์ปกติ แม้วาง shortcode ใน container แบบ boxed ของ Elementor โดยหัวข้อและการ์ดแรกเริ่มตรงแนว container และปรับจำนวนการ์ดที่เห็นตามขนาดหน้าจอ เลื่อนดูรายการถัดไปได้ด้วยการลาก ปัด หรือกดลูกศร และสามารถวางสองดีไซน์ร่วมกันบนหน้าเดียวกันได้
ตรวจฝั่ง PHP ด้วย php modules/tumtook-brand-showcase/tests/smoke.php จากโฟลเดอร์ปลั๊กอิน โดยใช้ข้อมูลจำลองและไม่เชื่อมต่อฐานข้อมูล
Tumtook Page Article Recommendations
วาง [tumtook_recommended_articles] ในเนื้อหา, บล็อก Shortcode หรือ widget Shortcode ของ Elementor บนหน้าอื่นได้ทันที โมดูลจะใช้การตั้งค่าในกล่อง Card บทความ ทั้งหมด ของหน้าที่แสดงอยู่ หากยังไม่เคยบันทึกจะใช้ค่าเริ่มต้น (หัวข้อ “บทความน่าสนใจ” และบทความสูงสุด 10 รายการ) ในหน้า archive หรือ template ที่ไม่มีหน้าปัจจุบันจะใช้ค่าเริ่มต้นเช่นกัน
[tumtook_recommended_articles]
[tumtook_recommended_articles limit="6"]
[tumtook_recommended_articles page_id="123"]
[tumtook_recommended_articles post_id="123" limit="6"]
page_id: ID ของหน้าต้นทางที่ต้องการใช้การตั้งค่า เช่น หัวข้อ ข้อความปุ่ม ลิงก์ดูทั้งหมด และจำนวนบทความ กล่องตั้งค่าจะแสดง shortcode พร้อม ID ของหน้านั้นให้คัดลอกpost_id: ใช้แทนpage_idได้ และรองรับ shortcode เดิม หากระบุทั้งสองค่าจะใช้post_idที่มากกว่า 0 ก่อนlimit: จำนวนบทความ 1–10 รายการสำหรับ shortcode นั้น ไม่แก้ค่าที่บันทึกไว้ หากไม่ระบุหรือใช้0จะใช้จำนวนจากการตั้งค่า
หากปิด “เปิดใช้งาน section นี้” ในหน้าต้นทาง shortcode ที่อ้างอิงหน้านั้นจะไม่แสดงบนเว็บ วาง shortcode ซ้ำหลายตำแหน่งได้ โดยแต่ละ slider ทำงานแยกกัน ระบบยังสุ่มบทความที่เผยแพร่แล้วตามเดิม ทั้งตอนแสดงครั้งแรกและตอนโหลดรายการใหม่ผ่าน AJAX การอ้างอิงหน้าต้นทางเป็นการใช้การตั้งค่าร่วมกัน ไม่ได้ล็อกรายการบทความที่สุ่มได้
ตรวจการทำงานฝั่ง PHP ด้วย php modules/tumtook-page-article-recommendations/tests/smoke.php จากโฟลเดอร์ปลั๊กอิน ชุดทดสอบใช้ข้อมูลจำลองและไม่เชื่อมต่อฐานข้อมูล
Tumtook Home Product Recommendations
โมดูล modules/tumtook-home-product-recommendations/ ใช้รูปแบบการ์ดและ slider จาก Product Recommendations โดยเลือกหน้าที่ต้องการแสดงบน Home ได้เอง
- เปิดหน้าแก้ไข Page ที่ใช้เป็น Home แล้วหากล่อง Tumtook Home — เลือกหน้าที่แสดง
- เลือกหน้าจาก Select แล้วกด + เพิ่มหน้า เพื่อเพิ่มรายการ ใช้ปุ่ม ↑ / ↓ จัดลำดับ และ ลบ เพื่อนำรายการออก
- ตั้งหัวข้อ ข้อความปุ่ม ลิงก์ดูทั้งหมด และจำนวนการ์ดสูงสุด (
0= ทุกหน้าที่เลือก) - วาง
[tumtook_home_recommended_products]ในเนื้อหาหรือ widget Shortcode ของ Elementor แล้วบันทึกหน้า
เลือกได้เฉพาะ Page ที่เผยแพร่ ไม่มีรหัสผ่าน และไม่ใช่หน้าที่กำลังตั้งค่า การ์ดแสดงตามลำดับที่เลือก ไม่มีการสุ่มหรือเติมหน้าที่ไม่ได้เลือก หากไม่เลือกหน้า หรือปิดใช้งานส่วนนี้ จะไม่แสดงบนหน้าเว็บ
ข้อมูลการ์ดอ่านจาก Card Category ทั้งหมด ของหน้าต้นทาง (_ttpr_page_*) และรองรับข้อมูลเก่า (_ttpc_page_* สำหรับชื่อ รูป และราคา) หากไม่มีชื่อหรือรูปที่กำหนดไว้จะใช้ชื่อหน้าและ Featured Image แทน ถ้าไม่มีรูปเลยจะแสดงกรอบภาพสำรอง และถ้าไม่มีราคาจะซ่อนราคา
หากวาง shortcode ผ่าน template และต้องการระบุหน้าที่เก็บการตั้งค่า ใช้ [tumtook_home_recommended_products page_id="123"] โดยเปลี่ยน 123 เป็น ID ของหน้า Home โมดูลใช้ meta _tt_home_product_recommendations และ CSS/JS tthpr-* แยกจากโมดูลเดิม
ตรวจการทำงานฝั่ง PHP ด้วย php modules/tumtook-home-product-recommendations/tests/smoke.php จากโฟลเดอร์ปลั๊กอิน ชุดทดสอบใช้ข้อมูลจำลองและไม่เชื่อมต่อฐานข้อมูล
Tumtook Gallery Auto
โมดูล modules/tumtook-gallery-auto/ แยกจาก Tumtook Gallery สำหรับแสดงภาพแบบ Pinterest: คอลัมน์กว้างเท่ากัน สลับกรอบภาพ 16:9, 1:1 และ 5:4 อัตโนมัติ และเติมภาพถัดไปในคอลัมน์ที่สั้นที่สุด โดยครอปภาพกึ่งกลางให้เต็มกรอบ ระบบคำนวณใหม่เมื่อพื้นที่แสดงผลเปลี่ยน รวมถึง container ใน page builder และคงสัดส่วนของการ์ดแต่ละใบไว้ระหว่างโหลดรูปและปรับหน้าจอ
- ในหน้าแก้ไข Page เปิดกล่อง Tumtook Gallery Auto แล้วตั้ง API URL, ตำแหน่งรายการรูป, Item Code Filter, ตำแหน่ง URL รูป และ Alt เช่นเดียวกับ Gallery เดิม
- หากยังไม่เคยบันทึกโมดูลใหม่ จะใช้ค่าจาก Tumtook Gallery เดิมของหน้านั้นเป็นค่าเริ่มต้น หลังบันทึกแล้วจะใช้ meta
_tumtook_gallery_auto_settingsแยกจากเดิม - วาง
[tumtook_gallery_auto]ในเนื้อหา หรือ widget Shortcode ของ page builder
[tumtook_gallery_auto]
[tumtook_gallery_auto min_width="220" gap="16" radius="16"]
[tumtook_gallery_auto columns="6" gap="12" limit="30"]
columns: ค่าเริ่มต้นautoคำนวณตามความกว้างของ container หรือระบุ 1–12 เป็นจำนวนคอลัมน์สูงสุดที่ต้องการ โดยลดลงเมื่อพื้นที่แคบmin_width: ความกว้างขั้นต่ำต่อคอลัมน์ในโหมดอัตโนมัติ ค่าเริ่มต้น 220px รองรับ 140–640px พื้นที่กว้างไม่เกิน 600px ใช้ 2 คอลัมน์เมื่อมีพื้นที่พอ หรือ 1 คอลัมน์เมื่อแคบมากgap: ระยะห่างแนวนอนและแนวตั้ง ค่าเริ่มต้น 16px รองรับ 0–64pxradius: ความโค้งมุมภาพ ค่าเริ่มต้น 16px รองรับ 0–100pxlimit: จำนวนรูปสูงสุด ค่าเริ่มต้นและเพดาน 50 รูป ใช้การแบ่ง Item Code สูงสุด 3 โค้ดแบบเดียวกับ Gallery เดิมendpoint: ใช้แทน API URL ของหน้านี้เฉพาะ shortcode นั้น โดยปกติให้กำหนด API URL ในกล่องตั้งค่าเพื่อเก็บ URL ไว้ฝั่งเซิร์ฟเวอร์
รองรับ lazy loading โดยโหลดภาพล่วงหน้าอย่างน้อย 1,000px ก่อนเลื่อนถึง พร้อมดึงข้อมูลครั้งละ 24 รูป ภาพสองแถวแรกใน Gallery ที่อยู่บนหน้าจอเริ่มโหลดทันที และให้ความสำคัญกับแถวแรก ส่วนรูปที่อยู่ไกลยังรอโหลดเพื่อไม่แย่งแบนด์วิดท์ กรอบภาพกำหนดสัดส่วนไว้ล่วงหน้าจึงไม่ขยับระหว่างโหลด มีปุ่มลองใหม่เมื่อ API ผิดพลาด และเปิดรูปขยายเต็มภาพพร้อมปุ่มก่อนหน้า/ถัดไปและคีย์บอร์ด
ตัดรูปซ้ำทั้งก่อนแบ่งหน้าฝั่ง API และก่อนแสดงการ์ด โดยเทียบแหล่งรูปเดียวกัน รวม URL ที่ต่างเฉพาะขนาด thumbnail ของ WordPress, พารามิเตอร์ปรับขนาด, แคช หรือ signature และยังแยกรูปที่มี id/file/path ต่างกัน การตรวจนี้อาศัย URL ของไฟล์ ไม่ใช่การเปรียบเทียบภาพที่อัปโหลดเป็นคนละไฟล์
โมดูลใช้ class, CSS/JS, REST route, AJAX action และ shortcode แยกกัน สามารถวางร่วมกับ [tumtook_gallery] ได้
เมื่อโหลดรูปครบแล้ว จะแสดง fade ปิดท้ายแบบ Gallery เดิมผ่าน ttga-end-panel และใช้ fade สีขาวบนมือถือ ตั้งสีพื้นหลังท้าย Gallery ได้ในกล่อง Tumtook Gallery Auto (ค่าเริ่มต้น #f9f9f9)
ตรวจการทำงานฝั่ง PHP ด้วย php modules/tumtook-gallery-auto/tests/smoke.php จากโฟลเดอร์ปลั๊กอิน ชุดทดสอบใช้ข้อมูลจำลองและไม่เชื่อมต่อฐานข้อมูลหรือ API จริง
Tumtook Job Working Cards
ใช้ shortcode [tumtook_job_working_cards] สำหรับดึง post type งานจาก JetEngine มาแสดงเป็น card slider โดย frontend class และ slider namespace จะใช้ ttwc-* ทั้งหมด
ส่วน ttwc-price ดึงค่าจากฟิลด์ JetEngine ที่มี Name/ID เป็น salary ของแต่ละโพสต์โดยอัตโนมัติ เช่น 18,000–25,000 บาท หรือ ตามตกลง ทั้งการแสดงครั้งแรกและการโหลดใหม่ผ่าน AJAX ถ้าไม่มีค่าจะเว้นว่าง โดยไม่ดึงสถานที่ บริษัท หรือข้อความย่อมาแทน
ชื่อใน ttwc-product-title และเงินเดือนใน ttwc-price แสดงเต็มและขึ้นบรรทัดใหม่ได้โดยไม่จำกัด 2 บรรทัด การ์ดทุกใบในสไลด์ชุดเดียวกันยืดสูงเท่ากับใบที่มีเนื้อหาสูงที่สุด และวางเงินเดือนชิดด้านล่างในระดับเดียวกัน ทั้งเดสก์ท็อปและมือถือ
วิธีใช้ Shortcode
- แสดง Job Working posts ทั้งหมด:
[tumtook_job_working_cards] - ระบุ post type เอง:
[tumtook_job_working_cards post_type="job-working"] - เลือก category ด้วย slug หรือชื่อ category:
[tumtook_job_working_cards taxonomy="job-category" category="design"] - เลือกหลาย category:
[tumtook_job_working_cards taxonomy="job-category" category="design,marketing"] - เลือก category ด้วย term id:
[tumtook_job_working_cards taxonomy="job-category" category_id="12"] - จำกัดจำนวนเองเฉพาะกรณีที่ต้องการ:
[tumtook_job_working_cards limit="8"]
คำอธิบาย Attribute
post_type: slug ของ post type งาน ถ้าไม่ใส่ ระบบจะลองหาjob-working,job_working,jobworking,jobs,jobให้อัตโนมัติtaxonomy: slug ของ taxonomy ที่ใช้กรอง category เช่นjob-categorycategory: slug, ชื่อ category, หรือ id ของ term ใช้คั่นหลายค่าด้วย comma หรือขึ้นบรรทัดใหม่ได้category_id: id ของ term โดยตรง ใช้คั่นหลายค่าด้วย comma ได้limit: จำนวน card ที่ต้องการแสดง ถ้าไม่ใส่หรือปล่อยว่าง จะแสดงรายการที่ match ทั้งหมดtitle: หัวข้อ section ค่าเริ่มต้นคืองานที่น่าสนใจview_all_label: ข้อความลิงก์ดูทั้งหมด ค่าเริ่มต้นคือดูงานทั้งหมดview_all_url: URL ของลิงก์ดูทั้งหมดbutton_label: ข้อความปุ่มในการ์ด ค่าเริ่มต้นคือดูรายละเอียดinfo_meta: meta key ที่ใช้แสดงในttwc-priceค่าเริ่มต้นคือsalaryหากต้องการใช้ฟิลด์อื่นให้ระบุเอง เช่นinfo_meta="salary_range"โดยฟิลด์ที่ไม่มีค่าจะแสดงว่างbadge_meta: meta key สำหรับ badge ถ้าไม่ใส่จะใช้ term แรกจาก taxonomyimage_meta: meta key รูปภาพ ถ้าไม่ใส่จะใช้ featured image ก่อนorderby: วิธีเรียงข้อมูล รองรับrand,date,title,menu_orderinclude: post id ที่ต้องการแสดงเท่านั้น คั่นด้วย comma ได้exclude: post id ที่ไม่ต้องการแสดง คั่นด้วย comma ได้
ถ้าไม่ใส่ category และ category_id ระบบจะแสดงทุก category และถ้าไม่ใส่ limit จะไม่มีการจำกัดจำนวน card.
Important
Do not activate this combined plugin together with the old standalone versions. If both are active, PHP class/function conflicts may occur. The loader includes basic guard checks and admin notices, but the cleanest setup is to use only this combined plugin.
Version 1.0.1
- Fixed Tumtook catalog image rendering by adding a same-origin WordPress image proxy fallback.
- Catalog images now use server-side cached image URLs first and fall back to the original remote image URL if needed.
- Added support for multiple possible API image URL fields such as
fileUrl,imageUrl,url, andpath.