Отображение значений пользовательских полей продукта в заказе после обработки

В woocommerce я использую приведенный ниже код, чтобы отображать некоторые пользовательские поля продукта, в корзине и при оформлении заказа:

add_filter( 'woocommerce_get_item_data', 'rendering_meta_field_on_cart_and_checkout', 10, 2 ); function rendering_meta_field_on_cart_and_checkout( $cart_data, $cart_item ) { $custom_items = array(); if( !empty( $cart_data ) ) { $custom_items = $cart_data; } if( isset( $cart_item['wccpf_enter_product_id'] ) ) { $diamond = $cart_item['wccpf_enter_product_id']; $pacolor = get_the_terms($diamond, 'pa_color'); foreach ( $pacolor as $pacolor ) { $color= $pacolor ->name; } $custom_items[] = array( "name" => "color", "value" => $color); } return $custom_items; } 

Как я могу отобразить эти пользовательские поля продукта wccpf_enter_product_id 'в заказах?

Благодарю.

Для достижения этой цели вы можете использовать пользовательскую функцию, подключенную в woocommerce_add_order_item_meta.

Сначала вам нужно добавить атрибут в свои продукты, чтобы получить «удобочитаемую чистую метку» для вашего настраиваемого значения поля, которое будет отображаться как метаданные элементов заказа.

Для этого вам нужно сначала создать атрибут, а затем установить его в своем продукте с любым значением (так как вы замените это значение в коде ниже).

См. ЗДЕСЬ еще несколько объяснений об этом процессе …

Вам нужно будет заменить в своем коде 'custom_field_key' вашим специальным ключом, который вы найдете в wp_woocommerce_order_itemmeta MySQL wp_woocommerce_order_itemmeta для соответствующего идентификатора элемента для вашего конкретного идентификатора заказа.
Чтобы найти соответствующий item ID для заказа, вы можете wp_woocommerce_order_items поиск в wp_woocommerce_order_items MySQL wp_woocommerce_order_items с идентификатором заказа …

Вам также нужно установить правильный 'pa_your_attribute' атрибутов вместо 'pa_your_attribute' чтобы отобразить в ваших заказах правильный текст ярлыка для этого настраиваемого значения поля.
(см. ниже другие аналогичные ответы).

Таким образом, ваш код будет выглядеть примерно так:

 // ADD THE INFORMATION AS META DATA SO THAT IT CAN BE SEEN AS PART OF THE ORDER add_action('woocommerce_add_order_item_meta','add_and_update_values_to_order_item_meta', 1, 3 ); function add_and_update_values_to_order_item_meta( $item_id, $item_values, $item_key ) { // Getting your custom product ID value from order item meta $custom_value = wc_get_order_item_meta( $item_id, 'custom_field_key', true ); // Here you update the attribute value set in your simple product wc_update_order_item_meta( $item_id, 'pa_your_attribute', $custom_value ); } } 

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Это должно работать


Похожие ответы:

  • Добавление значения пользовательского поля для заказа деталей

  • Добавление динамических данных продукта в качестве метаданных элементов в Заказе

  • Отображение пользовательских данных продукта в представлении «Элементы заказа»