https://codex.wordpress.org/Function_Reference/get_user_meta retrieves the value, but where are you putting it? Inside a field? Straight into the order data?
If I could put it in a non-editable custom field on product page that would be awesome.
But straight into the order data makes more sense if I don’t even want it to be edited.
Does this look accurate?
add_action( 'woocommerce_checkout_update_order_meta', 'user_meta_1' );
function user_meta_1( $order_id ) {
update_post_meta($order_id, [META KEY HERE], $meta_value, $prev_value);
}
You can get rid of $prev_value, and I’d make your function name more unique.
Okay and I don’t need any kind of get_user_id or anything?
You will to get the $meta_value – you haven’t set it to anything yet.
$user = get_userdata($userid);
add_action( 'woocommerce_checkout_update_order_meta', 'user_favorite_scent_1' );
function user_favorite_scent_1( $order_id ) {
update_post_meta($order_id, ['favorite_scent_1'], $userid);
}
?
Not close sorry :p
$meta_value = get_user_meta( get_current_user_id(), 'something', true );
/**
* woocommerce add user information to order
*/
$meta_value = get_user_meta( get_current_user_id(), 'user_favorite_scent_1', true );
add_action( 'woocommerce_checkout_update_order_meta', 'user_favorite_scent_1' );
function user_favorite_scent_1( $order_id ) {
update_post_meta($order_id, 'favorite_scent_1', $meta_value);
}
/**
* woocommerce display add user information to order
*/
function display_order_data_in_admin( $order ){ ?>
<div class="order_data_column">
<h4><?php _e( 'Extra Details' ); ?></h4>
<?php
echo '<p><strong>' . __( 'Scent 1' ) . ':</strong>' . get_post_meta( $order->id, 'user_favorite_scent_1', true ) . '</p>';
?>
</div>
<?php }
add_action( 'woocommerce_admin_order_data_after_order_details', 'display_order_data_in_admin' );
Does not work. any ideas?
That code needs to be within your function. I’m only giving hints so you can work it out 🙂
function user_favorite_scent_1( $order_id ) {
$meta_value = get_user_meta( get_current_user_id(), 'user_favorite_scent_1', true );
update_post_meta($order_id, 'favorite_scent_1', $meta_value);
}
Thats okay, love the challenge, and it helps me learn more as I go.
Figured it out
function user_favorite_scent_1( $order_id ) {
$meta_value = get_user_meta( get_current_user_id(), 'favorite_scent_1', true );
update_post_meta($order_id, 'favorite_scent_1', $meta_value);
}
Had the user meta key wrong
THANK YOU SO MUCH!