WooCommerce Redirect หลังจากออกจากระบบ [สุดยอดคู่มือ]

เผยแพร่แล้ว: 2022-01-10

WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบ WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบโดยใช้รหัสในโพสต์นี้เพื่อเปลี่ยนเส้นทางลูกค้า WooCommerce ไปยังหน้าหรือโพสต์เฉพาะหรือ URL ภายนอกหลังจากออกจากระบบ ในบทความนี้ ฉันต้องการสาธิตวิธีสร้างการเปลี่ยนเส้นทางด้วยโค้ด หากคุณพลาดบทช่วยสอนก่อนหน้านี้ ฉันจะแสดงวิธีสร้างรหัสย่อหน้าออกจากระบบ WooCommerce ซึ่งสามารถเป็นจุดเริ่มต้นที่ดีก่อนที่คุณจะสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce

มีปลั๊กอินที่สามารถใช้เพื่อสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce ได้ แต่ไม่ดีเท่าที่ควร ฉันกำลังดำเนินการแก้ไขให้ดีขึ้นซึ่งจะช่วยให้คุณจัดการการเปลี่ยนเส้นทางของ WooCommerce หลังจากออกจากระบบ เช่นเดียวกับปลั๊กอินที่ฉันสร้างขึ้นสำหรับ WooCommerce Logout After Checkout

หากคุณต้องการเป็นผู้นำไปใช้ก่อนใคร โปรดติดต่อกับฉัน เพื่อที่เราจะได้เพิ่มคุณลงในรายการ เนื่องจากปลั๊กอินจะพร้อมใช้งานภายใน 2 สัปดาห์นับจากวันนี้

สำหรับโพสต์นี้ ฉันต้องการแบ่งปันวิธีการโค้ดที่คุณสามารถใช้เพื่อสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce ที่มีประสิทธิภาพ แต่ปลั๊กอินจะมีตัวเลือกตามเงื่อนไขหลายอย่างที่ขยายตัวเลือกการเปลี่ยนเส้นทางเริ่มต้นเมื่อฉันทำสำเร็จใน WooCommerce Redirect หลังจากชำระเงินปลั๊กอิน

WooCommerce Logout Redirect Sections - ข้ามและข้ามไปที่ Section

ในโครงการลูกค้าส่วนใหญ่ของฉัน ฉันมีช่วงเวลาที่ยากลำบากในการเปลี่ยนเส้นทางออกจากระบบเพื่อทำงานบนไซต์ WooCommerce ด้วยเหตุผลนี้ ฉันจึงตัดสินใจรวบรวมสุดยอดคู่มือการสร้าง WooCommerce Redirect หลังจากออกจากระบบ

ฉันหวังว่ามันจะเป็นสถานที่ที่ยอดเยี่ยมสำหรับทั้งผู้ใช้ที่เชี่ยวชาญด้านเทคโนโลยีและไม่มีผู้ใช้ที่เข้าใจเทคโนโลยีในการค้นหาโซลูชันสำหรับการสร้างตัวเลือกการเปลี่ยนเส้นทางออกจากระบบ WooCommerce ที่ดีที่สุดสำหรับโครงการของพวกเขา

เนื่องจากนี่ไม่ใช่บล็อกโพสต์ธรรมดา จึงใช้เวลานานและอาจต้องใช้เวลาอ่านและทำความเข้าใจทุกรายละเอียดมากขึ้น ฉันต้องการช่วยคุณอ่านส่วนต่างๆ เพื่อให้คุณสามารถเลือกโซลูชันที่คุณต้องการสำหรับโครงการของคุณได้อย่างรวดเร็ว

สารบัญ

  1. การเปลี่ยนเส้นทางโฮมเพจ – หลังจากออกจากระบบเปลี่ยนเส้นทางไปยังโฮมเพจใน Woocommerce
  2. การเปลี่ยนเส้นทางหน้าปัจจุบัน – ปุ่มออกจากระบบ Woocommerce และเปลี่ยนเส้นทางไปยังหน้าปัจจุบัน
  3. หน้าเฉพาะตามการเปลี่ยนเส้นทาง ID – หน้าเปลี่ยนเส้นทางการออกจากระบบของ Woocommerce
  4. การเปลี่ยนเส้นทางบทบาทของลูกค้า – การเปลี่ยนเส้นทางการออกจากระบบของลูกค้า Woocommerce
  5. หน้าก่อนหน้า Redirect- เข้าสู่ระบบ Woocommerce เปลี่ยนเส้นทางไปยังหน้าก่อนหน้า
  6. การเปลี่ยนเส้นทางหน้าบัญชีของฉัน – Woocommerce การเปลี่ยนเส้นทางการออกจากระบบบัญชีของฉัน
  7. การเปลี่ยนเส้นทาง URL ภายนอก – ฟังก์ชันเปลี่ยนเส้นทางออกจากระบบ Woocommerce Php Snippet
  8. แก้ไขข้อผิดพลาดการเปลี่ยนเส้นทางออกจากระบบ – การเปลี่ยนเส้นทางออกจากระบบ Woocommerce ไม่ทำงาน
  9. URL เปลี่ยนเส้นทางการออกจากระบบ WP – URL ออกจากระบบ Woocommerce
  10. ปลั๊กอินเปลี่ยนเส้นทางการออกจากระบบ Woocommerce
  11. การสร้างการเปลี่ยนเส้นทางออกจากระบบใน WordPress – ฟังก์ชั่นหลัก
  12. เปลี่ยนเส้นทางการเข้าสู่ระบบ WooCommerce: woocommerce_login_redirect Hook
  13. ฟังก์ชั่นออกจากระบบ WordPress – wp_logout_url()
  14. WordPress Filter Hook logout_redirect
  15. WordPress Filter Hook login_redirect
  16. WooCommerce Multisite Redirect หลังจากออกจากระบบ
  17. ตะขอตัวกรอง: allowed_redirect_hosts
  18. ฟังก์ชันเปลี่ยนเส้นทาง WordPress: wp_ Redirect
  19. ฟังก์ชันเปลี่ยนเส้นทาง WordPress: wp_safe_redirect()
  20. บทสรุป

WooCommerce Redirect หลังจากออกจากระบบ

woocommerce ออกจากระบบเปลี่ยนเส้นทาง ตามค่าเริ่มต้น WooCommerce หลังจากออกจากระบบ การลงทะเบียน และการเข้าสู่ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปที่ "บัญชีของฉัน" พฤติกรรมนี้ไม่พึงปรารถนาโดยเฉพาะในเว็บไซต์ที่มุ่งสู่การเพิ่มยอดขาย

การดำเนินการจัดการผู้ใช้ทั่วไปสามประการบนไซต์ WooCommerce ของคุณ ได้แก่ :

  • การลงทะเบียนผู้ใช้
  • เข้าสู่ระบบผู้ใช้
  • การลงทะเบียนผู้ใช้
  • โปรไฟล์ผู้ใช้ แก้ไข
  • ผู้ใช้ออกจากระบบ

แต่ละการกระทำเหล่านี้สามารถปรับปรุงได้ ไม่เพียงแต่ทำให้ผู้ใช้นำทางได้อย่างราบรื่นได้ง่ายขึ้น แต่ยังเพิ่มโอกาสในการขายสำหรับลูกค้าใหม่และลูกค้าเดิมอีกด้วย URL หรือลิงก์การออกจากระบบของ Woocommerce โดยค่าเริ่มต้นจะอยู่ที่หน้าบัญชีของฉัน และเจ้าของร้านค้า WooCommerce ส่วนใหญ่ต้องการเปลี่ยนเส้นทางออกจากระบบบนหน้าบัญชีของฉันเพื่อเปลี่ยนเส้นทางไปยังหน้าเฉพาะหรือช่องทางการขายของ WooCommerce

วิธีการเปลี่ยนเส้นทางออกจากระบบจากหน้าบัญชีของฉัน ?

หนึ่งในคำถามที่พบบ่อยที่สุดเกี่ยวกับการออกจากระบบ WooCommerce คือวิธีการสร้างการออกจากระบบอัตโนมัติจากหน้าบัญชีของฉันและเปลี่ยนเส้นทางไปยังเว็บไซต์อื่นหรือไปยังหน้าภายใน

นี่คือคำถามที่จะได้รับการแก้ไขและแก้ไขในโพสต์นี้ ในตอนท้ายของบทช่วยสอนนี้ คุณควรสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce แบบกำหนดเองอย่างสะดวกสบาย แม้จะมีความรู้ในการเข้ารหัสเพียงเล็กน้อยหรือไม่มีเลยก็ตาม

woocommerce เปลี่ยนเส้นทางหลังจากออกจากระบบ หน้าบัญชีของฉัน

ทำไมต้องสร้าง WooCommerce การเปลี่ยนเส้นทางออกจากระบบ

