WooCommerce Дублированные мета-значения пользовательских записей для продуктов с вариантами - PullRequest
0 голосов
/ 13 ноября 2018

РЕДАКТИРОВАТЬ: мне нужно, чтобы клиент оставил на странице корзины сообщения, относящиеся к каждому элементу корзины, которые будут отображаться в корзине / оформлении заказа / заказе ... Проблема в том, что когда у меня два разных Варианты одного и того же продукта в корзине, я получаю дублированное сообщение (последнее сообщение с вариантом) для них.

Это сегмент из моего кода:

...
    foreach (WC()->cart->get_cart() as $cartItem) {
       update_post_meta($cartItem['product_id'], 'reason', $returnReason, '');
    }
...

Проблема: Этот цикл дает мне дублированные мета-значения пользовательских записей для продуктов с изменениями на странице корзины

Мои выводы пока: Я понимаю, что это происходит потому, что update_post_meta () обновляет мета-значения на product_id, а продукты с различными вариациями остаются тем же продуктом, с тем же product_id ... поэтому, когда этот цикл становится вторым вариант продукта, он просто перезаписывает значение, присвоенное продукту первого варианта.

Может быть, что-то подобное может помочь: Мне было интересно, есть ли способ обновить метаданные поста по продукту key, поскольку он уникален для каждого варианта продукта?

Эта пользовательская информация должна отображаться в моей корзине, так что может быть полезна какая-нибудь функция update_cart_item_meta ()?


Пожалуйста, дайте мне знать, если я должен предоставить больше информации. Спасибо.

1 Ответ

0 голосов
/ 15 ноября 2018

Моя ошибка состояла в том, что я подумал, что если в заказах cart / order / email / admin необходимо отображать пользовательские метаданные публикации, необходимо обновить метаданные публикации с помощью функции update_post_meta (). (Теперь, когда я читаю это предложение, я понимаю, насколько это глупое предположение.)

Вместо публикации метаданных я обновил данные корзины с помощью woocommerce_get_cart_item_from_session hook.

После этого я использовал woocommerce_get_item_data, чтобы извлечь данные, сохраненные на предыдущем шаге, и отобразить их в корзине.

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

Обратите внимание, что некоторые из упомянутых выше хуков устарели и должны быть заменены текущими . Это потому, что большинству учебных пособий и примеров, которые я нашел в Интернете, несколько лет.

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