如何使用短代码在感谢页面上获取当前订单信息
How to get current order info on the thank you page using shortcode
我正在尝试在 thankyou.php
页面上引入一个 shortcode
来显示客户刚下的订单的详细信息。
如果我像这样在 php 中编写代码,它会工作并显示总数:
<?php echo $order->get_total(); ?>
现在我正尝试通过短代码获得相同的结果,但我不知道某些参数,因此无法正常工作。
<?php
add_shortcode( 'custom-woocommerce-total' , 'custom_total' );
function custom_total(){
$customer_id = get_current_user_id();
$order = new WC_Order($order_id); // I suppose that's not right.
return $order->get_total();
} ?>
任何人都可以帮助我理解我做错了什么吗?
您需要先使用 global $wp
变量获取 order id
。试试这个:
add_shortcode('custom-woocommerce-total', 'custom_total');
function custom_total($attr)
{
if (is_wc_endpoint_url('order-received'))
{
global $wp;
$order_id = absint($wp->query_vars['order-received']);
if ($order_id)
{
$order = new WC_Order($order_id);
if($order)
{
return $order->get_total();
}
}
}
}
并且在 thankyou
页面模板中这样使用:
echo do_shortcode('[custom-woocommerce-total]');
不要忘记覆盖模板。
我正在尝试在 thankyou.php
页面上引入一个 shortcode
来显示客户刚下的订单的详细信息。
如果我像这样在 php 中编写代码,它会工作并显示总数:
<?php echo $order->get_total(); ?>
现在我正尝试通过短代码获得相同的结果,但我不知道某些参数,因此无法正常工作。
<?php
add_shortcode( 'custom-woocommerce-total' , 'custom_total' );
function custom_total(){
$customer_id = get_current_user_id();
$order = new WC_Order($order_id); // I suppose that's not right.
return $order->get_total();
} ?>
任何人都可以帮助我理解我做错了什么吗?
您需要先使用 global $wp
变量获取 order id
。试试这个:
add_shortcode('custom-woocommerce-total', 'custom_total');
function custom_total($attr)
{
if (is_wc_endpoint_url('order-received'))
{
global $wp;
$order_id = absint($wp->query_vars['order-received']);
if ($order_id)
{
$order = new WC_Order($order_id);
if($order)
{
return $order->get_total();
}
}
}
}
并且在 thankyou
页面模板中这样使用:
echo do_shortcode('[custom-woocommerce-total]');
不要忘记覆盖模板。