【问题标题】:WooCommerce get endpoint url not returning correctlyWooCommerce 获取端点 url 未正确返回
【发布时间】:2019-05-22 13:19:20
【问题描述】:

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

wc_get_endpoint_url( 'einstellungen' )

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

www.page.com/account/einstellungen

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

www.page.com/einstellungen

所以帐户子页面似乎丢失了。任何想法为什么?

【问题讨论】:

    标签: php wordpress woocommerce endpoint account


    【解决方案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') ) );
    

    所以现在你可以看到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 = '' ) {
    

    【讨论】:

    • 你能看看我关于挂起钩子的问题吗? :) 我确定你知道我可以使用哪个钩子。我找不到合适的解决方案:/.
    • 好的,我会在下午做这个,因为我现在在工作。这是我遇到的问题:stackoverflow.com/questions/56263261/… 稍后我会写信给你 :) 期待!
    • @Mr.Jo 您的问题没有足够的上下文和详细信息。 “待处理”状态是订单进入支付网关之前订单创建时的默认状态。
    • 重点是我想在第一次创建每个订单时为每个订单调用一个自定义函数,所以我使用了问题中的钩子,因为这是初始状态。我怎样才能在不调用两次的情况下做得更好?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2012-04-12
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多