删除我的帐户信息中心并重定向到另一个端点,例如下载

时间:2017-02-01 15:30:59

标签: woocommerce

我不希望客户与恼人的Hello xy链接到myaccount-dashboard,当他们点击"我的帐户"时,你可以从这里开始blabla。

我的帐户信息中心是否有端点?我没有在woocommerce的后端找到它>设置>帐户......

工作原理是:我在菜单/导航下设置自定义链接 ...称之为"我的帐户"并设置链接到/ myaccount / downloads。 因此,当客户登录并点击“我的帐户”时,他们会被重定向到“下载”。

我想知道,还有另一种摆脱仪表板的方法吗? 还是重定向解决方案?感谢。

3 个答案:

答案 0 :(得分:4)

使用以下功能删除它。将下载更改为您的要求。

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

答案 1 :(得分:0)

仔细观察似乎有一些方法可以做到这一点。看一下my-account.php模板。您可以覆盖它,但我发现如果您删除woocommerce_account_content挂钩,您会收到弃用通知,而WooCommerce认为您有一个过时的模板并且无论如何都会添加内容。

查看模板,您将看到两个钩子。侧边菜单导航已添加到woocommerce_account_navigation,内容已添加到woocommerce_account_content功能。您可以从其挂钩中删除默认值,并仅添加下载内容。

function so_41983566_remove_account_dadshboard(){
    remove_action( 'woocommerce_account_navigation', 'woocommerce_account_navigation' );
    remove_action( 'woocommerce_account_content', 'woocommerce_account_content' );
    add_action( 'woocommerce_account_content', 'so_41983566_download_content' );
}
add_action( 'woocommerce_account_navigation', 'so_41983566_remove_account_dadshboard', 1 );

function so_41983566_download_content(){
    do_action( 'woocommerce_account_downloads_endpoint' );
}

woocommerce_account_content()woocommerce_account_navigation()都是可插入功能,您只需在主题/插件中定义新版本即可。

答案 2 :(得分:0)

此链接解释了所有内容:

https://github.com/woocommerce/woocommerce/wiki/Customising-account-page-tabs

  1. 首先,您需要创建一个端点:

    function my_custom_endpoints() {
        add_rewrite_endpoint( 'my-custom-endpoint', EP_ROOT | EP_PAGES );
    }
    add_action( 'init', 'my_custom_endpoints' );    
    function my_custom_query_vars( $vars ) {
        $vars[] = 'my-custom-endpoint';    
        return $vars;
    }
    add_filter( 'query_vars', 'my_custom_query_vars', 0 );
    
  2. 然后创建菜单项:

    function my_custom_my_account_menu_items( $items ) {
        $logout = $items['customer-logout'];
        unset( $items['customer-logout'] );
        $items['my-custom-endpoint'] = __( 'My Custom Endpoint', 'woocommerce' );
        $items['customer-logout'] = $logout;
        return $items;
    }
    add_filter( 'woocommerce_account_menu_items', 'my_custom_my_account_menu_items' );
    
  3. 向端点添加内容

    function my_custom_endpoint_content() {
        echo '<p>Hello World!</p>';
    }
    add_action( 'woocommerce_account_my-custom-endpoint_endpoint', 'my_custom_endpoint_content' );