เว็บไซต์อีคอมเมิร์ซที่ดีควรใช้ประโยชน์จากโอกาสทั้งหมดในการเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าที่สามารถเพิ่มยอดขายและการแปลงหลังจากทุกการกระทำ – เข้าสู่ระบบ ออกจากระบบ ตะกร้าสินค้า ชำระเงิน ลงทะเบียน ฯลฯ

เกี่ยวกับการสร้างช่องทางการขาย WooCommerce ที่ดีเพื่อโปรโมตผลิตภัณฑ์อื่นๆ ที่มีการขายข้าม การขายที่ลดลง และผลิตภัณฑ์อื่นๆ ที่เกี่ยวข้องหรือผลิตภัณฑ์ที่ขายดีที่สุด

การเปลี่ยนเส้นทางออกจากระบบของ WooCommerce ช่วยให้คุณสามารถเพิ่มอัตราการแปลงการขายของคุณได้โดยการเปลี่ยนเส้นทางลูกค้าหลังจากออกจากระบบไปยังหน้า Landing Page สำหรับการขายหรือหน้าเปลี่ยนเส้นทางช่องทาง WooCommerce เชิงกลยุทธ์ แทนที่จะเปลี่ยนเส้นทางลูกค้าไปยังหน้า "บัญชีของฉัน" ที่เป็นค่าเริ่มต้น

บทช่วยสอนนี้จะแสดงวิธีเปลี่ยนการตั้งค่าเริ่มต้นของการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบและเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ที่กำหนดเอง เช่น "ช่องทางการขาย" "ข้อเสนอพิเศษ" "แคตตาล็อก" หน้าก่อนหน้า หน้า Landing Page พิเศษ หรือลิงก์ภายนอกใดๆ เหมาะสำหรับการเพิ่มยอดขายและการแปลง

ในโพสต์นี้ ฉันจะแบ่งปันเคล็ดลับสั้น ๆ เกี่ยวกับวิธีสร้างการเปลี่ยนเส้นทางที่กำหนดเองหลังจากออกจากระบบ WooCommerce เช่นเดียวกับที่ฉันแชร์ก่อนหน้านี้เกี่ยวกับวิธีสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากชำระเงิน ตามหลักการแล้ว การออกจากระบบ WooCommerce เริ่มต้นนั้นไม่ราบรื่นเท่าที่ควร มันแสดงข้อความยืนยันที่สร้างความรำคาญให้กับผู้ใช้จำนวนหนึ่ง

ฉันได้พูดคุยก่อนหน้านี้ถึงวิธีการลบข้อความยืนยันการออกจากระบบ WooCommerce ซึ่งทำให้ลูกค้าของคุณออกจากระบบเว็บไซต์ WooCommerce ของคุณโดยอัตโนมัติได้ง่ายขึ้นโดยไม่มีข้อความแสดงรูปแบบปรากฏขึ้น

ฉันยังแชร์ข้อมูลโค้ดการออกจากระบบ WooCommerce ที่คุณสามารถขยายได้ในบทช่วยสอนนี้เพื่อให้มีประสิทธิภาพมากขึ้นโดยการเพิ่มตัวเลือกการเปลี่ยนเส้นทาง เช่นเดียวกับที่ฉันทำในการเปลี่ยนเส้นทาง WooCommerce หลังจากชำระเงินปลั๊กอินที่มีตัวเลือกการเปลี่ยนเส้นทางแบบมีเงื่อนไข

เปลี่ยนการเปลี่ยนเส้นทางออกจากระบบ WooCommerce เปลี่ยนการเปลี่ยนเส้นทางออกจากระบบ woocommerce

หากต้องการเปลี่ยนการเปลี่ยนเส้นทางออกจากระบบ WooCommerce เป็นอีกหนึ่งการปรับปรุงที่สำคัญของประสบการณ์การออกจากระบบของลูกค้าที่คุณควรพิจารณา เช่นเดียวกับที่ฉันแสดงวิธีเพิ่มลิงก์ออกจากระบบ WooCommerce ไปที่เมนู

ตอนนี้ให้เราเจาะลึกถึงการสร้างตัวเลือกการเปลี่ยนเส้นทางออกจากระบบ WooCommerce ที่ดีที่สุด ซึ่งคุณสามารถนำไปใช้ในร้านค้าของคุณได้ทันที เพื่อปรับปรุงประสบการณ์ผู้ใช้

ตัวเลือกนี้ง่ายเนื่องจากเราจำเป็นต้องใช้ตัวกรองเพื่อตรวจสอบเหตุการณ์การออกจากระบบเมื่อเกิดขึ้น

เมื่อ WooCommerce ออกจากระบบ เราสามารถขอ hook นี้ – woocommerce_login_redirect จากนั้นส่งฟังก์ชันการโทรกลับด้วยตรรกะการเปลี่ยนเส้นทางของเราไปยังหน้าที่เราต้องการเปลี่ยนเส้นทางผู้ใช้หลังจากออกจากระบบ

หากคุณไม่คุ้นเคยกับ WooCommerce หรือ WordPress action hooks และ filter hooks บทช่วยสอนเกี่ยวกับ apply_filters และ do_action hooks อาจเป็นจุดเริ่มต้นที่ดีในการเริ่มทำความคุ้นเคยกับตัวกรองและ hooks

ถือเป็นแนวทางปฏิบัติที่ดีเสมอก่อนที่คุณจะเริ่มสร้างฟังก์ชันการเปลี่ยนเส้นทางออกจากระบบ WooCommerce คุณควรตรวจสอบว่าผู้ใช้เข้าสู่ระบบอยู่หรือไม่ ตอนนี้ให้เราร่างตัวเลือกต่างๆ ที่คุณสามารถใช้เพื่อสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce

แต่ละฟังก์ชันเหล่านี้ใช้ WooCommerce และ WordPress action hooks ที่เป็นค่าเริ่มต้นและฟังก์ชันที่กล่าวถึงในรายละเอียดในส่วนอื่น ๆ ของบทช่วยสอนนี้

การเปลี่ยนเส้นทางโฮมเพจ – หลังจากออกจากระบบเปลี่ยนเส้นทางไปยังโฮมเพจใน Woocommerce

หนึ่งในการเปลี่ยนเส้นทาง WooCommerce ที่พบบ่อยที่สุดหลังจากออกจากระบบคือไปที่โฮมเพจ ตามค่าเริ่มต้น WooCommerce จะเปลี่ยนเส้นทางไปยังหน้าบัญชีของฉันหลังจากออกจากระบบเสร็จสิ้น

หากคุณต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังโฮมเพจ คุณควรพิจารณาเพิ่มโค้ดนี้ในไฟล์ functions.php ของธีม WooCommerce ที่ใช้งานอยู่

เพียงคัดลอกโค้ดนี้ลงในไฟล์ functions.php ของธีมของคุณและทดสอบเพื่อดูว่าผู้ใช้ WooCommerce ถูกเปลี่ยนเส้นทางไปยังหน้าแรกหลังจากออกจากระบบหรือไม่

เปลี่ยนเส้นทางไปยังหน้าแรกหลังจากออกจากระบบ Snippet

คุณยังสามารถเพิ่มข้อมูลโค้ดนี้ลงในไฟล์ปลั๊กอินและจะทำงานได้อย่างราบรื่น

 add_action('wp_logout','njengah_homepage_logout_redirect');

ฟังก์ชัน njengah_homepage_logout_redirect(){

    wp_redirect(home_url() );

    ทางออก;

}

รหัสเปลี่ยนเส้นทางทำงานอย่างไร

มีสองฟังก์ชันและหนึ่งแอคชั่น hook ที่ใช้ในโค้ดนี้เพื่อสร้าง WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบเช่นเดียวกับในโค้ดด้านบน เรามาดูบทบาทของแต่ละฟังก์ชันและขอเกี่ยวกันอย่างละเอียด:

ขอ : wp_logout

รหัสนี้ใช้เบ็ดการดำเนินการ wp_logout ที่ได้รับการกล่าวถึงในรายละเอียดในบทความนี้ภายใต้หัวข้อ – WordPress hook – wp_logout ตามหลักการแล้วนี่คือตะขอล็อกเอาต์เริ่มต้นของ WordPress ที่เริ่มทำงานหลังจากออกจากระบบแล้ว

ฟังก์ชัน : wp_redirect()

ในกรณีนี้ หากคุณดูฟังก์ชันการโทรกลับ หากใช้ wp_redirect() ที่ได้อธิบายไว้โดยละเอียดในส่วนฟังก์ชัน wp_redirect ของ WordPress

ฟังก์ชัน: home_url()

ฟังก์ชันสุดท้ายที่ใช้ในฟังก์ชันเรียกกลับคือ home_url() ซึ่งเป็นฟังก์ชัน WordPress ที่ส่งคืน URL หน้าแรกของเว็บไซต์ปัจจุบัน

