如何更改WooCommerce的网址"我的帐户" Wordpress中的菜单?

时间:2016-10-13 16:30:41

标签: php wordpress woocommerce

我在Wordpress中使用WooCommerce插件。

我想更改"下载"的网址。显示在" my-account"上的链接由WooCommerce创建的页面。

enter image description here

我想将其从关联到/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/

我该如何改变?

1 个答案:

答案 0 :(得分:0)

过去,我这样做的方法是通过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可能不是您的特定端点。