有条件地计算元值的总和

仅当订单状态设置为“已完成”时,我才想使用键 _alg_wc_cog_order_profit 计算所有元值的总和。我为此创建了一个简码,但它没有返回正确的值,而是返回 0。但是,如果我将 get_the_ID() 替换为特定的帖子 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;


}


繁华开满天机
浏览 88回答 1
1回答

喵喵时光机

快速检查一下,您可能无法通过使用get_the_ID()此处获得订单 ID [假设您正在尝试访问订单 ID。]尝试替换get_the_ID()为$order->get_id()您的代码将变为$stockk = (float) get_post_meta( $order->get_id(), '_alg_wc_cog_order_profit', true );如果上面的代码不起作用,请告诉我。
打开App,查看更多内容
随时随地看视频慕课网APP