home_url( string $path = '', string|null $scheme = null )

ตัวอย่างเช่น คุณสามารถแสดง URL หน้าแรกของเว็บไซต์ปัจจุบันได้โดยใช้ฟังก์ชัน home_url() ดังนี้:

 $url = home_url();

ก้อง $url;

ดังนั้นในกรณีนี้ของ WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบ มันจะส่งคืน URL ของไซต์ปัจจุบันและเพิ่มเป็นสตริงใน wp_redirect()

เพื่อให้เราเข้าใจว่า hook เปลี่ยนเส้นทางของ WooCommerce ออกจากระบบทำงานอย่างไรในขณะที่เราใช้โค้ดนี้ในโค้ดของคุณ เราจำเป็นต้องพิจารณาฟังก์ชันเริ่มต้นของ WordPress และบทบาทในการสร้างการเปลี่ยนเส้นทาง

การเปลี่ยนเส้นทางหน้าปัจจุบัน – ปุ่มออกจากระบบ Woocommerce และเปลี่ยนเส้นทางไปยังหน้าปัจจุบัน

การเปลี่ยนเส้นทาง WooCommerce ที่พบบ่อยที่สุดอันดับสองหลังจากออกจากระบบคือการเปลี่ยนเส้นทางไปยังหน้าปัจจุบันหลังจากที่ผู้ใช้ออกจากระบบ นี่เป็นสิ่งสำคัญเมื่อคุณต้องการให้ผู้ใช้อยู่ในหน้าเดิมเมื่อออกจากระบบ

ในกรณีนี้ เราจำเป็นต้องทราบหน้าของผู้ใช้ปัจจุบันและนำไปใช้กับตรรกะการเปลี่ยนเส้นทางออกจากระบบ WooCommerce

ในการสร้าง WooCommerce เปลี่ยนเส้นทางไปยังหน้าปัจจุบันหลังจากเหตุการณ์ออกจากระบบ เราจำเป็นต้องใช้ get_permalink() เพื่อแจ้งให้เราทราบหน้าปัจจุบัน จากนั้นนำไปใช้กับฟังก์ชันเรียกกลับออกจากระบบ

ในกรณีนี้ คุณควรเพิ่มข้อมูลโค้ดต่อไปนี้ใน functions.php ของคุณหรือไฟล์ปลั๊กอินของคุณเพื่อดำเนินการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบไปยังหน้าปัจจุบัน

 ฟังก์ชัน njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

       ส่งคืน $logout_url '&redirect_to=' get_permalink();

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

รหัสทำงานอย่างไร

โค้ดนี้ประกอบด้วย filter hook logout_url และฟังก์ชัน callback มีฟังก์ชัน get_permalink() WordPress ที่สร้างหน้าปัจจุบันสำหรับผู้ใช้ frontend และใช้เพื่อส่งคืน URL ออกจากระบบ

ตัวกรอง: logout_url()

ในกรณีนี้ เราได้ใช้ logout_url ซึ่งเป็นตัวกรองการออกจากระบบหลักของ WordPress และ WooCommerce ที่ได้รับการกล่าวถึงในรายละเอียดในส่วนด้านล่าง ของ ฟังก์ชัน WordPress logout_url

รหัสนี้อาจใช้ไม่ได้กับผู้ใช้ทุกคนและมีแนวโน้มว่าจะล้มเหลวสำหรับผู้ใช้ในแบ็กเอนด์ของผู้ดูแลระบบ นี่คือการเปลี่ยนเส้นทางที่เหมาะสมหลังจากออกจากระบบสำหรับลูกค้าในหน้าบัญชีของฉันแต่ไม่ใช่สำหรับบทบาทอื่นๆ

เพื่อให้มันทำงานสำหรับผู้ใช้ในแบ็กเอนด์เช่นกัน เราจำเป็นต้องแทนที่ get_permalink() ด้วยค่าการสืบค้น HTTP ที่แสดงถึงหน้าปัจจุบัน

PHP ซุปเปอร์โกลบอล $_SERVER['HTTP_HOST']

ดังนั้นในกรณีนั้น เราจำเป็นต้องเพิ่ม $_SERVER['HTTP_HOST'] super global นี้เป็นทางเลือกแทน get_permalink() $_SERVER เป็นตัวแปร super global ของ PHP ที่มีข้อมูลเกี่ยวกับส่วนหัว พาธ และตำแหน่งของสคริปต์

$_SERVER['HTTP_HOST'] super global ส่งคืนส่วนหัวของโฮสต์จากคำขอปัจจุบัน ดังนั้นจึงช่วยให้เราได้รับหน้าปัจจุบันเพื่อให้เราสามารถนำไปใช้กับ URL เปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบ โค้ดใหม่ที่ใช้ได้กับผู้ใช้ทุกคนควรเป็นดังนี้:

 ฟังก์ชัน njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

      ส่งคืน $logout_url '&redirect_to=http://' $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

ขณะนี้ คุณสามารถสร้างปุ่มเพื่อปิดลิงก์เปลี่ยนเส้นทางได้โดยทำตามบทช่วยสอนที่ฉันแชร์ไว้ก่อนหน้านี้เกี่ยวกับวิธีสร้างปุ่มออกจากระบบ WooCommerce

การเปลี่ยนเส้นทางหน้าเฉพาะ – หน้าเปลี่ยนเส้นทางออกจากระบบ Woocommerce (ตาม ID)

ในบางกรณี คุณอาจต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเฉพาะหลังจากออกจากระบบ คุณสามารถเพิ่มหน้าในลอจิกการเปลี่ยนเส้นทางออกจากระบบ WooCommerce โดยใช้รหัสหน้า

ในกรณีนี้ คุณจำเป็นต้องรู้ ID ของเพจ เพื่อที่คุณจะได้ส่งต่อมันในฟังก์ชันเปลี่ยนเส้นทาง คุณสามารถเปลี่ยนเส้นทางออกจากระบบ WooCommerce ไปยังหน้าเฉพาะโดยใช้ id โดยใช้ข้อมูลโค้ดต่อไปนี้

 add_action('wp_logout','njengah_specific_page_logout_redirect');

ฟังก์ชัน njengah_specific_page_logout_redirect(){

    wp_redirect( get_permalink($pageId) );

    ทางออก;

}

รหัสทำงานอย่างไร

รหัสนี้ใช้ wp_logout action hook และในฟังก์ชัน callback เรามีฟังก์ชัน get_permalink() ที่มีตัวแปร $pageID ซึ่งควรแทนที่ด้วย ID ของเพจที่คุณต้องการเปลี่ยนเส้นทางผู้ใช้หลังจากชำระเงิน

หากคุณไม่แน่ใจเกี่ยวกับ ID ของหน้า คุณสามารถใช้โพสต์นี้ที่ฉันเขียนเกี่ยวกับวิธีรับ ID หน้าใน WordPress

ฟังก์ชัน WooCommerce : wc_get_page_id()

คุณยังสามารถใช้ชื่อของเพจที่คุณต้องการเปลี่ยนเส้นทางผู้ใช้พร้อมกับ wc_get_page_id() WooCommerce เช่นเดียวกับในข้อมูลโค้ดด้านล่าง:

 add_action('wp_logout','njengah_specific_page_logout_redirect');

ฟังก์ชัน njengah_specific_page_logout_redirect(){

       wp_redirect( get_permalink( wc_get_page_id( 'ร้านค้า' ) ) );

      ทางออก;

}

wc_get_page_id() ดึงรหัสเพจและมักใช้สำหรับ myaccount, edit_address, ร้านค้า, รถเข็น, ชำระเงิน, ชำระเงิน, view_order, เงื่อนไขและผลตอบแทน -1 หากไม่พบหน้า

การเปลี่ยนเส้นทางบทบาทของลูกค้า – การเปลี่ยนเส้นทางการออกจากระบบของลูกค้า Woocommerce

WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบคือที่ที่คุณต้องการเปลี่ยนเส้นทางผู้ใช้ตามบทบาท คุณอาจต้องการเปลี่ยนเส้นทางลูกค้าไปยังหน้าที่กำหนดหลังจากที่พวกเขาออกจากระบบ แทนที่จะเปลี่ยนเส้นทางบัญชีของฉันตามค่าเริ่มต้นหลังจากออกจากระบบ

