WooCommerce 获取端点 url 未正确返回
WooCommerce get endpoint url not returning correctly
我目前正在尝试在 WordPress AJAX 调用的函数中获取具有此函数的端点的 link:
wc_get_endpoint_url( 'einstellungen' )
当我在 WooCommerce 页面中执行此操作时,我得到了以下格式的正确 link:
www.page.com/account/einstellungen
在我的 AJAX 函数中,URL 以这种方式返回:
www.page.com/einstellungen
所以好像帐户子页面不见了。有什么想法吗?
页面路径根据您使用的位置而变化 wc_get_endpoint_url( $endpoint )
,因此在 WordPress ajax wp_ajax_{$action}
and/or wp_ajax_nopriv_{$action}
中挂钩的后端函数中,您将总是得到主页 url 路径 + 端点 slug…
相反,您有 2 种方法:
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 = '' ) {
我目前正在尝试在 WordPress AJAX 调用的函数中获取具有此函数的端点的 link:
wc_get_endpoint_url( 'einstellungen' )
当我在 WooCommerce 页面中执行此操作时,我得到了以下格式的正确 link:
www.page.com/account/einstellungen
在我的 AJAX 函数中,URL 以这种方式返回:
www.page.com/einstellungen
所以好像帐户子页面不见了。有什么想法吗?
页面路径根据您使用的位置而变化 wc_get_endpoint_url( $endpoint )
,因此在 WordPress ajax wp_ajax_{$action}
and/or wp_ajax_nopriv_{$action}
中挂钩的后端函数中,您将总是得到主页 url 路径 + 端点 slug…
相反,您有 2 种方法:
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 = '' ) {