Продолжение: Заменить продукт "в отгрузке" на значение пользовательского поля в Woocommerce
Чтобы отобразить значение пользовательского поля _backorder_text
продукта в корзине(и в элементах заказа), которые упорядочены в обратном порядке, используйте следующее:
// Display in cart items backorder text on cart and checkout pages
add_filter('woocommerce_get_item_data', 'display_custom_cart_item_data', 10, 2);
function display_custom_cart_item_data( $cart_item_data, $cart_item ) {
if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
$backorder_text = $cart_item['data']->get_meta('_backorder_text');
}
if( isset($backorder_text) && ! empty($backorder_text) ) {
$cart_item_data[] = array(
'name' => __("Backordered", "woocommerce"),
'value' => $backorder_text,
);
}
return $cart_item_data;
}
// Order items: Save "backorder text" as order item meta data and display it everywhere
add_action('woocommerce_checkout_create_order_line_item', 'save_file_type_as_order_item_meta', 20, 4);
function save_file_type_as_order_item_meta($item, $cart_item_key, $values, $order) {
if( $values['data']->is_on_backorder( $values['quantity'] ) ) {
$backorder_text = $values['data']->get_meta('_backorder_text');
}
if( isset($backorder_text) && ! empty($backorder_text) ) {
$item->update_meta_data( __("Backordered", "woocommerce"), $backorder_text );
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.