Ran*_*osh 5 wordpress woocommerce
我想获取“订单详细信息”页面的 URL,用户可以在其中查看其订单详细信息,因为我使用某些第 3 方 API 在产品发货后向客户发送邮件。
我试过这段代码
$order = wc_get_order(109);
$public_view_order_url = esc_url( $order->get_view_order_url() );
echo $public_view_order_url; //http://example.com/my-account/view-order/109/
Run Code Online (Sandbox Code Playgroud)
但上面代码 ^^ 生成的 URL 仅适用于登录的客户。是否可以获取公共 URL,以便用户不必登录,因为大多数客户没有任何帐户。我知道出于安全原因需要电子邮件 ID 和发票号码。
我认为的一种解决方案是创建一个自定义页面,该页面将接受order_id,order_key并email_id在 GET 参数中查询并显示结果;我必须创建整个东西,但是有没有 WooCommerce 功能/挂钩?
我用谷歌搜索了它,也花了时间在 Woo doc 但结果是否定的,
任何帮助或建议都会对我非常有帮助。
谢谢。
不确定我是否遗漏了什么,但听起来您想要的可以通过 URL 实现Order Received:
$order->get_checkout_order_received_url()
这将为您提供类似 的内容https://example.com/checkout/order-received/12345/?key=wc_order_1ab2cd3ef4g,它是成功处理订单后显示的订单收据的直接链接。
默认情况下,此链接将显示账单和运输详细信息、订单详细信息和付款方式,并且不需要客户拥有帐户或登录。
小智 3
我找不到办法做到这一点,所以我只是在电子邮件中提出了一个条件。如果他们有帐户,请链接到订单,如果他们不鼓励他们为下一个订单创建帐户。
<p><?php
$email_order_url =$order->get_view_order_url();
if ( $order->get_user() ) {
_e( "Your message with <a href='" . $email_order_number . "'>Order
Number'</a>.", 'woocommerce' );
} else {
_e( "Message to encourage them to create an account on the regular
accounts page" , 'woocommerce' );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17161 次 |
| 最近记录: |