ในกรณีนี้ คุณสามารถดำเนินการเปลี่ยนเส้นทางหลังจากออกจากระบบสำหรับบทบาทลูกค้าคนเดียวหรือบทบาทอื่นหรือกลุ่มของบทบาทโดยใช้ข้อมูลโค้ดที่แชร์ด้านล่าง:

 if( is_user_logged_in() ) { // ตรวจสอบว่ามีผู้ใช้ที่ล็อกอินอยู่หรือไม่       

    $ผู้ใช้ = wp_get_current_user(); // รับ & การตั้งค่าผู้ใช้ปัจจุบัน

          $roles = ( array ) $user->บทบาท; //รับบทบาท

           // $roles[0]; // ส่งกลับหนึ่งบทบาท

            // คืนค่าบทบาท $; // ส่งคืนอาร์เรย์ของบทบาท

             // เปรียบเทียบที่นี่ 

              if($roles[0] == 'ลูกค้า'){

                 // ดำเนินการเปลี่ยนเส้นทางหากบทบาทของผู้ใช้ปัจจุบันเท่ากับลูกค้า

                    add_action('wp_logout','njengah_specific_page_logout_redirect');

                       ฟังก์ชัน njengah_specific_page_logout_redirect(){

                        wp_redirect( get_permalink($pageId) );

                             ทางออก;

                   }

           }

 }

รหัสทำงานอย่างไร

เราได้เริ่มต้นด้วยการตรวจสอบว่าผู้ใช้เข้าสู่ระบบอยู่หรือไม่ ตามที่ฉันได้อธิบายไว้ในโพสต์ก่อนหน้านี้เกี่ยวกับวิธีค้นหาว่าผู้ใช้ WordPress เข้าสู่ระบบอยู่หรือไม่

รับบทบาทผู้ใช้

ขั้นตอนที่สองคือการรับบทบาทของผู้ใช้ปัจจุบันใน WordPress โดยใช้ wp_get_current_user() และกำหนดบทบาทของผู้ใช้ปัจจุบัน

เปรียบเทียบและดำเนินการเปลี่ยนเส้นทางหากบทบาทตรงกับลูกค้า

ขั้นตอนที่สามคือตอนนี้ทำการเปรียบเทียบบทบาทที่ได้รับในขั้นตอนก่อนหน้ากับบทบาทลูกค้า และหากบทบาทตรงกัน ให้เพิ่มการดำเนินการเปลี่ยนเส้นทางและฟังก์ชัน

คุณสามารถแทนที่บทบาทด้วยบทบาทอื่นรวมถึงบทบาทที่กำหนดเอง คุณยังสามารถเปลี่ยนหน้าเปลี่ยนเส้นทางได้โดยส่งรหัสหน้าอื่นใน get_permalink()

การเปลี่ยนเส้นทางหน้าก่อนหน้า- เปลี่ยนเส้นทางออกจากระบบ Woocommerce ไปยังหน้าก่อนหน้า

คุณสามารถสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบไปยังหน้าก่อนหน้าโดยใช้เซสชัน ในกรณีนี้ คุณต้องสร้างเซสชันและเพิ่มลงในฟังก์ชันและใช้ในตรรกะเพื่อสร้างการเปลี่ยนเส้นทางหลังจากออกจากระบบไปยังหน้าก่อนหน้า

คุณสามารถใช้ข้อมูลโค้ดด้านล่างเพื่อสร้าง WooCommerce ออกจากระบบเปลี่ยนเส้นทางไปยังหน้าก่อนหน้า:

 // เริ่มเซสชันสากลเพื่อบันทึก URL ผู้อ้างอิง
ฟังก์ชัน start_session() {
     session_start();
}

add_action('init', 'start_session', 1);

// รับ URL ผู้อ้างอิงและบันทึก

ฟังก์ชัน redirect_url() {
    ถ้า (is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer(); $_SESSION['referer_url'] = wp_get_referer();
    } อื่น {
        session_destroy();
    }

}
add_action( 'template_redirect', 'redirect_url' );

//ออกจากระบบเปลี่ยนเส้นทาง

ฟังก์ชัน njengah_logout_redirect () {

    ถ้า (isset($_SESSION['referer_url'])) {

        wp_redirect($_SESSION['referer_url']);

    } อื่น {

        wp_redirect(home_url());

    }

}

add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);

รหัสทำงานอย่างไร

รหัสนี้ใช้เซสชัน PHP เพื่อสร้างเซสชันและบันทึก URL ของหน้าปัจจุบัน และในฟังก์ชันเปลี่ยนเส้นทาง เราทดสอบ URL เซสชันที่ตั้งไว้ – $_SESSION['referer_url']

หากมีการตั้งค่าไว้ เราจะสร้างการเปลี่ยนเส้นทางไปยังหน้านั้นเหมือนกับในการเปลี่ยนเส้นทางออกจากระบบอื่นๆ ที่เรากล่าวถึงก่อนหน้านี้

การเปลี่ยนเส้นทางหน้าบัญชีของฉัน – Woocommerce การเปลี่ยนเส้นทางการออกจากระบบบัญชีของฉัน

การเปลี่ยนเส้นทางออกจากระบบ WooCommerce จากหน้าบัญชีของฉันเป็นหนึ่งในคำถามที่พบบ่อยที่สุดเกี่ยวกับการออกจากระบบ WooCommerce

ซึ่งไม่แตกต่างจากการเปลี่ยนเส้นทางออกจากระบบอื่นๆ ในความเป็นจริง คุณสามารถเพิ่มการเปลี่ยนเส้นทางออกจากระบบบนหน้าบัญชีของฉันโดยใช้ข้อมูลโค้ดด้านล่าง:

 add_action('wp_logout','njengah_my_account_page_logout_redirect');

ฟังก์ชัน njengah_my_account_page_logout_redirect(){

       wp_redirect( get_permalink($pageId) );

                ทางออก;

}

คุณสามารถเปลี่ยนค่าของตัวแปร $pageID ในฟังก์ชัน get_permalink() เพื่อให้สอดคล้องกับ ID หน้าของหน้าเปลี่ยนเส้นทางหรือโพสต์ ซึ่งจะทำงานได้อย่างราบรื่น

การเปลี่ยนเส้นทาง URL ภายนอก - ฟังก์ชั่นการเปลี่ยนเส้นทางการออกจากระบบ Woocommerce Php Snippet:

หากคุณต้องการเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ภายนอกหลังจากที่พวกเขาออกจากระบบร้านค้า WooCommerce ของคุณ คุณสามารถทำได้โดยใช้ข้อมูลโค้ดที่เพิ่มลงในฟังก์ชันของธีมของคุณหรือในปลั๊กอินที่กำหนดเอง

ฟังก์ชันเปลี่ยนเส้นทางออกจากระบบ WooCommerce php snippet ที่สามารถเพิ่มลงในไฟล์ functions.php เพื่อสร้างการเปลี่ยนเส้นทางหลังจากออกจากระบบดังนี้:

 add_action('wp_logout','njengah_redirect_after_logout');

ฟังก์ชัน njengah_redirect_after_logout(){

  wp_redirect( $url);

  ทางออก();

}

เพียงเพิ่มข้อมูลโค้ดนี้ใน functions.php และแทนที่ตัวแปร $url ด้วย URL เปลี่ยนเส้นทางของคุณตามลำดับในเครื่องหมายคำพูด

ตัวอย่างเช่น หากคุณต้องการเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ภายนอกหลังจากที่พวกเขาออกจากระบบ และ URL ภายนอกคือ http://example.com คุณสามารถแทนที่ตัวแปร $url ด้วย URL แบบเต็มตามโค้ดด้านล่าง:

 add_action('wp_logout','njengah_redirect_after_logout');

ฟังก์ชัน njengah_redirect_after_logout(){

    wp_redirect('http://example.com');

    ทางออก();

}

URL เปลี่ยนเส้นทางการออกจากระบบ WP – URL ออกจากระบบ Woocommerce

หากคุณต้องการสร้างปุ่มออกจากระบบ WooCommerce และวางไว้ในเทมเพลตที่กำหนดเองหรือในหน้าอื่น ๆ จะช่วยให้คุณทราบ URL การเปลี่ยนเส้นทางออกจากระบบ WP ที่คุณสามารถเพิ่มลงในปุ่มหรือลิงก์ได้อย่างง่ายดาย

ต่อไปนี้คือ URL เปลี่ยนเส้นทางออกจากระบบ WP ที่สามารถเปลี่ยนเป็นหน้าอื่น ๆ โดยเปลี่ยนพารามิเตอร์ 'บัญชีของฉัน' “

 wp_logout_url(

    get_permalink( wc_get_page_id( 'บัญชีของฉัน' ) )

 );

คุณยังสามารถมี URL ภายนอกใน URL เปลี่ยนเส้นทางออกจากระบบ WooCommerce ได้ดังนี้:

 wp_logout_url(

   'http://example.com/'

);

คุณยังสามารถเพิ่มฟังก์ชัน WordPress ลงใน URL เปลี่ยนเส้นทางออกจากระบบ WP ได้ดังนี้:

 wp_logout_url(

    home_url()

);

