【问题标题】:How can I change the URL of WooCommerce "My Account" menu in Wordpress?如何更改 Wordpress 中 WooCommerce“我的帐户”菜单的 URL?
【发布时间】:2016-10-13 16:30:41
【问题描述】:

我在 Wordpress 中使用 WooCommerce 插件。

我想更改 WooCommerce 创建的“我的帐户”页面上显示的“下载”链接的 URL。

我想把链接从/my-account/downloads/改成/customer-area/dashboard/

我尝试添加一个自定义函数来更改菜单项的标题和端点。

function wpb_woo_my_account_order() {
    $myorder = array(
        'edit-account'       => __( 'Change My Details', 'woocommerce' ),
        'dashboard'          => __( 'Dashboard', 'woocommerce' ),
        'orders'             => __( 'Orders', 'woocommerce' ),
        'customer-area/dashboard' => __( 'Download MP4s', 'woocommerce' ),
        'edit-address'       => __( 'Addresses', 'woocommerce' ),
        'payment-methods'    => __( 'Payment Methods', 'woocommerce' ),
        'customer-logout'    => __( 'Logout', 'woocommerce' ),
    );
    return $myorder;
}
add_filter ( 'woocommerce_account_menu_items', 'wpb_woo_my_account_order' );

但是,无论我使用什么端点,它都嵌套在 /my-account/

我该如何改变呢?

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    我过去的做法是通过 Woocommerce woocommerce_get_endpoint_url 过滤器更改端点 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;
    }
    

    显然,更改$url 变量以适应您的环境。我们使用 get_option() 函数的原因是因为您可以在 Woocommerce 设置中更改端点,这意味着 downloads 可能不是您的特定端点。

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2017-09-06
      相关资源
      最近更新 更多