Я хочу указать дату окончания бронирования, а также дату начала. Теперь у меня есть следующее:Бронирование WooCommerce: добавление и переупорядочение данных элемента в корзине и оформление заказа
add_filter('woocommerce_get_item_data', 'display_booking_date', 10, 2);
function display_booking_date($item_data, $cart_item){
if (! empty($cart_item['booking'])) {
$date_format = apply_filters('woocommerce_bookings_date_format', wc_date_format());
$end_date = apply_filters('woocommerce_bookings_get_end_date_with_time', date_i18n($date_format, $cart_item['booking']['_end_date']));
$item_data[] = array(
'key' => __('End Date', 'your-textdomain'),
'value' => $cart_item['booking']['_end_date'],
'display' => $end_date,
);
}
return $item_data;
}
Это позволяет мне отображать дату окончания бронирования. Однако это происходит после любых других метаданных, которые я не хочу. Есть ли способ, что я мог бы либо:
1) Изменение, где дата окончания появляется так, что появляется после Даты начала и не после того, как все другие мета-данные
2) Еще лучше было бы иметь дату начала и окончания вместе как один бит метаданных.
Спасибо!
Hi Loic, Спасибо за помощь. Я, кажется, получаю предупреждение, хотя он говорит следующее: Предупреждение: неверный аргумент, предоставленный foreach() в/home/jonath59/public_html/lashis/wp-content/plugins/woocommerce/includes/class-wc-cart. php on line 591 Любая идея, что может быть причиной этого? – DigM
Hi Loic, ваш отредактированный ответ почти сработал. Кажется, я не возвращал ключи из моего item_data, и это вызывало предупреждение. Вместо этого я, казалось, получал ['name'], поэтому я изменил оператор if, чтобы сказать if ($ value ['name'] == $ item_data_start_date_key), который затем работал. – DigM
Да, это так. Спасибо за вашу помощь! – DigM