URL เปลี่ยนเส้นทางออกจากระบบ WP นี้สามารถเพิ่มลงในเทมเพลตที่กำหนดเองได้ และยังใช้ในรหัสย่อหรือปุ่มเพื่อแสดงตัวเลือกการออกจากระบบในสถานที่ที่ไม่ใช่ตำแหน่งเริ่มต้นสำหรับปุ่มออกจากระบบ เช่น วิดเจ็ต ส่วนท้าย เมนูแถบด้านบน และอื่นๆ อีกมากมาย

แก้ไขข้อผิดพลาดการเปลี่ยนเส้นทางออกจากระบบ: การเปลี่ยนเส้นทางออกจากระบบ Woocommerce ไม่ทำงาน

หากคุณได้ปรับแต่งการเปลี่ยนเส้นทางออกจากระบบ WooCommerce และไม่ได้ผล อาจมีข้อบกพร่องในโค้ดของคุณหรือสาเหตุใดสาเหตุหนึ่งต่อไปนี้

ลำดับความสำคัญของเบ็ด

ขั้นตอนแรกคือการตรวจสอบลำดับความสำคัญของ add_action() หรือ add_filter() ของคุณเปรียบเทียบกับ WordPress hooks อื่น ๆ นี่เป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดการเปลี่ยนเส้นทางออกจากระบบ

ลำดับความสำคัญของ hook ยิ่งสูง การโหลดจะเกิดขึ้นเร็วขึ้น หาก hooks ทั้งสองมีลำดับความสำคัญเท่ากัน ตะขอหนึ่งที่อยู่ด้านบนสุดของอีกอันจะถูกโหลดก่อน การปรับลำดับความสำคัญของการดำเนินการหรือขอเกี่ยวตัวกรองอาจเป็นจุดเริ่มต้นที่ดีในการเริ่มต้นการดีบักของคุณ

รหัสผิดพลาด – ข้อผิดพลาดทางไวยากรณ์

ขั้นตอนที่สอง คุณต้องตรวจสอบว่าโค้ดทั้งหมดมีข้อผิดพลาดหรือไม่ และข้อผิดพลาดทั่วไปคือข้อผิดพลาดทางไวยากรณ์ คุณอาจลืมใส่เครื่องหมายคำพูดปิดหรือวงเล็บเหลี่ยมขณะที่คุณแก้ไขโค้ด

ตัวนับตรวจสอบโค้ดและเพิ่มโค้ดลงในตัวตรวจสอบข้อผิดพลาดทางไวยากรณ์ของ PHP

ดีที่สุดถ้าคุณคุ้นเคยกับเครื่องมืออย่าง Visual Studio หรือ IDE เช่น Netbeans เนื่องจากเครื่องมือเหล่านี้สามารถช่วยคุณเลือกข้อผิดพลาดทางไวยากรณ์ในโค้ดของคุณได้อย่างรวดเร็ว

เพิ่มรหัสลงในไฟล์ที่ไม่ถูกต้อง

สาเหตุทั่วไปอีกประการของการเปลี่ยนเส้นทางออกจากระบบ WooCommerce ไม่ทำงาน ข้อผิดพลาดคือเมื่อคุณมีรหัสที่ถูกต้อง แต่คุณเพิ่มรหัสผิดที่ ในกรณีนี้ หากคุณกำลังเพิ่มโค้ดในธีม ควรเพิ่มโค้ดนั้นลงในไฟล์ functions.php อย่างเคร่งครัด

เมื่อเพิ่มโค้ดนี้ลงในปลั๊กอิน คุณควรระวังอย่าเพิ่มโค้ดนี้ในคลาสที่ไม่ได้สร้างอินสแตนซ์ เป็นความคิดที่ดีที่จะเพิ่มลงในไฟล์ฐานปลั๊กอินและแก้ไขการเปลี่ยนแปลงที่อาจจำเป็นเพื่อให้แน่ใจว่าโค้ดจะพอดีกับบริบทของโครงสร้างไฟล์ปลั๊กอินที่คุณกำหนดเอง

ความขัดแย้งของปลั๊กอินหรือธีม

ในกรณีส่วนใหญ่ มีปลั๊กอินหรือธีมที่ควบคุมการเปลี่ยนเส้นทางการเข้าสู่ระบบและออกจากระบบใน WooCommerce ปลั๊กอินเหล่านี้อาจขัดแย้งกันซึ่งนำไปสู่ข้อผิดพลาดในการเปลี่ยนเส้นทางออกจากระบบ

หากคุณพบข้อผิดพลาดในการออกจากระบบเปลี่ยนเส้นทางของ WooCommerce คุณสามารถเริ่มต้นด้วยการปิดใช้งานปลั๊กอินทั้งหมดและใช้ธีม WordPress เริ่มต้นเพื่อตรวจสอบว่าข้อผิดพลาดเกิดจากปลั๊กอินหรือธีมที่ขัดแย้งกันหรือไม่

ปลั๊กอินเปลี่ยนเส้นทางการออกจากระบบ Woocommerce

สุดท้าย ไม่มีอะไรทำให้การเพิ่มการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบง่ายกว่าปลั๊กอินที่มีการเข้ารหัสอย่างดีพร้อมคุณสมบัติที่เหมาะสม ประสบการณ์ผู้ใช้ที่ดีและการสนับสนุนระดับโลก เป็นเวลาหลายปีแล้วที่ฉันได้แก้ไขปัญหาการออกจากระบบ การเข้าสู่ระบบและการลงทะเบียนใน WooCommerce และ WordPress โดยทั่วไปแล้ว

ในช่วงสองสามสัปดาห์ที่ผ่านมา ฉันได้รวบรวมประสบการณ์และบทเรียนทั้งหมดที่ได้เรียนรู้เกี่ยวกับการเปลี่ยนเส้นทางและออกจากระบบ WooCommerce ฉันได้สร้าง URL เปลี่ยนเส้นทางออกจากระบบ WooCommerce ที่โดดเด่นซึ่งประกอบด้วยคุณสมบัติดังต่อไปนี้:

คุณสมบัติการเปลี่ยนเส้นทางออกจากระบบ

  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังหน้าใด ๆ – เลือกหน้าจากรายการแบบหล่นลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังผลิตภัณฑ์ใด ๆ – เลือกผลิตภัณฑ์จากรายการแบบหล่นลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังโพสต์เดียว – เลือกโพสต์จากรายการแบบเลื่อนลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังหมวดหมู่ผลิตภัณฑ์ใด ๆ – เลือกหมวดหมู่ผลิตภัณฑ์จากรายการแบบหล่นลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังหน้าปัจจุบัน
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยังหน้าก่อนหน้า
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบไปยัง URL ภายนอก
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบตามบทบาท
  • WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบตามประวัติการซื้อ (เหมาะสำหรับข้อเสนอพิเศษ)
  • WooCommerce บังคับให้ออกจากระบบหลังจากชำระเงิน

คุณสมบัติการเปลี่ยนเส้นทางการเข้าสู่ระบบ

  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบไปยังหน้าใดก็ได้ – เลือกหน้าจากรายการแบบเลื่อนลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากลงชื่อเข้าใช้ผลิตภัณฑ์ใด ๆ - เลือกผลิตภัณฑ์จากรายการแบบหล่นลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบไปยังโพสต์เดียว – เลือกโพสต์จากรายการแบบเลื่อนลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากลงชื่อเข้าใช้หมวดหมู่ผลิตภัณฑ์ใด ๆ - เลือกหมวดหมู่ผลิตภัณฑ์จากรายการแบบหล่นลง
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบไปยังหน้าปัจจุบัน
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบไปยังหน้าก่อนหน้า
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบไปยัง URL ภายนอก
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบตามบทบาท
  • WooCommerce เปลี่ยนเส้นทางหลังจากเข้าสู่ระบบตามประวัติการซื้อ (เหมาะสำหรับข้อเสนอพิเศษ)

การเปลี่ยนเส้นทาง WooCommerce หลังจากปลั๊กอินเข้าสู่ระบบและออกจากระบบ (WRAL) มีกำหนดเปิดตัวในอีกไม่กี่สัปดาห์ข้างหน้า หากคุณต้องการเป็นผู้ใช้ในช่วงต้นอย่าถูกทิ้งไว้ข้างหลังเนื่องจากการเปิดตัวจะมาพร้อมกับส่วนลด 70%

คุณสามารถเข้าร่วมรายการ 100 คนแรกที่รับช่วงแรกโดยติดต่อกับฉันทันที มีกำหนดวางจำหน่ายในวันที่ 2 พฤศจิกายน 2020

การสร้างการเปลี่ยนเส้นทางออกจากระบบใน WordPress – ฟังก์ชั่นหลัก

