首页 > 解决方案 > WooCommerce:在结帐页面上获取并回显“订单总额”

问题描述

我正在尝试使用此代码在函数中获取“订单总计”。但不工作。根本不打印总数。

我在这里想念什么?

add_action('woocommerce_checkout_before_order_review' , 'add_in_order_review');
function add_in_order_review(){
    $order = wc_get_order( $order_id );
    if ( $order ) {
     $totalOrder = $order->get_formatted_order_total( );
     echo $totalOrder;
    }   
}

标签: phpwordpresswoocommercecheckoutorders

解决方案


$order_id未定义,因此您也无法通过$order这种方式访问​​。该$order对象还没有针对该$cart对象创建。

所以你得到:

function action_woocommerce_checkout_before_order_review () {
    // Get cart total
    $cart_total = WC()->cart->get_cart_contents_total();
    
    echo 'CT = ' . $cart_total;
}
add_action( 'woocommerce_checkout_before_order_review', 'action_woocommerce_checkout_before_order_review', 10, 0 );

您可以访问的订单是在之前的订单中已经创建的订单

像:

function action_woocommerce_checkout_before_order_review () {
    // An order id from a previous order
    $order_id = 1966;
    
    // Get order object
    $order = wc_get_order( $order_id );

    // Is a WC order
    if ( is_a( $order, 'WC_Order') ) {
        $total_order = $order->get_formatted_order_total();
        echo 'TO = ' . $total_order;
    }   
}
add_action( 'woocommerce_checkout_before_order_review', 'action_woocommerce_checkout_before_order_review', 10, 0 );

推荐阅读