WooCommerce возвращает URL-адрес конечной точки неправильно - PullRequest
2 голосов
/ 22 мая 2019

В настоящее время я пытаюсь получить ссылку на конечную точку с этой функцией в функции вызова WordPress AJAX:

wc_get_endpoint_url( 'einstellungen' )

Когда я делаю это на странице WooCommerce, я получаю правильную ссылку вэтот формат:

www.page.com/account/einstellungen

В моей функции AJAX URL-адрес возвращается следующим образом:

www.page.com/einstellungen

Таким образом, кажется, что страница аккаунта отсутствует.Есть идеи почему?

1 Ответ

2 голосов
/ 22 мая 2019

Путь к странице меняется в зависимости от того, где вы используете wc_get_endpoint_url( $endpoint ), поэтому в бэкэнд-функции, подключенной к WordPress ajax wp_ajax_{$action} и / или wp_ajax_nopriv_{$action}, вы всегда получите домашний URL-путь + слаг конечной точки…

Вместо этого у вас есть 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') ) );

Итак, теперь вы можете видеть 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 = '' ) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...