Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 592 Vote(s) - 3.47 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to get order meta from array in WooCommerce 3+

#1
I need to create a function that returns a value to one of my plugins [**WooCommerce Dymo Print**][1]. It requires `$order_id`, `$label` and `$object`. The `$object` is the field I need to return the value to.

I created the following code:

add_filter('wc_dymo_order_function', 'wpf_dymo_order_output',10,3);
function wpf_dymo_order_output( $order_id, $label, $object ) {

if($label=='shipping' && $object='DEL_DATE') {

//Get order from order ID
$order=wc_get_order($order_id);
$del_date='';

$order_data = $order->get_data(); // The Order data
$order_del_date = $order_data['delivery_date'];

//Return a list (string) of all product inside this order, make sure it's well formatted before printing.
return $order_del_date;
} else {
//Return order_id if is not correct label and object
return '';
}
}

It doesn't seem to work however and I think it's because the delivery_date is nested in an array and I'm not fetching it properly.

The meta data should look something like this.

Array
(
[31040763] => Array
(
[shipment_id] => 31040763
[tracktrace] => 3SMYPA000000000
[shipment] => Array
(
[barcode] => 3SMYPA000000000
[pickup] => Array
(
[postal_code] => XXXAA
[street] => STRAAT
[city] => STAD
[number] => XX
[location_name] => Gamma
)
[options] => Array
(
[signature] => 0
[delivery_date] => 2018-03-10 00:00:00
)
)
)
)

Where the delivery_date is what I need to return


[1]:

[To see links please register here]

Reply

#2
Solved it with the following code:

$order=wc_get_order($order_id);

$order_data = $order->get_meta('_shipments');
$final_array = array_values($order_data);
$order_del_date = $final_array[0]['options']['delivery_date'];

return $order_del_date;
Reply

#3
You can use `get_post_meta` to get the meta value.

get_post_meta( $order_id, 'your_meta_key', true );

Simple but effective.
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through