返回介绍

获取 WooCommerce 页面地址的方法

发布于 2022-01-02 19:03:56 字数 3282 浏览 1122 评论 0 收藏 0

WooCommerce的顶级页面有商店页、购物车页、结账页、我的账户页和用户协议页,结账页和账户页有次级页面,分别由结账端点和账户端点来指定,也就是endpoints。顶级页面是WordPress里真正的页面,次级页面没有实体页面,只是靠重定向规则动态创造出来的。本文介绍WooCommerce中获取这些页面地址的专用函数。

如何设置WooCommerce顶级页面

一般首次安装时就会提示你设置,如果之后想更改,可以到WooCommerce的高级选项卡下更新设置。这些设置会保存在wp_options表中。

WooCommerce的商店页在产品选项卡下设置。

如何获取顶级页面地址

$shop_url      = wc_get_page_permalink( 'shop' );
$cart_url      = wc_get_page_permalink( 'cart' );
$checkout_url  = wc_get_page_permalink( 'checkout' );
$myaccount_url = wc_get_page_permalink( 'myaccount' );
$privacy_url   = wc_get_page_permalink( 'terms' );

对cart和checkout两个使用频率高的地址,WooCommerce提供了特殊函数。

$cart_url      = wc_get_cart_url();
$checkout_url  = wc_get_checkout_url();

要获取page ID,可以使用wc_get_page_id()函数。

$shop_id      = wc_get_page_id( 'shop' );
$cart_id      = wc_get_page_id( 'cart' );
$checkout_id  = wc_get_page_id( 'checkout' );
$myaccount_id = wc_get_page_id( 'myaccount' );
$privacy_id   = wc_get_page_id( 'terms' );

如何获取账户下的次级页面地址

$orders_url          = wc_get_account_endpoint_url( 'orders' );
$view_order_url      = wc_get_account_endpoint_url( 'view-order' );
$download_url        = wc_get_account_endpoint_url( 'downloads' );
$edit_account_url    = wc_get_account_endpoint_url( 'edit-account' );
$edit_address_url    = wc_get_account_endpoint_url( 'edit-address' );
$payment_methods_url = wc_get_account_endpoint_url( 'payment-methods' );
$lost_password_url   = wc_get_account_endpoint_url( 'lost-password' );
$logout_url          = wc_get_account_endpoint_url( 'customer-logout' );

同样,某些地址定义了快捷函数。

$edit_account_url  = wc_customer_edit_account_url();
$lost_password_url = wc_lostpassword_url();
$logout_url        = wc_logout_url();

获取结账端点页面地址

这些地址都是结账的时候使用的,付款和已收到订单的地址,在订单ID确定的情况下可以稳定获取。添加付款方法、删除付款方法和设置默认付款方式是结算页面用到的,会和网关有关,不能稳定获取。

假设Order ID为1,来获取图中前两项地址。

$order              = wc_get_order( 1 );
$payment_url        = $order->get_checkout_payment_url();
$order_received_url = $order->get_checkout_order_received_url();

如果要获取添加付款方法地址,可以用wc_get_endpoint_url()函数,$value是附加在url后面的参数,用法如下:

// 用法:wc_get_endpoint_url( $endpoint, $value = '', $permalink = '' )
$add_payment_url = wc_get_endpoint_url( 'add-payment-method', '', wc_get_checkout_url() );

在设置中更改endpoint地址后会怎么样

更改后依然用上面的方法来获取地址,默认设置里显示的endpoints就是默认的endpoints。例如你把查看订单地址从“view-order”改成“view-your-order”,则

$view_order_url = wc_get_account_endpoint_url( 'view-order' );
//返回值
// https://www.wenjiangs.com/my-account/view-your-order

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文