หลังจากดูวิธีที่รวดเร็วในการเพิ่มตัวอย่างเพื่อสร้างการเปลี่ยนเส้นทางของ WooCommerce หลังจากออกจากระบบ จะช่วยเน้นฟังก์ชันและขอเกี่ยวล็อกเอาต์เริ่มต้นของ WordPress และอธิบายในรายละเอียดสำหรับนักพัฒนาที่กำลังอ่านคู่มือนี้เพื่อทำความเข้าใจว่าการเปลี่ยนเส้นทางเหล่านี้ทำงานอย่างไร

ฟังก์ชันและการดำเนินการเหล่านี้มีประโยชน์สำหรับการสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบ โดยทั่วไป คุณสามารถสร้างการเปลี่ยนเส้นทางออกจากระบบ WooCommerce โดยใช้ hooks และฟังก์ชันต่อไปนี้:

  • wp_logout_url() ฟังก์ชั่น
  • wp_logout การดำเนินการ hook
  • ตัวกรอง logout_redirect

ฉันต้องการอธิบายแต่ละฟังก์ชันเหล่านี้และวิธีที่คุณสามารถใช้เพื่อสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากชำระเงิน และเหตุใดคุณจึงอาจต้องการใช้ฟังก์ชันนี้แทนฟังก์ชันอื่น

สิ่งสำคัญคือต้องเน้นวิธีที่คุณสามารถสร้างการเปลี่ยนเส้นทางการเข้าสู่ระบบ WooCommerce โดยใช้ตัวกรอง มีฟังก์ชั่นที่เป็นประโยชน์สำหรับการสร้างการเปลี่ยนเส้นทางการเข้าสู่ระบบใน WooCommerce เช่นกัน ให้เราเริ่มต้นด้วย hook เปลี่ยนเส้นทางการเข้าสู่ระบบซึ่งมีประโยชน์มากสำหรับการสร้างการเปลี่ยนเส้นทางการเข้าสู่ระบบใน WooCommerce

เปลี่ยนเส้นทางการเข้าสู่ระบบ WooCommerce: woocommerce_login_redirect Hook

นี่คือ WooCommerce hook พิเศษที่ช่วยให้เราควบคุมฟังก์ชันการเปลี่ยนเส้นทางการเข้าสู่ระบบใน WooCommerce คล้ายกับฟังก์ชันล็อกเอาต์เริ่มต้นของ WordPress ที่ใช้ในการสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบ การใช้งานพื้นฐานมีดังนี้:

apply_filters( 'woocommerce_login_redirect', $redirect, $user );

อย่างที่คุณเห็นมันต้องใช้ 2 พารามิเตอร์และพารามิเตอร์มีดังนี้:

พารามิเตอร์ คำอธิบาย ตัวอย่างการใช้งาน
$redirect นี่คือหน้าเปลี่ยนเส้นทางที่ผู้ใช้จะไปถึงหลังจากการเข้าสู่ระบบ

อาจมีประโยชน์ในการเปลี่ยนเส้นทาง WooCommerce เริ่มต้นหลังจากเข้าสู่ระบบเพื่อให้ผู้ใช้ไปยังหน้าเฉพาะหลังจากเข้าสู่ระบบ

add_filter('woocommerce_login_redirect', 'login_redirect')

คุณสามารถเพิ่ม filter hook และในฟังก์ชันเรียกกลับ คุณสามารถส่งลอจิกการเปลี่ยนเส้นทางได้ดังนี้:

function login_redirect($redirect_to){
return home_url();
}

อย่างที่คุณเห็น ฉันได้เพิ่มพารามิเตอร์ $redirect_to และส่งคืน URL เปลี่ยนเส้นทางเพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าแรกหลังจากเข้าสู่ระบบ

$user นี่คือผู้ใช้ที่ใช้การดำเนินการเปลี่ยนเส้นทาง

สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการสร้างการเปลี่ยนเส้นทางหลังจากเข้าสู่ระบบสำหรับผู้ใช้เฉพาะ

ขอ : woocommerce_login_redirect ไม่ทำงาน

โค้ดนี้สามารถใช้ได้ในธีมและโค้ดปลั๊กอิน แต่คุณต้องเข้าใจลำดับความสำคัญเพื่อหลีกเลี่ยงไม่ให้เริ่มทำงานก่อนหรือหลัง ซึ่งจะนำไปสู่สถานการณ์ทั่วไปที่ woocommerce_login_redirect ไม่ทำงาน

คุณต้องค้นหาสาเหตุอื่นๆ ที่อาจส่งผลให้ woocommerce_login_redirect ไม่ทำงาน สิ่งที่น่าสนใจเป็นพิเศษคือปลั๊กอินอื่นที่มีฟังก์ชันคล้ายคลึงกันซึ่งทำงานก่อนที่โค้ดของคุณจะเริ่มทำงาน

ดังนั้น หากคุณพบว่า woocommerce_login_redirect ไม่ทำงาน สิ่งแรกที่ต้องตรวจสอบคือลำดับความสำคัญของตัวอย่างเคสที่คุณอาจมีข้อมูลโค้ดสองอย่างนี้:

# ลำดับความสำคัญต่ำกว่า

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );

# ลำดับความสำคัญที่สูงขึ้น

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );

ดังที่คุณเห็นในทั้งสองกรณี หมายเลขลำดับความสำคัญจะแตกต่างกัน กฎพื้นฐานคือยิ่งตัวเลขมีขนาดเล็กเท่าใด ลำดับความสำคัญก็จะยิ่งสูงขึ้น ซึ่งหมายความว่าจะโหลดก่อน

เมื่อคุณใช้ฟังก์ชันนี้ในที่อื่นในธีมของคุณหรือปลั๊กอินอื่น และคุณกำลังพยายามสร้างการเปลี่ยนเส้นทาง WooCommerce ขึ้นใหม่หลังจากฟังก์ชันการเข้าสู่ระบบหรือออกจากระบบ คุณต้องให้ความสนใจกับลำดับความสำคัญ นี่เป็นวิธีแก้ปัญหา woocommerce_login_redirect ไม่ทำงาน

ฟังก์ชั่นออกจากระบบ WordPress – wp_logout_url()

ฟังก์ชันนี้มีหน้าที่สร้าง URL ออกจากระบบใน WordPress

ช่วยให้นักพัฒนาและผู้ใช้ WordPress สร้าง URL ออกจากระบบได้อย่างรวดเร็วซึ่งสามารถเพิ่มลงในลิงก์หรือปุ่มได้ และฉันได้อธิบายไว้ในบทความนี้ – วิธีสร้าง URL ออกจากระบบ ของ WooCommerce

WooCommerce ขยายฟังก์ชันการทำงานโดยมีปลายทาง URL ที่มีบทบาทสำคัญในการช่วยนักพัฒนาและผู้ใช้สร้างหน้าออกจากระบบ WooCommerce โดยไม่ต้องเขียนโค้ดใดๆ

หากคุณต้องการเข้าใจกระบวนการออกจากระบบ WooCommerce และ WordPress อย่างลึกซึ้ง คุณควรเริ่มต้นด้วยการประเมิน wp_logout_url()

เป็นฟังก์ชันพิเศษที่คุณจะพบได้ในธีมและปลั๊กอินของ WordPress หลายแบบ และเป็นความคิดที่ดีที่จะดูสิ่งที่เกิดขึ้นภายใต้ประทุน

การใช้งานพื้นฐานของฟังก์ชั่นมีดังนี้:

wp_logout_url( string $redirect = '' )

ดังที่คุณเห็นว่าฟังก์ชันใช้พารามิเตอร์หนึ่งตัวที่เป็นสตริง และรายละเอียดต่อไปนี้คือรายละเอียดของพารามิเตอร์:

พารามิเตอร์ คำอธิบาย ตัวอย่างการใช้งาน
$redirect นี่คือพารามิเตอร์สตริงและสามารถเลือกที่จะเพิ่มได้ คุณสามารถเว้นว่างไว้และฟังก์ชันจะทำงาน

อย่างไรก็ตามมีประโยชน์ในกรณีที่คุณต้องการเพิ่ม URL เปลี่ยนเส้นทางไปยังหน้าใดหน้าหนึ่ง

ดังนั้นในกรณีนี้ พารามิเตอร์ $redirect คือ URL ของหน้าเปลี่ยนเส้นทาง ซึ่งเป็นปลายทางที่ผู้ใช้ทั้งหมดที่ใช้ฟังก์ชันนี้ในบริบทนี้ควรไปถึง

คุณยังสามารถส่งผ่านฟังก์ชันอื่นๆ เป็นพารามิเตอร์ที่ส่งคืนสตริงได้อย่างเคร่งครัด เนื่องจาก wp_logout_url() รับเฉพาะสตริงเป็นพารามิเตอร์

คุณสามารถใช้ฟังก์ชันนี้พร้อมกับลิงก์ดังต่อไปนี้ :

<a href="<?php echo wp_logout_url(); ?>">Logout</a>

