Обновить пользовательское метаполе элемента заказа woocommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Обновить пользовательское метаполе элемента заказа woocommerce

Сообщение Anonymous »

Я пытаюсь добавить простое поле ввода в серверную часть заказа и использовать его для обновления информации о позиции моего заказа. Это простая мета под названием «Количество людей».
Кажется, все работает нормально, за исключением того, что сохранение порядка НЕ ​​обновляет мета-поле так, как оно создано сейчас. Что я могу делать не так?

Код: Выделить всё

/* Add custom field to cart item data */
add_filter('woocommerce_add_cart_item_data', function ($cart_item_data, $product_id, $variation_id) {
if (isset($_POST['number_of_people'])) {
$cart_item_data['number_of_people'] = (int) sanitize_text_field($_POST['number_of_people']);
}
return $cart_item_data;
}, 10, 3);

/* Add custom field to order line item */
add_action('woocommerce_checkout_create_order_line_item', function ($item, $cart_item_key, $values, $order) {
if (isset($values['number_of_people'])) {
$item->add_meta_data(__('Number of People', 'woocommerce'), $values['number_of_people']);
}
}, 10, 4);

add_action('woocommerce_admin_order_data_after_billing_address', 'print_custom_fields_in_the_admin_order', 10, 1);
function print_custom_fields_in_the_admin_order($order)
{
$order = wc_get_order($order->get_id());
foreach ($order->get_items() as $item_id => $item) {
if (has_term('group-class', 'product_cat', $item->get_product_id())) {
$number_of_people = $item->get_meta('Number of People', true);
error_log('Number of People: ' . $number_of_people);
break;
}
}

?>

[h4]Additional Information[/h4]
Click on the fields below to edit the values

Number of People:


Подробнее здесь: [url]https://stackoverflow.com/questions/79790221/update-woocommerce-order-item-custom-meta-field[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»