WooCommerce: เปลี่ยนค่าเริ่มต้นแท็บบัญชีของฉัน

เผยแพร่แล้ว: 2022-08-02

ดังที่คุณทราบ เมื่อคุณเข้าสู่ระบบและไปที่บัญชีของฉัน WooCommerce จะแสดงเนื้อหาแท็บ "แดชบอร์ด" (เรียกอีกอย่างว่า "จุดสิ้นสุดของแดชบอร์ด") แท็บแดชบอร์ดมีค่าเริ่มต้น " สวัสดี Rodolfo Melogli (ไม่ใช่ Rodolfo Melogli หรือไม่ ออกจากระบบ) จากแดชบอร์ดบัญชีของคุณ คุณสามารถดูคำสั่งซื้อล่าสุดของคุณ จัดการที่อยู่สำหรับจัดส่งและเรียกเก็บเงินของคุณ และแก้ไขรหัสผ่านและรายละเอียดบัญชีของคุณ " ข้อความ.

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

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

PHP Snippet 1: เปลี่ยนเส้นทางผู้ใช้ไปยังแท็บบัญชีของฉันอื่น

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

/**
 * @snippet       Redirect to new default tab @ WooCommerce My Account
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_action( 'template_redirect', 'bbloomer_my_account_redirect_to_downloads' );

function bbloomer_my_account_redirect_to_downloads(){
	if ( is_account_page() && empty( WC()->query->get_current_endpoint() ) ) {
		wp_safe_redirect( wc_get_account_endpoint_url( 'orders' ) );
		exit;
	}
}

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

PHP Snippet 2: ตั้งค่าแท็บบัญชีของฉันอีกแท็บเป็นค่าเริ่มต้น (แต่เก็บแดชบอร์ดไว้)

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

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

วิธีแก้ปัญหานี้:

  1. แทนที่เนื้อหาแท็บ "แดชบอร์ด" เป็นเนื้อหาแท็บที่คุณเลือก (เช่น เนื้อหาแท็บ "ดาวน์โหลด")
  2. เปลี่ยนชื่อแท็บ "แดชบอร์ด" เป็นสิ่งที่คุณต้องการ ("ดาวน์โหลด" ในตัวอย่างของเรา)
  3. ซ่อนแท็บ "ดาวน์โหลด" เดิมตามที่เรามีอยู่แล้ว
  4. อ่านแท็บ "แดชบอร์ด" เป็นแท็บแรกพร้อมกับเนื้อหา

ส่วนที่ 1 – แทนที่เนื้อหาแท็บแดชบอร์ดด้วยเนื้อหาแท็บดาวน์โหลด

โปรดทราบว่า woocommerce_account_downloads() เป็นฟังก์ชันที่รับผิดชอบในการแสดงผลแท็บดาวน์โหลด คุณสามารถค้นหาเนื้อหาของแท็บอื่นๆ ได้ในบทช่วยสอนอื่นๆ นี้

/**
 * @snippet       Replace tab content @ WooCommerce My Account
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_action( 'woocommerce_account_content', 'bbloomer_myaccount_replace_dashboard_content', 1 );

function bbloomer_myaccount_replace_dashboard_content() {
	remove_action( 'woocommerce_account_content', 'woocommerce_account_content', 10 );
	add_action( 'woocommerce_account_content', 'bbloomer_account_content' );
}

function bbloomer_account_content() {
	global $wp;
	if ( empty( $query_vars = $wp->query_vars ) || ( ! empty( $query_vars ) && ! empty( $query_vars['pagename'] ) ) ) {
		woocommerce_account_downloads();
	} else {
		foreach ( $wp->query_vars as $key => $value ) {
			if ( 'pagename' === $key ) {
				continue;
			}
			if ( has_action( 'woocommerce_account_' . $key . '_endpoint' ) ) {
				do_action( 'woocommerce_account_' . $key . '_endpoint', $value );
				return;
			}
		}
	}
}

ส่วนที่ 2 – เปลี่ยนชื่อแท็บ Dashboard เป็น Downloads

/**
 * @snippet       Rename tab @ WooCommerce My Account
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_account_menu_items', 'bbloomer_myaccount_rename_dashboard_tab_title', 9999 );
 
function bbloomer_myaccount_rename_dashboard_tab_title( $items ) {
   $items['dashboard'] = 'Downloads';
   return $items;
}

ส่วนที่ 3 – ลบแท็บดาวน์โหลดต้นฉบับ

/**
 * @snippet       Remove tab @ WooCommerce My Account
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_account_menu_items', 'bbloomer_myaccount_remove_orders_tab', 9999 );
 
function bbloomer_myaccount_remove_orders_tab( $items ) {
   unset( $items['downloads'] );
   return $items;
}

ส่วนที่ 4 – แท็บแดชบอร์ดที่อ่านแล้ว

หมายเหตุ: คุณต้องบันทึกลิงก์ถาวรของ WordPress อีกครั้งเมื่อมีการใช้งานข้อมูลโค้ด

/**
 * @snippet       Readd Dashboard tab @ WooCommerce My Account
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 6
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_action( 'init', 'bbloomer_myaccount_add_dashboard_endpoint' );
  
function bbloomer_myaccount_add_dashboard_endpoint() {
    add_rewrite_endpoint( 'mydashboard', EP_ROOT | EP_PAGES );
}

add_filter( 'query_vars', 'bbloomer_query_vars', 0 );
  
function bbloomer_query_vars( $vars ) {
    $vars[] = 'mydashboard';
    return $vars;
}
  
add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_new_dashboard_to_my_account' );
  
function bbloomer_add_new_dashboard_to_my_account( $items ) {
	$items = array( 'mydashboard' => 'Dashboard' ) + $items;
    return $items;
}