คุณสามารถใช้ฟังก์ชันนี้และส่งฟังก์ชันอื่นเป็นพารามิเตอร์ที่ส่งคืนสตริงของ URL เปลี่ยนเส้นทางได้ดังนี้

<a href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>

<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>

หากคุณต้องการเข้าใจฟังก์ชันเพิ่มเติม คุณควรดูโค้ดที่กำหนดไว้ในแกนหลักของ WordPress รหัสฟังก์ชันหลักนี้มีดังต่อไปนี้:

 ฟังก์ชั่น wp_logout_url ($redirect = '' ) {
    $args = อาร์เรย์ ();
    ถ้า ( ! ว่างเปล่า ( $redirect ) ) {
        $args['redirect_to'] = urlencode( $redirect );
    }
 
    $logout_url = add_query_arg( $args, site_url( 'wp-login.php?action=logout', 'login' ) );
    $logout_url = wp_nonce_url( $logout_url, 'ออกจากระบบ' );
 
    /**
     * กรอง URL ออกจากระบบ
     *
     * @ตั้งแต่ 2.8.0
     *
     * @param string $logout_url URL ออกจากระบบที่เข้ารหัส HTML
     * @param string $redirect เส้นทางที่จะเปลี่ยนเส้นทางไปที่เมื่อออกจากระบบ
     */
    ส่งคืน apply_filters( 'logout_url', $logout_url, $redirect );
}

ตะขอแอ็คชัน : wp_logout

นี่คือแอ็คชัน hook ที่เริ่มทำงานเมื่อผู้ใช้ออกจากระบบ มีบทบาทสำคัญในการสร้างการเปลี่ยนเส้นทางหลังจากออกจากระบบ การใช้งานพื้นฐานของฟังก์ชันนี้มีดังนี้:

do_action( 'wp_logout', int $user_id )

อย่างที่คุณเห็นมันใช้พารามิเตอร์เดียวและรายละเอียดของพารามิเตอร์มีดังนี้:

พารามิเตอร์ คำอธิบาย ตัวอย่างการใช้งาน
$user_id นี่คือ ID ของผู้ใช้ที่ออกจากระบบ add_action('wp_logout','logout_redirect');

ในกรณีนี้ เราได้เพิ่มเป็น action hook และเราสามารถส่งเปลี่ยนเส้นทางของเราหลังจากลอจิกล็อกเอาต์ในฟังก์ชันเรียกกลับดังนี้:

function logout_redirect(){

wp_redirect( home_url() );

exit;

}

ดังนั้นในกรณีนี้ เรากำลังเปลี่ยนเส้นทางผู้ใช้หลังจากออกจากระบบไปยังโฮมเพจ

ฟังก์ชันเหล่านี้มีประโยชน์เมื่อคุณต้องการควบคุมการเปลี่ยนเส้นทางของผู้ใช้หลังจากที่เข้าสู่ระบบหรือออกจากระบบ

WordPress Filter Hook logout_redirect

ตัวกรองเบ็ดอื่นที่คุณสามารถใช้เพื่อสร้างการเปลี่ยนเส้นทางหลังจากออกจากระบบใน WooCommerce คือ Filter Hook logout_redirect hook ตัวกรองนี้ทำงานเหมือน wp_logout_url() หรือ wp_logout action hook

เป็นตัวกรอง WordPress พื้นฐานที่ออกแบบมาเพื่อช่วยในการสร้าง WordPress หรือ WooCommerce เปลี่ยนเส้นทางหลังจากออกจากระบบ การใช้งานพื้นฐานมีดังนี้:

apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )

ดังที่คุณเห็นว่ามีพารามิเตอร์สามตัวและสามารถอธิบายพารามิเตอร์โดยละเอียดดังนี้:

พารามิเตอร์ คำอธิบาย
$redirect_to นี่คือ URL ปลายทางของการเปลี่ยนเส้นทางและต้องเป็นสตริง เช่น http://example.com
$requested_redirect_to นี่คือ URL ปลายทางการเปลี่ยนเส้นทางที่ร้องขอซึ่งส่งผ่านเป็นพารามิเตอร์และต้องเป็นสตริงเช่นเดียวกับพารามิเตอร์แรก
$user นี่คือวัตถุผู้ใช้ – วัตถุ WP_User ของผู้ใช้ที่ออกจากระบบ

คุณสามารถสร้างตัวกรองตามการเปลี่ยนเส้นทาง WordPress หลังจากออกจากระบบโดยใช้ logout_redirect ดังต่อไปนี้:

 add_filter( 'login_redirect', 'njengah_logout_redirect', 10, 3 );

ฟังก์ชัน njengah_logout_redirect ( $location, $request, $user ) {

  ผู้ใช้ $ ทั่วโลก;

if ( isset( $user->roles ) && is_array( $user->roles ) ) {

   if ( in_array( 'subscriber', $user->roles ) ) {

       กลับบ้าน_url();

          } อื่น {

        คืนค่า $redirect_to;

      }

    }

   กลับ;

}

WordPress Filter Hook login_redirect

สิ่งสำคัญคือต้องชี้ให้เห็นว่ามีตัวกรองที่คล้ายกันสำหรับการเข้าสู่ระบบ – login_redirect ซึ่งทำงานในลักษณะเดียวกับตัวกรอง logout_redirect อันที่จริงการใช้งานจะคล้ายกันและมาพร้อมกับพารามิเตอร์ 3 ตัวและนิพจน์ทั่วไปมีดังนี้:

apply_filters( 'login_redirect', string $redirect_to, string $requested_redirect_to, WP_User|WP_Error $user )

The parameters are similar expect the last parameter that has two user object options as you will see in the detailed description below:

พารามิเตอร์ คำอธิบาย
$redirect_to This is the redirect destination URL and it must be a string, for example, http://example.com
$requested_redirect_to This is the requested redirect destination URL that is passed as a parameter and it must also be a string just like the first parameter.
$user This is the user object – WP_User object of the user who has been logged in if the login was successful but for unsuccessful login the WP_Error object is represented by this parameter

As you can see there are several ways you can use to create a WordPress or WooCommerce logout redirect.

In a quick summary we have highlighted the three most important hooks you should consider using for creating the redirect after logout. These hooks include:

  • Default WordPress logout_redirect – using filter to create redirect after logout
  • Action hook wp_logout – fired after the logout and thus can be used to create redirect.
  • WordPress logout function wp_logout_url() – WordPress default function that retrieves the logout URL and this can be useful in adding a redirect since it takes one parameter for the redirect path.

WooCommerce Multisite Redirect After Logout

When you are creating a redirect after logout in WooCommerce the wp_logout hook may fail to work when you have a multisite. In this case you need a little creativity to control how to create the WooCommerce redirect after logout.

In fact in a multisite set up WordPress logout function requires you to filter the allowed URLs for redirect and this can easily be executed using the allowed_redirect_hosts filter.

It helps to understand how this filter hook works so that you can use it in the WooCommerce multisite redirect after checkout. So let's briefly look at this filter.

Filter Hook: allowed_redirect_hosts

This is a filter hook that filters all the allowed hosts to apply redirect to. So in simple terms it checks the redirect URLs and vets them. The basic usage of this filter is as follows:

apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )

As you can see in the expression above, it takes two parameter and they can be explained in details as follows:

พารามิเตอร์ คำอธิบาย Usage Example(s)
$hosts (string[]) This is simply an array with all the allowed host names add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

function njengah_allow_parent_redirect( $allowed ) {

$allowed[] = 'example.com'; // Multisite parent

return $allowed;

}

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Logout</a>

$host (string) This is the host name of the redirect destination.

This can be left empty.

You can add more hosts to the callback function and come up with code like this:

add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

ฟังก์ชั่น njengah_allow_parent_redirect (อนุญาต $) {
    $allowed = อาร์เรย์ (
    'blog.example.com',
    'codex.example.com',
     );
    ส่งคืน array_merge( $hosts, $allowed );
}

นี่เป็นเพียงจุดประสงค์ในการตรวจสอบ URL เปลี่ยนเส้นทางที่อนุญาตซึ่งเป็นส่วนเสริมที่สำคัญสำหรับการเปลี่ยนเส้นทาง WooCommerce หลายไซต์หลังจากออกจากระบบเนื่องจากในกรณีส่วนใหญ่การเปลี่ยนเส้นทาง wp_logout เริ่มต้นจะล้มเหลวโดยไม่มีการกรองโฮสต์การเปลี่ยนเส้นทาง

ฟังก์ชันเปลี่ยนเส้นทาง WordPress: wp_ Redirect

เมื่อคุณสร้างการเปลี่ยนเส้นทางใน WooCommerce หรือ WordPress ตามที่ฉันอธิบายไว้ในโพสต์เกี่ยวกับวิธีสร้างการเปลี่ยนเส้นทางหลังจากชำระเงินใน WooCommerce คุณต้องมี wp_redirect()

