Как отправить дополнительные поля с помощью кода в заказ (order) woocommerce

Ответ

Попробуйте добавить произвольные поля к заказу следующим образом:

 add_action( 'woocommerce_payment_complete', 'te_add_item_data' );
 function te_add_item_data( $order_id ){
 $order = new WC_Order( $order_id );
 if ( sizeof( $order->get_items() ) > 0 ) {
 foreach ( $order->get_items() as $id => $item ) {
 wc_update_order_item_meta( $id, ''meta_title', 'value' );
 // или wc_add_order_item_meta()
 }
 }
 }
 

Если вы используете код из другого вопроса, который добавляет заказ кодом. То у вас уже есть переменная $order, вам остается:
 if ( sizeof( $order->get_items() ) > 0 ) {
 foreach ( $order->get_items() as $id => $item ) {
 wc_update_order_item_meta( $id, '_random_number', rand() );
 // или wc_add_order_item_meta()
 }
 }
 

Описание функции, которая добавляет произвольные мета данные:

 /**
 * WooCommerce Order Item Meta API - Update term meta.
 *
 * @access public
 * @param mixed $item_id
 * @param mixed $meta_key
 * @param mixed $meta_value
 * @param string $prev_value (default: '')
 * @return bool
 */
$bool = wc_update_order_item_meta( $item_id, $meta_key, $meta_value, $prev_value );
 

Если вам нужно добавить произвольные поля при заказе, что бы они были в корзине(отображались) и участвовали в процессе оплаты, рекомендую прочесть статью:
How to Add Custom Data to WooCommerce Order

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.