Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WC_Order get_items() and their Quantity

I am trying to build an application which texts me my woo commerce order, order items and Quantity,

I am 90% there,

function custom_woocommerce_complete_order_sms( $order_id ) {
        global $woocommerce;
        if ( !$order_id )
        return;
        $order = new WC_Order( $order_id );

        $product_list = '';
        $order_item = $order->get_items();

        foreach( $order_item as $product ) {
            $prodct_name[] = $product['name']; 
        }

        $product_list = implode( ',\n', $prodct_name );






    require "twilio-php-master/Services/Twilio.php";


    $AccountSid = "xxxxxxxxx";
    $AuthToken = "xxxxxxxxx";

    $client = new Services_Twilio($AccountSid, $AuthToken);


    $people = array(
        "xxxxxxxxxx" => "Me",
    );


    foreach ($people as $number => $name) {

        $sms = $client->account->messages->sendMessage(



            "+44xxxxxxxxxx", 

            // the number we are sending to - Any phone number
            $number,

            // the sms body
            "Hey $name, there is a new Order, the order is, $product_list"
        );


    }

    }

My problem is I do not know how to get the item Quantity , for example my text looks like list, item 1, item 2, item 3, I want it to say item 1 x1, item 2 x2, item3 x3

I did try and dig into the email php file in abstract woo commerce folder to see how they do as they send Quantities in emails but got a little lost

also in the class WC_Abstract_Order the only other thing I could find is get_item_total which returns to the total of all items

like image 820
user2389087 Avatar asked May 13 '15 12:05

user2389087


People also ask

How do I get quantity in WooCommerce?

Cart quantity settings:Go to WooCommerce > Settings > Advance Product Quantity > and navigate to “Cart Quantities”.

How do I find order details by order ID in WooCommerce?

You have access to $order_id variable If you have access to the order ID (once again, usually the do_action or apply_filters might give you this), you have to get the order object first. Then do the exact same things as above. $order = wc_get_order( $order_id ); // Now you have access to (see above)...

How do I get product price from order in WooCommerce?

You can use get_item_meta() WC_Abstract_order method, to get the order metadata (the item quantity and the item price total).

How do I find the last order ID in WooCommerce?

To find the last order ID in WooCommerce, simply log in to your WordPress dashboard and go to WooCommerce > Orders. The very last order will be at the top of this list – simply look for the order with the highest number in the “Order” column.


1 Answers

From research you can also grab the qty from the order item

 $product['qty'];

Therefore , it was simple to loop over and add the quantity to the item name (below)

$product_details = array();
$order_items = $order->get_items();
foreach( $order_items as $product ) {
                $product_details[] = $product['name']."x".$product['qty'];

            }

            $product_list = implode( ',', $product_details );
like image 144
user2389087 Avatar answered Oct 07 '22 15:10

user2389087