WooCommerce 获取端点 url 未正确返回

Mr.*_* Jo 5 php account wordpress endpoint woocommerce

我目前正在尝试在 WordPress AJAX 调用函数中使用此函数获取端点的链接:

wc_get_endpoint_url( 'einstellungen' )
Run Code Online (Sandbox Code Playgroud)

当我在 WooCommerce 页面中执行此操作时,我得到以下格式的正确链接:

www.page.com/account/einstellungen
Run Code Online (Sandbox Code Playgroud)

在我的 AJAX 函数中,URL 以这种方式返回:

www.page.com/einstellungen
Run Code Online (Sandbox Code Playgroud)

所以看来帐户子页面丢失了。有什么想法吗?

Loi*_*tec 6

页面路径根据您使用的位置而变化wc_get_endpoint_url( $endpoint ),因此在 WordPress ajax 中挂钩的后端函数中wp_ajax_{$action} and/or wp_ajax_nopriv_{$action} you will always get the home url path + the endpoint slug\xe2\x80\xa6

\n\n

相反,你有两种方法:

\n\n

1)功能wc_get_account_endpoint_url( $endpoint ) that will work nicely:

\n\n
echo wc_get_account_endpoint_url( \'einstellungen\' );\n
Run Code Online (Sandbox Code Playgroud)\n\n

2)或者你也可以使用wc_get_endpoint_url( $endpoint, \'\', $permalink ), where $permalink (第三个参数) will be like:

\n\n
echo wc_get_endpoint_url( \'einstellungen\', \'\', get_permalink( get_option(\'woocommerce_myaccount_page_id\') ) );\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

所以现在如你所见wc_get_endpoint_url() function has 3 available arguments:

\n\n
/**\n * Get endpoint URL.\n *\n * Gets the URL for an endpoint, which varies depending on permalink settings.\n *\n * @param  string $endpoint  Endpoint slug.\n * @param  string $value     Query param value.\n * @param  string $permalink Permalink.\n *\n * @return string\n */\nfunction wc_get_endpoint_url( $endpoint, $value = \'\', $permalink = \'\' ) {\n
Run Code Online (Sandbox Code Playgroud)\n
\n