开发者问题收集

WooCommerce 获取端点 URL 未正确返回

2019-05-22
5892

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

wc_get_endpoint_url( 'einstellungen' )

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

www.page.com/account/einstellungen

在我的 AJAX 函数中,URL 返回方式如下:

www.page.com/einstellungen

因此,似乎缺少帐户子页面。有什么想法吗?

1个回答

页面路径根据您使用 wc_get_endpoint_url( $endpoint ) 的位置而变化,因此在挂载在 WordPress ajax wp_ajax_{$action} 和/或 wp_ajax_nopriv_{$action} 中的后端函数中,您将始终获得主 URL 路径 + 端点 slug…

相反,您有两种方法:

1) 函数 wc_get_account_endpoint_url( $endpoint ) 可以很好地工作:

echo wc_get_account_endpoint_url( 'einstellungen' );

2) 或者您也可以使用 wc_get_endpoint_url( $endpoint, '', $permalink ) ,其中 $permalink (第三个参数) 将类似于:

echo wc_get_endpoint_url( 'einstellungen', '', get_permalink( get_option('woocommerce_myaccount_page_id') ) );

So now as you can see wc_get_endpoint_url() function has 3 available arguments:

/**
 * Get endpoint URL.
 *
 * Gets the URL for an endpoint, which varies depending on permalink settings.
 *
 * @param  string $endpoint  Endpoint slug.
 * @param  string $value     Query param value.
 * @param  string $permalink Permalink.
 *
 * @return string
 */
function wc_get_endpoint_url( $endpoint, $value = '', $permalink = '' ) {
LoicTheAztec
2019-05-22