[英]Displays Woocommerce My Account Orders instead of Dashboard
我正在嘗試讓 url.com/my-account 或簡碼 [woocommerce_my_account] 顯示訂單,而不是顯示“Hello User(not user)?”的儀表板。
我唯一擁有的是在登錄后重定向到訂單而不是儀表板,但是然后我去 /my-account 仍然顯示我不想要的儀表板。
我發現最接近我想要的代碼是......
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
但是,如果沒有下訂單,則顯示為空白(不顯示“尚未下訂單。”帶有商店按鈕)並且我的帳戶導航側邊欄不顯示。 我是否必須為此制作一個自定義頁面模板才能添加到 woocommerce 帳戶導航側邊欄中?
編輯:如果我使用 orders.php 而不是 my-orders.php 那么我可以獲得“尚未下訂單”。 但仍然沒有側邊欄導航
我正在嘗試使 url.com/my-account 或短代碼 [woocommerce_my_account] 顯示訂單,而不是顯示“您好用戶(不是用戶)?”的儀表板。
我唯一擁有的是登錄后重定向到訂單而不是儀表板,但我然后轉到 /my-account 仍然顯示我不想要的儀表板。
我發現的最接近我想要的代碼是......
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
但是,如果沒有下訂單,則顯示為空白(不顯示“尚未下訂單。”帶有商店按鈕)並且我的帳戶導航側欄不顯示。 我是否必須為此創建一個自定義頁面模板才能添加到 woocommerce 帳戶導航側欄中?
編輯:如果我使用 orders.php 而不是 my-orders.php 那么我能夠得到“尚未下訂單”。 但仍然沒有側邊欄導航
我正在嘗試使 url.com/my-account 或短代碼 [woocommerce_my_account] 顯示訂單,而不是顯示“您好用戶(不是用戶)?”的儀表板。
我唯一擁有的是登錄后重定向到訂單而不是儀表板,但我然后轉到 /my-account 仍然顯示我不想要的儀表板。
我發現的最接近我想要的代碼是......
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
但是,如果沒有下訂單,則顯示為空白(不顯示“尚未下訂單。”帶有商店按鈕)並且我的帳戶導航側欄不顯示。 我是否必須為此創建一個自定義頁面模板才能添加到 woocommerce 帳戶導航側欄中?
編輯:如果我使用 orders.php 而不是 my-orders.php 那么我能夠得到“尚未下訂單”。 但仍然沒有側邊欄導航
我正在嘗試使 url.com/my-account 或短代碼 [woocommerce_my_account] 顯示訂單,而不是顯示“您好用戶(不是用戶)?”的儀表板。
我唯一擁有的是登錄后重定向到訂單而不是儀表板,但我然后轉到 /my-account 仍然顯示我不想要的儀表板。
我發現的最接近我想要的代碼是......
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
但是,如果沒有下訂單,則顯示為空白(不顯示“尚未下訂單。”帶有商店按鈕)並且我的帳戶導航側欄不顯示。 我是否必須為此創建一個自定義頁面模板才能添加到 woocommerce 帳戶導航側欄中?
編輯:如果我使用 orders.php 而不是 my-orders.php 那么我能夠得到“尚未下訂單”。 但仍然沒有側邊欄導航
我正在嘗試使 url.com/my-account 或短代碼 [woocommerce_my_account] 顯示訂單,而不是顯示“您好用戶(不是用戶)?”的儀表板。
我唯一擁有的是登錄后重定向到訂單而不是儀表板,但我然后轉到 /my-account 仍然顯示我不想要的儀表板。
我發現的最接近我想要的代碼是......
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
但是,如果沒有下訂單,則顯示為空白(不顯示“尚未下訂單。”帶有商店按鈕)並且我的帳戶導航側欄不顯示。 我是否必須為此創建一個自定義頁面模板才能添加到 woocommerce 帳戶導航側欄中?
編輯:如果我使用 orders.php 而不是 my-orders.php 那么我能夠得到“尚未下訂單”。 但仍然沒有側邊欄導航
截至今天,只有一種解決方法可以將另一個“我的帳戶”選項卡設置為默認選項,同時保留“儀表板”選項卡。
假設我們要默認使用“下載”選項卡。 我們要:
這在此處粘貼有點復雜,因此我將僅介紹最困難的第 1 點。 rest 可以在 StackOverflow 或本Business Bloomer 教程上輕松找到,因為它的基本重命名/刪除/添加我的帳戶選項卡有效。
根據第 1 點,我們需要覆蓋 woocommerce_account_content() function 負責默認顯示“儀表板”內容,以防我們在“我的帳戶”上並且沒有查詢變量或有非空查詢變量稱為“頁面名稱”。
因此,我將刪除 WooCommerce function,並添加我的版本:
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' );
}
現在我 go 定義了我的自定義 bbloomer_account_content() function,我基本上告訴系統:
代碼:
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;
}
}
}
}
這樣,如果我 go 到“example.com/my-account”我會看到“Downloads”標簽內容; 如果我將選項卡和 go 切換到“儀表板”或“訂單”,我將看到它們的原始內容。
請記住,這只是第 1 部分,因此第 2、3 和 4 部分需要額外的解決方法才能真正發揮作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.