Я ищу функцию, чтобы сохранить цену продукта для каждой корзины или обычную цену на метатере линии заказа Woocommerce. Я создал следующую функцию для этого, но ее не работает. Я хочу хранить цену продукта корзины как новый пользовательский предмет Meta.

add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );
function custom_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {

$custom_field_value = get_post_meta( $item->get_product_id(), 'price', true );

    if ( ! empty( $custom_field_value ) ){
        $item->update_meta_data( 'meta_new', $custom_field_value );
    }

}
1
developerme 27 Сен 2019 в 11:33

1 ответ

Лучший ответ

Вы можете сделать следующим образом -

function add_line_item_meta_data( $item, $cart_item_key, $values, $order ) {
    // add item price
    $product = $values['data'];
    $item->add_meta_data( 'meta_new', $product->get_price() );
}
add_action( 'woocommerce_checkout_create_order_line_item', 'add_line_item_meta_data', 99, 4 );

Код переходит в файл functions.php вашей активной темы.

1
itzmekhokan 27 Сен 2019 в 09:22