Php 有条件地计算元值之和

Php 有条件地计算元值之和,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,仅当订单状态设置为“已完成”时,我希望使用键_alg_wc_cog_order_price计算所有元值的总和。我已经为此创建了一个快捷码,但它没有返回正确的值,而是返回0。但是如果我将get_the_ID()替换为一个特定的post ID,比如56或11,它会返回正确的值 请告诉我哪里出错了 add_shortcode('user_on_hold_cogs', 'get_user_orders_on_hold_totalb'); function get_user_orders_on_hold

仅当订单状态设置为“已完成”时,我希望使用键_alg_wc_cog_order_price计算所有元值的总和。我已经为此创建了一个快捷码,但它没有返回正确的值,而是返回0。但是如果我将get_the_ID()替换为一个特定的post ID,比如56或11,它会返回正确的值

请告诉我哪里出错了

 add_shortcode('user_on_hold_cogs', 'get_user_orders_on_hold_totalb');
function get_user_orders_on_hold_totalb() {
    $total_amount = 0; // Initializing

    // Get current user
    if( $user = wp_get_current_user() ){

        // Get 'on-hold' customer ORDERS
        $on_hold_orders = wc_get_orders( array(
            'limit' => -1,
            //'customer_id' => $user->ID,
            'status' => 'completed',
        ) );



        foreach( $on_hold_orders as $order) {
            $stockk = (float) get_post_meta( get_the_ID() , '_alg_wc_cog_order_profit', true );
            //$total_amount += $order->get_total();
            $total_amount += $stockk ;
        }
    }
    return $total_amount;

}

快速检查时,在此处使用
get_the_id()
可能无法获取订单id[假设您试图访问订单id。]

尝试用
$order->get\u ID()
替换
get\u ID()

您的代码将成为

$stockk = (float) get_post_meta( $order->get_id(), '_alg_wc_cog_order_profit', true );

如果上述代码不起作用,请告诉我。

谢谢!这是工作!!我现在认识到我的错误了@萨利很乐意帮忙:)