Как отправить дополнительные поля с помощью кода в заказ (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

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

    Ваш ответ

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