У меня проблема с добавлением в корзину. У меня есть продукт с различными пользовательскими условиями для выбора. Когда клиент выбирает конкретный выбор. он добавляет в корзину. Когда клиент выбирает другой выбор и добавляет. Его показывает как второй предмет в тележке. Это нормально. Но после оплаты заказ показывает как пользовательскую опцию под пунктом 1, так и пунктом 2 без пользовательских данных.
поэтому я думал вместо того, чтобы показывать тот же продукт, что и разные предметы. Я хочу обновить пользовательские данные продукта, поэтому он всегда будет отображаться как отдельный элемент.
(Примечание. Я включил опцию «Продано отдельно» от администратора, но ее работа).
Если вы не можете сказать мне, как правильно показать в порядке, значит, адрес электронной почты, отправленный после оплаты, будет отображаться правильно.
ПРИМЕЧАНИЕ. Пользовательские данные, которые я использую, – это loc и date.
Заранее спасибо.
ОБНОВИТЬ:
См. Последние связанные вопросы (реальные рабочие примеры):
- Добавление значения пользовательского поля для заказа деталей
- Добавление динамических данных продукта в качестве метаданных элементов в Заказе
Поэтому вам нужно сначала установить атрибут продукта по отображаемому значению в своих позициях Orders, чтобы получить чистую отображаемую метку для этого значения. Затем вы должны установить эти атрибуты с любым значением в ваших связанных продуктах (эти атрибуты атрибутов мандатов будут заменены вашими таможенными значениями.
Поэтому, если ваш атрибут Name является «Первичный выбор» (например), вы установите pa_primary-choice
в:
wc_add_order_item_meta($item_id, 'pa_primary-choice', $custom_field_value, true);
Затем вы получите в своих заказах пункты detais под заголовком продукта название ярлыка с вашим настраиваемым значением поля (здесь «XXXX» – это отображаемое значение настраиваемого поля) :
Primary choice: XXXX
Извините, но поскольку ваш вопрос не совсем ясен, не очень подробный и без какого-либо кода, который вы используете. Я полагаю, что вы говорите о пользовательских полях продукта, которые вы установили для своих переменных продуктов, и которые отражаются на предметных объектах корзины.
Возможно, вам понадобится дополнительный код для добавления этой информации в виде метаданных, чтобы ее можно было рассматривать как часть заказа. Вы можете попробовать что-то вроде ниже, адаптируя код в зависимости от того, как данные устанавливаются на странице вашего продукта, на тележке и отправлены в кассу …
add_action('woocommerce_add_order_item_meta','add_custom_values_to_order_item_meta', 1, 3 ); function add_custom_values_to_order_item_meta( $item_id, $values, $cart_item_key ) { $custom_field1 = $_POST['my_custom_field1_key']; // or $values['my_custom_field1_key']; $custom_field2 = $_POST['my_custom_field2_key']; // or $values['my_custom_field2_key']; if ( !empty($custom field1) ) wc_add_order_item_meta($item_id, 'custom_meta_key1', $custom_field1, true); if ( !empty($custom field2) ) wc_add_order_item_meta($item_id, 'custom_meta_key2', $custom_field2, true); // And so on … }
Для вариантов продукта это сложнее, если вы хотите получить что-то чистое для каждого элемента, я имею в виду заголовок со значением вашего настраиваемого поля. На данный момент с предоставленной информацией и используемым кодом в вашем вопросе невозможно помочь вам больше …
Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.
Для «Продано отдельно» то , что вы можете сделать, это использовать woocommerce_is_sold_individually
hook, который будет удалять параметры переднего конца количества из продуктов:
add_filter( 'woocommerce_is_sold_individually', '__return_true' );
Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.