WooCommerce获取端点URL未正确返回

时间:2019-05-22 13:19:21

标签: php wordpress woocommerce endpoint account

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

wc_get_endpoint_url( 'einstellungen' )

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

www.page.com/account/einstellungen

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

www.page.com/einstellungen

因此,似乎帐户子页面丢失了。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

相反,您有两种方法:

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') ) );
  

现在您可以看到wc_get_endpoint_url()函数具有3个可用参数:

/**
 * 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 = '' ) {