Necesito agregar una columna personalizada para los artículos de pedido y mostrar meta del producto específico en esta columna. Me refiero a algo como la imagen a continuación, ¡no puedo encontrar ninguna acción de woocommerce para agregar esta columna!
Mostrar meta del producto en la tabla de artículos del pedido en Detalles del pedido
mo saeedi
Puedes usar el siguiente código:
// Add custom column headers here
add_action('woocommerce_admin_order_item_headers', 'my_woocommerce_admin_order_item_headers');
function my_woocommerce_admin_order_item_headers() {
// set the column name
$column_name="Test Column";
// display the column name
echo '<th>' . $column_name . '</th>';
}
// Add custom column values here
add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
function my_woocommerce_admin_order_item_values($_product, $item, $item_id = null) {
// get the post meta value from the associated product
$value = get_post_meta($_product->post->ID, '_custom_field_name', 1);
// display the value
echo '<td>' . $value . '</td>';
}
Lo comenté, por lo que debería ser lo suficientemente claro, pero en pocas palabras, este código agrega una columna personalizada, llamada “Columna de prueba”, y esta columna extrae el valor del campo personalizado del producto, llamado “_custom_field_name”.
-
Gracias, Gracias, Gracias…, me salvaste muchas veces! gracias de nuevo
– Mo Saeedi
3 de septiembre de 2014 a las 14:21
-
El único problema con este código es que extrae el valor meta actual del producto… en lugar del valor meta que se capturó (potencialmente) durante el pago.
– Garconís
5 de enero de 2017 a las 15:08
-
@Marin Atanasov si necesito editar el valor meta personalizado de la línea de pedido, ¿cómo puedo hacerlo?
– Rezoán
10 de octubre de 2020 a las 4:57
-
¿Hay alguna manera de eliminar también las columnas predeterminadas de woocommerce, Costo, cantidad, total, impuestos?
– Tassos Voulgaris
14 de julio de 2021 a las 8:39
Desde WooCommerce 3.0, no puede llamar directamente a product_id. Necesitas reemplazar esto:
$product_id = $_product->get_id();
$value = get_post_meta($product_id, '_custom_field_name', 1);
Esto hará el truco y eliminará todos los errores y avisos.