Отобразить и сохранить добавленные пользовательские данные корзины в Woocommerce Cart, Checkout и Orders - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь добавить товар в корзину с метаданными элемента корзины.Вот код:

$cart_item_data = array();

$cart_item_data['add_size'] = array('PR CODE'=>'1.0');

print_r(WC()->cart->add_to_cart( $product_id ,1,  0,array(), $cart_item_data ));

Он добавляет товар в корзину, но не отображается в заказе или в корзине.

Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

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

WC()->cart->add_to_cart( $product_id ,1,  0,array(), array('add_size' => array('PR CODE'=>'1.0') );

Вы будете использовать следующий код:

// Display custom cart item meta data (in cart and checkout)
add_filter( 'woocommerce_get_item_data', 'display_cart_item_custom_meta_data', 10, 2 );
function display_cart_item_custom_meta_data( $item_data, $cart_item ) {
    $meta_key = 'PR CODE';
    if ( isset($cart_item['add_size']) && isset($cart_item['add_size'][$meta_key]) ) {
        $item_data[] = array(
            'key'       => $meta_key,
            'value'     => $cart_item['add_size'][$meta_key],
        );
    }
    return $item_data;
}

// Save cart item custom meta as order item meta data and display it everywhere on orders and email notifications.
add_action( 'woocommerce_checkout_create_order_line_item', 'save_cart_item_custom_meta_as_order_item_meta', 10, 4 );
function save_cart_item_custom_meta_as_order_item_meta( $item, $cart_item_key, $values, $order ) {
    $meta_key = 'PR CODE';
    if ( isset($values['add_size']) && isset($values['add_size'][$meta_key]) ) {
        $item->update_meta_data( $meta_key, $values['add_size'][$meta_key] );
    }
}

Код входит вФайл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

Пример отображения на корзине (и оформление заказа) страниц:

enter image description here

Пример отображения заказов (и уведомлений по электронной почте):

enter image description here

0 голосов
/ 03 февраля 2019

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

WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation );

Ссылка: https://docs.woocommerce.com/wc-apidocs/source-class-WC_AJAX.html#356-397

Посмотрите и на это: добавить мету втовар в корзине WooCommerce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...