В 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
MySQLwp_woocommerce_order_itemmeta
для соответствующего идентификатора элемента для вашего конкретного идентификатора заказа.
Чтобы найти соответствующийitem ID
для заказа, вы можетеwp_woocommerce_order_items
поиск вwp_woocommerce_order_items
MySQLwp_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 вашей активной дочерней темы (или темы), а также в любом файле плагина.
Это должно работать
Похожие ответы:
Добавление значения пользовательского поля для заказа деталей
Добавление динамических данных продукта в качестве метаданных элементов в Заказе
Отображение пользовательских данных продукта в представлении «Элементы заказа»