การทำความเข้าใจบทบาทของฟังก์ชันนี้มีความสำคัญอย่างยิ่งในการสร้างการเปลี่ยนเส้นทางของ WooCommerce หลังจากชำระเงิน เนื่องจากเป็นฟังก์ชันหลักที่รับผิดชอบในการดำเนินการเปลี่ยนเส้นทางใน WordPress และ WooCommerce ให้เราสรุปคร่าวๆ ว่ามันทำงานอย่างไรและพารามิเตอร์ที่ใช้ การใช้งานทั่วไปของฟังก์ชัน wp_redirect() มีดังนี้:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

ดังที่คุณเห็นว่าฟังก์ชันนี้ใช้พารามิเตอร์สามตัวและสามารถอธิบายรายละเอียดได้ดังนี้:

พารามิเตอร์ คำอธิบาย
$location นี่คือเส้นทางหรือ URL ที่จะเปลี่ยนเส้นทางผู้ใช้ ต้องเป็นสตริงและจำเป็นสำหรับฟังก์ชันในการทำงาน
$status นี่คือรหัสสถานะการตอบสนอง HTTP ที่ควรใช้กับการเปลี่ยนเส้นทางนี้ และนี่คือจำนวนเต็มและเป็นทางเลือกที่จะใช้
ตัวอย่างเช่น คุณสามารถเพิ่ม 301 สำหรับการเปลี่ยนเส้นทางถาวรหรือปล่อยให้เป็นค่าเริ่มต้นซึ่งก็คือ 302 ซึ่งหมายถึงย้ายชั่วคราว
$x_redirect_by นี่คือแอปพลิเคชันที่ทำการเปลี่ยนเส้นทางและโดยค่าเริ่มต้นคือ WordPress และไม่ควรยกเลิกการตั้งค่าเนื่องจากเรากำลังสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบซึ่งอยู่ในบริบทของ WordPress

บันทึก

สิ่งสำคัญคือต้องเข้าใจว่าเมื่อคุณใช้ฟังก์ชัน wp_redirect() tit จะไม่ออกเอง ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องเพิ่ม exit หลังฟังก์ชันเสมอ เนื่องจาก exit ใน PHP ใช้เพื่อยุติสคริปต์ที่ทำงานอยู่ปัจจุบันหลังจากรันโค้ดบรรทัดก่อนหน้า ดังนั้นวิธีที่ดีที่สุดในการใช้ฟังก์ชัน wp_redirect มีดังนี้:

 wp_redirect( $url );

ทางออก

คุณยังสามารถสร้างการเปลี่ยนเส้นทางแบบมีเงื่อนไขโดยใช้ฟังก์ชัน wp_redirect โดยมี if statement ดังนี้:

 ถ้า ( wp_redirect( $url ) ) {

   ทางออก;

}

ฟังก์ชันนี้สามารถใช้ร่วมกับ template_redirect hook ได้ดังในโค้ดด้านล่าง:

 ฟังก์ชัน njengah_wp_redirect_example() {

    ถ้า ( is_user_logged_in() && is_page( $id ) ){

        wp_redirect( get_permalink( $id ) );

        ทางออก;

    }

}

add_action( 'template_redirect', 'njengah_wp_redirect_example' );

ดังที่คุณเห็นในโค้ดด้านบน สามารถใช้ฟังก์ชันเป็นพารามิเตอร์ได้หากฟังก์ชันส่งคืนสตริงสำหรับพารามิเตอร์ $location เช่นเดียวกับกรณีของ get_permalink( )

ฟังก์ชันเปลี่ยนเส้นทาง WordPress: wp_safe_redirect()

wp_safe_redirect() เป็นฟังก์ชันเปลี่ยนเส้นทาง WordPress ตัวที่สองที่อาจเป็นประโยชน์สำหรับการดำเนินการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบ ฟังก์ชันนี้ทำงานเหมือนกับฟังก์ชัน wp_redirect() แต่มีการตรวจสอบ URL การเปลี่ยนเส้นทางเพิ่มเติม

ในฟังก์ชัน wp_redirect พารามิเตอร์ $location จะไม่ถูกตรวจสอบ แต่ใน wp_safe_redirect() พารามิเตอร์ $location จะถูกตรวจสอบเพื่อให้แน่ใจว่าเป็นโฮสต์ที่ได้รับอนุญาต

นั่นคือความแตกต่างระหว่างฟังก์ชันการเปลี่ยนเส้นทางทั้งสอง การใช้งานทั่วไปของฟังก์ชันเปลี่ยนเส้นทางนี้คล้ายกับของ wp_redirect และนิพจน์ทั่วไปมีดังนี้:

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

อย่างที่คุณเห็นพารามิเตอร์เหมือนกัน:

พารามิเตอร์ คำอธิบาย
$location นี่คือเส้นทางหรือ URL ที่จะเปลี่ยนเส้นทางผู้ใช้ ต้องเป็นสตริงและจำเป็นสำหรับฟังก์ชันในการทำงาน
$status นี่คือรหัสสถานะการตอบสนอง HTTP ที่ควรใช้กับการเปลี่ยนเส้นทางนี้ และนี่คือจำนวนเต็มและเป็นทางเลือกที่จะใช้
ตัวอย่างเช่น คุณสามารถเพิ่ม 301 สำหรับการเปลี่ยนเส้นทางถาวรหรือปล่อยให้เป็นค่าเริ่มต้นซึ่งก็คือ 302 ซึ่งหมายถึงย้ายชั่วคราว
$x_redirect_by นี่คือแอปพลิเคชันที่ทำการเปลี่ยนเส้นทางและโดยค่าเริ่มต้นคือ WordPress และไม่ควรยกเลิกการตั้งค่าเนื่องจากเรากำลังสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากออกจากระบบซึ่งอยู่ในบริบทของ WordPress

ฟังก์ชันนี้อนุญาตให้นักพัฒนาปลั๊กอินตั้งค่าหรือลบรายการโฮสต์ที่อนุญาต และหากโฮสต์ไม่อยู่ในรายชื่อโฮสต์ที่อนุญาต การเปลี่ยนเส้นทางจะล้มเหลวและค่าเริ่มต้นเป็น wp-admin

เช่นเดียวกับฟังก์ชัน wp_redirect wp_safe_redirect จะไม่ออกโดยอัตโนมัติ และยังต้องการให้คุณเพิ่ม exit เช่นเดียวกับในข้อมูลโค้ดด้านล่าง:

 wp_safe_redirect( $url );

ทางออก;

คุณยังสามารถใช้กับคำสั่งแบบมีเงื่อนไขได้ดังในตัวอย่างก่อนหน้านี้:

 ถ้า ( wp_safe_redirect( $url ) ) {

    ทางออก;

}

บทสรุป

ในโพสต์นี้ ฉันได้สรุปวิธีการทีละขั้นตอนที่คุณสามารถสร้างการเปลี่ยนเส้นทาง WooCommerce ต่างๆ หลังจากตัวเลือกออกจากระบบ ฉันแสดงตัวอย่างโค้ดวิธีสร้าง WordPress หรือ WooCommerce เปลี่ยนเส้นทางออกจากระบบโดยใช้ฟังก์ชันและ hooks ที่มีอยู่มากมายจาก WordPress core

ในการสรุปโดยย่อเพื่อสรุปสิ่งที่เรากล่าวถึง วิธีสร้างการเปลี่ยนเส้นทางหลังจากออกจากระบบไปที่:

  • หน้าปัจจุบันเปลี่ยนเส้นทางออกจากระบบ
  • หน้าก่อนออกจากระบบเปลี่ยนเส้นทาง
  • หน้าแรก ออกจากระบบ เปลี่ยนเส้นทาง
  • การเปลี่ยนเส้นทางออกจากระบบเฉพาะหน้า
  • การเปลี่ยนเส้นทางออกจากระบบ URL ภายนอก

ฉันหวังว่าคู่มือนี้จะช่วยให้คุณเป็นจุดเริ่มต้นที่ดีในขณะที่สร้างการเปลี่ยนเส้นทางออกจากระบบใน WooCommerce หากคุณต้องการแบ่งปันความคิดเห็นหรือมีส่วนสนับสนุนในการทำให้คู่มือนี้ดีขึ้น และแม้กระทั่งชี้ให้เห็นข้อผิดพลาดหรือข้อผิดพลาด โปรดติดต่อเรา หากคุณชอบคู่มือนี้ คุณอาจต้องการดูคู่มืออื่นๆ ที่ฉันเขียนเกี่ยวกับวิธีสร้างการเปลี่ยนเส้นทาง WooCommerce หลังจากซื้อ

บทความที่คล้ายกัน

สุดยอดรายการปลั๊กอิน WooCommerce