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

В 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 'в заказах?

Спасибо.


person Rachit    schedule 07.02.2017    source источник


Ответы (1)


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

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

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

См. ЗДЕСЬ < / a> еще несколько объяснений этого процесса ...

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

Вам также нужно будет установить правильный ярлык атрибута вместо '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 вашей активной дочерней темы (или темы) или также в любом файле плагина.

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


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

person LoicTheAztec    schedule 07.02.2017