วิธีซ่อนผลิตภัณฑ์ใน WooCommerce หรือซ่อนผลิตภัณฑ์ตามหมวดหมู่หรือบทบาท
เผยแพร่แล้ว: 2020-02-24มีหลายวิธีที่คุณสามารถใช้เพื่อซ่อนผลิตภัณฑ์เฉพาะใน WooCommerce และในโพสต์นี้ เราจะสำรวจแต่ละวิธีเหล่านี้ในการซ่อนผลิตภัณฑ์ใน WooCommerce มีสาเหตุหลายประการที่คุณควรพิจารณาที่จะซ่อนผลิตภัณฑ์จากร้านค้า WooCommerce แต่ด้านบนสุดของรายการคือเมื่อสินค้าหมดหรือเมื่อสินค้าถูกสงวนไว้สำหรับ ลูกค้าหรือบทบาทของผู้ใช้ที่เฉพาะเจาะจง
ซ่อนผลิตภัณฑ์ WooCommerce
หากคุณต้องการซ่อนสินค้าที่หมดสต็อก ก่อนอื่นคุณควรพิจารณาเพิ่มป้ายกำกับสินค้าหมดในผลิตภัณฑ์แทนการซ่อนสินค้า
อย่างไรก็ตาม หากคุณยังคงต้องการซ่อนผลิตภัณฑ์ที่ไม่มีสต็อกหรือผลิตภัณฑ์ WooCommerce อื่น ๆ ฉันจะแบ่งปันในโพสต์นี้ว่าคุณสามารถซ่อนผลิตภัณฑ์ตาม ID ชื่อหรือตามหมวดหมู่ได้อย่างไร
ซ่อนผลิตภัณฑ์ WooCommerce โดยใช้ตัวเลือก
โดยค่าเริ่มต้น WooCommerce มาพร้อมกับตัวเลือกที่ยอดเยี่ยมที่อนุญาตให้ผู้ใช้ควบคุมการมองเห็นผลิตภัณฑ์
คุณสามารถสร้างผลิตภัณฑ์ที่ซ่อนอยู่ใน WooCommerce โดยการควบคุมตัวเลือกการมองเห็นก่อนที่คุณจะเผยแพร่ภาพ ในการซ่อนผลิตภัณฑ์ใน WooCommerce โดยใช้การมองเห็น คุณต้องทำตามขั้นตอนต่อไปนี้:
- เข้าสู่ระบบแดชบอร์ดไซต์ WordPress ของคุณ
- คลิกที่เมนูผลิตภัณฑ์ตามที่แสดงในภาพด้านล่าง เพื่อให้คุณเข้าถึงผลิตภัณฑ์ที่คุณต้องการซ่อนจากผู้ใช้โดยใช้ตัวเลือกการมองเห็น
- เลือกผลิตภัณฑ์จากรายการผลิตภัณฑ์ทั้งหมดที่คุณต้องการซ่อนตามที่แสดงด้านล่างและคลิกที่แก้ไขเพื่อเข้าสู่หน้าจอแก้ไขผลิตภัณฑ์:
- ในหน้าจอแก้ไขผลิตภัณฑ์ทางด้านขวาใต้เมตาบ็อกซ์เผยแพร่ด้านล่าง จะมีตัวเลือกชื่อ 'การมองเห็นแคตตาล็อก' คลิกที่ลิงก์นี้และรายการดรอปดาวน์พร้อมตัวเลือกจะปรากฏขึ้น และตัวเลือกสุดท้ายคือซ่อน
เมื่อคุณเลือกตัวเลือกวิทยุนี้และคลิกตกลง จากนั้นอัปเดตโพสต์ สินค้าจะถูกซ่อนจากแค็ตตาล็อกร้านค้า ดังที่แสดงไว้ในสามขั้นตอนเหล่านี้ (1,2,3) : - เมื่อคุณบันทึกตัวเลือกเหล่านี้และอัปเดตโพสต์ การเปิดเผยผลิตภัณฑ์จะถูกตั้งค่าเป็นซ่อนดังที่คุณเห็นในส่วนหน้าของร้านค้า:
- หากคุณตรวจสอบตัวเลือกการเปิดเผยแคตตาล็อกที่ส่วนหลังในหน้าจอแก้ไขผลิตภัณฑ์ คุณจะเห็นว่ามีการอัปเดตเป็นซ่อนเมื่อโพสต์ได้รับการอัปเดต:
นี่เป็นวิธีที่รวดเร็วที่สุดในการซ่อนผลิตภัณฑ์ WooCommerce จากแคตตาล็อกร้านค้า มีวิธีอื่นๆ ที่คุณสามารถใช้ได้ เช่น การเพิ่มโค้ดในธีมย่อย ให้เราสำรวจตัวเลือกเพิ่มเติมที่คุณสามารถใช้เพื่อซ่อนผลิตภัณฑ์ใน WooCommerce
Woocommerce ซ่อนผลิตภัณฑ์หมวดหมู่เฉพาะจากหน้าร้านค้า
หากคุณต้องการซ่อนสินค้าเฉพาะจากหน้าร้านค้าใน WooCommerce คุณสามารถดำเนินการได้โดยใช้เบ็ดการดำเนินการที่กำหนดเป้าหมายไปยังข้อความค้นหาของหน้าร้านค้า 'woocommerce_product_query'
ฟังก์ชันเรียกกลับควรใช้ $tax_query เพื่อจำกัดเงื่อนไขที่เกี่ยวข้องกับผลิตภัณฑ์ที่คุณต้องการซ่อน
ในกรณีนี้ คีย์เงื่อนไขในอาร์เรย์ $tax_query จะเทียบเท่ากับหมวดหมู่/แท็ก ตามที่ฉันอธิบายในโพสต์เกี่ยวกับวิธีรับหมวดหมู่ผลิตภัณฑ์ WooCommerce ปัจจุบัน
สมมติว่าเราต้องการซ่อนผลิตภัณฑ์นี้จากหมวดหมู่ 'ชิ้นส่วนรถยนต์'
เราสามารถใช้ข้อมูลโค้ดต่อไปนี้ที่เพิ่มลงในไฟล์ functions.php เพื่อซ่อนผลิตภัณฑ์จากหน้าร้านค้า:
/** * ซ่อนผลิตภัณฑ์ WooCommerce ตามหมวดหมู่จากหน้าร้านค้า * * @param $q */ add_action( 'woocommerce_product_query', 'njengah_hide_product_by_category_shop_page' ); ฟังก์ชั่น njengah_hide_product_by_category_shop_page ( $q ) { $tax_query = (อาร์เรย์) $q->get( 'tax_query' ); $tax_query[] = อาร์เรย์ ( 'taxonomy' => 'product_cat', 'field' => 'กระสุน', 'terms' => array( 'uncategorised','auto-parts'), // ไม่แสดงสินค้าในหมวด 'auto parts' บนหน้าร้านค้า 'ตัวดำเนินการ' => 'ไม่อยู่ใน' ); $q->set( 'tax_query', $tax_query ); }
เพิ่มโค้ดนี้ในฟังก์ชันธีม และคุณสามารถแทนที่หมวดหมู่ 'ชิ้นส่วนรถยนต์' ด้วยหมวดหมู่อื่นๆ ที่คุณต้องการซ่อนผลิตภัณฑ์ และสิ่งนี้จะซ่อนผลิตภัณฑ์จากหมวดหมู่นั้นในหน้าร้านค้าอย่างมีประสิทธิภาพดังที่แสดงด้านล่าง :
WooCommerce ซ่อนผลิตภัณฑ์เว้นแต่จะเข้าสู่ระบบ
อีกวิธีหนึ่งในการซ่อนผลิตภัณฑ์ใน WooCommerce เกี่ยวข้องกับการจำกัดการมองเห็นผลิตภัณฑ์ตามสถานะของผู้ใช้ไม่ว่าจะเข้าสู่ระบบหรือไม่ก็ตาม
ขั้นตอนแรกคือการตรวจสอบว่าผู้ใช้เข้าสู่ระบบอยู่หรือไม่ ฉันอธิบายโดยละเอียดที่นี่ – วิธีตรวจสอบว่าผู้ใช้เข้าสู่ระบบใน WordPress หรือไม่
เราจะใช้รหัสนี้เพื่อตรวจสอบสถานะการเข้าสู่ระบบ จากนั้นรวมกับแบบสอบถามเพื่อซ่อนผลิตภัณฑ์ WooCommerce ตามเงื่อนไขขึ้นอยู่กับสถานะการเข้าสู่ระบบของผู้ใช้
รหัสควรเป็นดังนี้:
** * ซ่อนผลิตภัณฑ์ WooCommerce หากผู้ใช้ไม่ได้เข้าสู่ระบบ * * @param $query */ ฟังก์ชั่น njengah_hide_product_if_user_not_logged ( $query ) { if ( $query->is_main_query() && is_woocommerce() && !is_user_logged_in() ) { $tax_query = อาร์เรย์ ( อาร์เรย์ ( 'taxonomy' => 'product_cat', 'field' => 'กระสุน', 'terms' => array( 'uncategorised','auto-parts'), // ไม่แสดงสินค้าในหมวด 'auto parts' บนหน้าร้านค้า 'operator'=> 'NOT IN' // ไม่รวม ) ); $query->set('tax_query', $tax_query); } } add_action( 'pre_get_posts', 'njengah_hide_product_if_user_not_logged' );
อย่างที่คุณเห็น เรากำลังตรวจสอบตามเงื่อนไขว่าผู้ใช้เข้าสู่ระบบโดยใช้ฟังก์ชัน is_user_logged_in() หรือไม่ ก่อนที่เราจะสามารถดำเนินการค้นหาได้
Woocommerce ซ่อนผลิตภัณฑ์ตามบทบาทผู้ใช้
คุณยังสามารถซ่อนผลิตภัณฑ์ตามบทบาทของผู้ใช้ ก่อนอื่นคุณต้องรับผู้ใช้ที่เข้าสู่ระบบในปัจจุบันและบทบาทของผู้ใช้ตามที่อธิบายไว้ในบทแนะนำก่อนหน้านี้เกี่ยวกับวิธีรับบทบาทผู้ใช้ ปัจจุบัน ใน WordPress รหัสนี้เพื่อรับบทบาทของผู้ใช้มีดังต่อไปนี้:
$ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท $roles[0] //บทบาทของผู้ใช้ปัจจุบัน
เราควรรวมรหัสนี้กับการกระทำ pre_get_posts ก่อนหน้า และรหัสที่จะซ่อนผลิตภัณฑ์สำหรับผู้ใช้ทุกคนคาดว่าผู้ดูแลระบบจะเป็นดังนี้:
/** * ซ่อนผลิตภัณฑ์ WooCommerce ตามบทบาทของผู้ใช้เช่นในกรณีนี้ผู้ดูแลระบบเท่านั้นที่สามารถเห็นผลิตภัณฑ์นี้ * * @param $query */ ฟังก์ชั่น njengah_hide_product_by_user_role ($query) { $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท if ( $query->is_main_query() && is_woocommerce() && $roles[0] != 'administrator' ) { $tax_query = อาร์เรย์ ( อาร์เรย์ ( 'taxonomy' => 'product_cat', 'field' => 'กระสุน', 'terms' => array( 'uncategorised','auto-parts'), // ไม่แสดงสินค้าในหมวด 'auto parts' บนหน้าร้านค้า 'operator'=> 'NOT IN' // ไม่รวม ) ); $query->set('tax_query', $tax_query); } } add_action( 'pre_get_posts', 'njengah_hide_product_by_user_role' );
ดังที่คุณเห็นในโค้ดบรรทัดนี้ซึ่งเรากำลังตรวจสอบข้อความค้นหาแบบมีเงื่อนไข ฉันได้แนะนำเงื่อนไขเพื่อตรวจสอบว่าบทบาทของผู้ใช้ไม่ใช่ผู้ดูแลระบบ – $roles[0] != 'administrator' จากนั้นเราจะดำเนินการค้นหาต่อไป นี่คือวิธีที่คุณซ่อนผลิตภัณฑ์ WooCommerce ตามบทบาทของผู้ใช้
คุณสามารถอธิบายตัวอย่างนี้เพื่อให้เหมาะกับความต้องการเฉพาะของคุณ และคุณยังสามารถรวมกรณีเหล่านี้ทั้งหมดเพื่อสร้างวิธีหนึ่งที่มีเงื่อนไขในการซ่อนผลิตภัณฑ์ WooCommerce
ความคิดสุดท้าย
ในโพสต์นี้ เราได้เน้นถึงวิธีทั่วไปสามวิธีในการซ่อนผลิตภัณฑ์ WooCommerce ที่รวมถึงการซ่อนตามบทบาทของผู้ใช้ การซ่อนผลิตภัณฑ์ เว้นแต่ผู้ใช้จะเข้าสู่ระบบและซ่อนผลิตภัณฑ์ WooCommerce โดยไม่มีเงื่อนไขใดเงื่อนไขหนึ่งเหล่านี้ เรายังสรุปวิธีที่ง่ายที่สุดในการซ่อนผลิตภัณฑ์ WooCommerce โดยใช้ตัวเลือกการมองเห็นแคตตาล็อกที่มีให้ในหน้าจอแก้ไขผลิตภัณฑ์ ฉันหวังว่าตอนนี้คุณสามารถใช้โซลูชันเหล่านี้เพื่อซ่อนผลิตภัณฑ์ WooCommerce จากร้านค้าของคุณได้อย่างง่ายดาย