วิธีซ่อนแถบผู้ดูแลระบบสำหรับลูกค้า WooCommerce หรือตามบทบาทของผู้ใช้
เผยแพร่แล้ว: 2020-02-23สิ่งสำคัญคือต้องซ่อนแถบผู้ดูแลระบบใน WooCommerce จากสมาชิก ลูกค้า และผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบเพื่อหลีกเลี่ยงการเข้าถึงแดชบอร์ด WordPress มีวิธีซ่อนแถบผู้ดูแลระบบของ WordPress ตามที่เน้นในบทช่วยสอนนี้ – วิธีซ่อนแถบผู้ดูแลระบบใน WordPress เทคนิคเดียวกันนี้สามารถใช้ได้ในไซต์ WooCommerce แต่มีเงื่อนไขบางประการสำหรับแต่ละกรณี
ซ่อนแถบผู้ดูแลระบบสำหรับตัวเลือกผู้ดูแลระบบ WooCommerce
หากต้องการซ่อนแถบผู้ดูแลระบบสำหรับผู้ดูแลระบบ อาจมีปลั๊กอินบางตัวที่สามารถช่วยและจะทำงานกับ WooCommerce ได้เช่นกัน
ก่อนที่คุณจะใช้ปลั๊กอิน คุณควรลองใช้ตัวเลือกด่วนนี้ในแดชบอร์ดผู้ดูแลระบบ WordPress ก่อน ตัวเลือกนี้ใช้งานได้ดีสำหรับไซต์ WooCommerce เช่นกัน ไม่มีอะไรแตกต่างกัน
ไปที่การตั้งค่าโปรไฟล์ผู้ใช้ของผู้ดูแลระบบและเลือกตัวเลือกนี้เพื่อซ่อนแถบผู้ดูแลระบบสำหรับผู้ดูแลระบบเมื่อดูไซต์
ยกเลิกการเลือกตัวเลือกนี้และบันทึกการตั้งค่า จากนั้นไปที่ส่วนหน้าเพื่อดูว่าแถบผู้ดูแลระบบถูกซ่อนไว้หรือไม่ ดังที่คุณเห็นในภาพด้านล่างแถบผู้ดูแลระบบจะถูกซ่อนสำหรับผู้ใช้ที่เป็นผู้ดูแลระบบเมื่อดูไซต์
นี่เป็นวิธีสำคัญในการดูว่าเว็บไซต์ของคุณมีลักษณะอย่างไรเมื่อคุณไม่ได้เข้าสู่ระบบ
นอกจากนี้ยังช่วยเมื่อคุณพยายามดีบักปัญหาธีม WooCommerce ที่เกี่ยวข้องกับการแสดงส่วนหัว
WooCommerce ซ่อนตัวเลือกบาร์โค้ดของผู้ดูแลระบบ
ในการใช้งานแบบเดียวกันสำหรับลูกค้า WooCommerce และสมาชิก เราจำเป็นต้องใช้ตัวกรอง 'show_admin_bar'
เพื่อคืนค่าเท็จที่เราซ่อนแถบผู้ดูแลระบบ
คุณสามารถใช้ตะขอนี้ได้หลายวิธี และยังมีฟังก์ชันชื่อเดียวกันที่ทำงานเหมือนกัน
ฟังก์ชัน show_admin_bar( bool $show )
รับหนึ่งพารามิเตอร์ที่เป็น Boolean
( True หรือ False ) และสามารถใช้ได้ดังนี้:
show_admin_bar( เท็จ );
รหัสนี้เมื่อเพิ่มลงในไฟล์ functions.php ของธีมของคุณแล้ว จะซ่อนแถบผู้ดูแลระบบ ฉันได้ทดสอบกับธีมหน้าร้าน WooCommerce แล้วและทำงานได้อย่างสมบูรณ์โดยซ่อนแถบผู้ดูแลระบบ
คุณสามารถปรับปรุงฟังก์ชันนี้เพิ่มเติมและเพิ่มการทดสอบแบบมีเงื่อนไขซึ่งคุณอนุญาตให้ผู้ดูแลระบบดูแถบผู้ดูแลระบบในขณะที่ลูกค้าไม่ควรดู
ในกรณีนี้ คุณจะต้องทดสอบตามเงื่อนไขกับบทบาทลูกค้าหรือบทบาทอื่นๆ บนไซต์ของคุณที่คุณต้องการซ่อนแถบผู้ดูแลระบบ
คุณสามารถรับบทบาทที่มีอยู่ในไซต์ WordPress ของคุณได้จาก เพิ่มผู้ใช้ใหม่ และตัวเลือกสุดท้ายมีดรอปดาวน์บทบาท:
เพื่อให้ได้บทบาทผู้ใช้ปัจจุบัน ฉันเขียนบทช่วยสอนเกี่ยวกับวิธีการ รับบทบาทปัจจุบันใน WordPress และคุณสามารถใช้ในกรณีเพื่อรับบทบาทผู้ใช้ของลูกค้าและตั้งค่า show_admin_bar()
เป็นเท็จ
ในกรณีนี้ ต่อไปนี้คือรหัสที่คุณสามารถใช้เพื่อรับบทบาทผู้ใช้ปัจจุบันและตรวจสอบว่าบทบาทของผู้ใช้เป็นลูกค้าตามเงื่อนไขหรือไม่
รหัสนี้ที่ฉันแชร์ในบทช่วยสอนเกี่ยวกับ วิธีรับบทบาทผู้ใช้ปัจจุบันใน WordPress และเราสามารถนำไปใช้ใหม่ได้ในกรณีนี้:
add_action( 'wp_head', 'njengah_get_current_user_role'); ฟังก์ชัน njengah_get_current_user_role () { if( is_user_logged_in() ) { // ตรวจสอบว่ามีผู้ใช้ที่ล็อกอินอยู่หรือไม่ $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท // คืนค่าบทบาท $; // ส่งคืนบทบาทสำหรับผู้ใช้ปัจจุบัน // ทดสอบด้วย print_r print('<pre>'); print_r( $บทบาท); พิมพ์('</pre>'); } อื่น { ส่งคืนอาร์เรย์ (); // หากไม่มีผู้ใช้ที่ล็อกอินจะส่งคืนอาร์เรย์ว่าง } }
เมื่อคุณทดสอบโค้ดนี้โดยเพิ่มไปที่ functions.php คุณจะเห็นบทบาทของผู้ใช้ปัจจุบันที่แสดงอยู่ในอาร์เรย์ดังที่แสดงในภาพด้านล่าง:
เราสามารถรับบทบาทผู้ใช้นี้จากอาร์เรย์โดยใช้ key [0]
และเมื่อเราแก้ไขโค้ดเล็กน้อยและพิมพ์บทบาทของผู้ใช้ เราควรเห็นบทบาทของผู้ใช้พิมพ์ออกมาดังในโค้ดที่แก้ไขต่อไปนี้:
add_action( 'wp_head', 'njengah_get_current_user_role_print'); ฟังก์ชัน njengah_get_current_user_role_print () { if( is_user_logged_in() ) { // ตรวจสอบว่ามีผู้ใช้ที่ล็อกอินอยู่หรือไม่ $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท เสียงสะท้อน $roles[0]; } อื่น { ส่งคืนอาร์เรย์ (); // หากไม่มีผู้ใช้ที่ล็อกอินจะส่งคืนอาร์เรย์ว่าง } }
เนื่องจากเราได้รับบทบาทผู้ใช้เรียบร้อยแล้ว เราจึงสามารถใช้ใน show_admin_bar()
แบบมีเงื่อนไขเพื่อซ่อนแถบผู้ดูแลระบบสำหรับบทบาทของผู้ใช้เฉพาะซึ่งสามารถมีบทบาทใดก็ได้
สำหรับภาพประกอบ ตอนนี้เราซ่อนแถบผู้ดูแลระบบสำหรับบทบาทผู้ดูแลระบบโดยใช้รหัสด้านล่าง:
add_action( 'wp_head', 'njengah_hide_admin_bar_for_administrator'); ฟังก์ชัน njengah_hide_admin_bar_for_administrator () { if( is_user_logged_in() ) { // ตรวจสอบว่ามีผู้ใช้ที่ล็อกอินอยู่หรือไม่ $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท if( $roles[0] == 'administrator'){ //ตรวจสอบบทบาทที่นี่ คุณสามารถแทนที่ด้วยบทบาทผู้ใช้อื่นๆ ตัวอย่าง 'ลูกค้า' บรรณาธิการ ฯลฯ เสียงสะท้อน $roles[0]; //พิมพ์บทบาทไปยังหน้าจอเพื่อวัตถุประสงค์ในการสาธิต (ควรถูกลบออกในเวอร์ชันที่ใช้งานจริง) show_admin_bar( เท็จ ); // ซ่อนบทบาทสำหรับเงื่อนไขนี้ } } อื่น { ส่งคืนอาร์เรย์ (); // หากไม่มีผู้ใช้ที่ล็อกอินจะส่งคืนอาร์เรย์ว่าง } }
เมื่อคุณเพิ่มรหัสนี้ลงในไฟล์ functions.php คุณจะเห็นบทบาทผู้ดูแลระบบปรากฏบนหน้าจอเหมือนเมื่อก่อน และแถบผู้ดูแลระบบถูกซ่อนตามเงื่อนไข
คุณสามารถแทนที่บทบาทผู้ดูแลระบบนี้ด้วยลูกค้า และคุณยังสามารถเพิ่มการทดสอบตามเงื่อนไขหลายอย่างในเงื่อนไขดังต่อไปนี้:
add_action( 'wp_head', 'njengah_hide_admin_bar_for_customer'); ฟังก์ชัน njengah_hide_admin_bar_for_administrator () { if( is_user_logged_in() ) { // ตรวจสอบว่ามีผู้ใช้ที่ล็อกอินอยู่หรือไม่ $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท if( $roles[0] == 'customer'){ //ตรวจสอบบทบาทที่นี่ คุณสามารถแทนที่ด้วยบทบาทผู้ใช้อื่นๆ ตัวอย่าง 'ลูกค้า' บรรณาธิการ ฯลฯ เสียงสะท้อน $roles[0]; //พิมพ์บทบาทไปยังหน้าจอเพื่อวัตถุประสงค์ในการสาธิต (ควรถูกลบออกในเวอร์ชันที่ใช้งานจริง) show_admin_bar( เท็จ ); // ซ่อนบทบาทสำหรับเงื่อนไขนี้ } } อื่น { ส่งคืนอาร์เรย์ (); // หากไม่มีผู้ใช้ที่ล็อกอินจะส่งคืนอาร์เรย์ว่าง } }
ในกรณีของผู้ดูแลระบบเมื่อคุณทดสอบ คุณควรเห็นชื่อของบทบาทที่แสดงเป็นลูกค้าและแถบผู้ดูแลระบบที่ซ่อนอยู่
ซ่อนแถบผู้ดูแลระบบตามความสามารถของผู้ใช้ปัจจุบัน
วิธีอื่นในการซ่อนแถบผู้ดูแลระบบจากผู้ใช้ทุกคนคาดว่าผู้ดูแลระบบ คุณสามารถเพิ่มโค้ดต่อไปนี้ใน functions.php :
if ( ! current_user_can ( 'manage_options' ) ) { show_admin_bar( เท็จ ); }
รหัสนี้ใช้การทดสอบแบบมีเงื่อนไข current_user_can()
และคุณสามารถแก้ไขให้เป็นสิทธิ์ที่แตกต่างกัน เช่น สำหรับลูกค้าที่ควรจะเป็นดังนี้:
if ( ! current_user_can ( 'อ่าน' ) ) { show_admin_bar( เท็จ ); }
ซึ่งเทียบเท่ากับบทบาทของสมาชิกใน WordPress WooCommerce สร้างสองบทบาท – ผู้จัดการลูกค้าและร้านค้า ลูกค้ามีค่าเท่ากับผู้สมัครสมาชิก ดังนั้นในกรณีนี้ ความสามารถของผู้สมัครสมาชิกคือ ' อ่าน '
คุณสามารถตรวจสอบความสามารถทั้งหมดของผู้ใช้ WordPress ได้จากเอกสารประกอบ - บทบาทและความสามารถ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับบทบาท WooCommerce จากเอกสารบทบาทและความสามารถของ WooCommerce
การใช้รหัสเพื่อซ่อนแถบผู้ดูแลระบบใน WooCommerce
ในโค้ดด้านบน เราได้อธิบายรายละเอียดว่าทุกอย่างทำงานอย่างไรเพื่อซ่อนแถบผู้ดูแลระบบใน WooCommerce
หากคุณสังเกตว่าฉันใช้ add_action()
ที่ต่อกับ 'wp_head'
เพื่อวัตถุประสงค์ในการทดสอบ แต่ในการใช้งานจริง เราจำเป็นต้องใช้ตัวกรองแทน action hook
ในกรณีนี้ ตัวกรองควรเชื่อมต่อกับ 'show_admin_bar'
และโค้ดควรเป็นดังนี้:
add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_for_customers', 20, 1 ); ฟังก์ชั่น njengah_hide_admin_bar_for_customers($ แสดง){ $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน $roles = ( array ) $user->บทบาท; //รับบทบาท if( $roles[0] == 'administator'){ // ทดสอบบทบาทผู้ใช้ที่นี่ตามคีย์อาร์เรย์ [0] [1] และค่าที่เกี่ยวข้อง $show = เท็จ; ส่งคืน $ แสดง; } }
คุณยังสามารถใช้ความสามารถของแต่ละบทบาทเพื่อซ่อนแถบผู้ดูแลระบบ และตัวกรองจะเป็นดังนี้:
/** * ซ่อนแถบผู้ดูแลระบบสำหรับบทบาทอื่น ๆ คาดว่าผู้ดูแลระบบ */ add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_others_expect_admin', 20, 1 ); ฟังก์ชั่น njengah_hide_admin_bar_others_expect_admin ( $show ) { if ( ! current_user_can( 'administrator' ) ) $show = false; ส่งคืน $ แสดง; }
เพิ่มโค้ดนี้ใน functions.php เพื่อซ่อนแถบผู้ดูแลระบบจากบทบาทอื่นๆ ที่ผู้ดูแลระบบคาดหวัง
ความคิดสุดท้าย
เราได้สรุปวิธีการซ่อนแถบผู้ดูแลระบบใน WordPress หรือ WooCommerce โดยใช้วิธีการต่างๆ คุณสามารถเลือกวิธีใดวิธีหนึ่งเหล่านี้และเพิ่มโค้ดลงใน functions.php ของคุณ คุณยังสามารถแก้ไขโค้ดเพิ่มเติมเพื่อให้เหมาะสมกับสถานการณ์ต่างๆ เช่น ซ่อนแถบผู้ดูแลระบบจากบทบาทผู้ใช้ที่กำหนดเองของ WordPress