如何在 WooCommerce 中更改我所有的帐户端点 url

How to change all my account endpoints urls in WooCommerce

我使用的是 Woocommerce 版本 4.8.0 我的帐户页面有问题 我想更改所有 URL 如下图所示:

我在 Whosebug 上找到了解决方案,但代码只更改了一个 URL 不是全部

add_filter('woocommerce_get_endpoint_url', 'woocommerce_hacks_endpoint_url_filter', 10, 4);
function woocommerce_hacks_endpoint_url_filter($url, $endpoint, $value, $permalink) {
    $downloads = get_option('woocommerce_myaccount_downloads_endpoint', 'downloads');
    if (empty($downloads) == false) {
        if ($endpoint == $downloads) {
            $url = '//example.com/customer-area/dashboard';
        }
    }
    return $url;
}

有什么帮助吗?

可以在 WooCommerce 设置 > 高级 (选项卡) > 帐户端点上找到所有相关端点 slug:

然后您可以使用 switch 语句更改所需的帐户端点 URL,如下所示:

add_filter('woocommerce_get_endpoint_url', 'change_my_account_endpoint_urls', 10, 4);
function change_my_account_endpoint_urls( $url, $endpoint, $value, $permalink ) {
    switch($endpoint){
        case 'orders':
            $url = home_url('/customer-area/the-orders/');
            break;
        case 'downloads':
            $url = home_url('/customer-area/the-downloads/');
            break;
        case 'edit-address':
            $url = home_url('/customer-area/the-edit-address/');
            break;
        case 'edit-account':
            $url = home_url('/customer-area/new-edit-account/');
            break;
        case 'payment-methods':
            $url = home_url('/customer-area/the-payment-methods/');
            break;
    }
    return $url;
}

代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。

To change the My account URL itself, you need to edit the my account page in backend and change its permalink (editing the URL slug).