Edición de las páginas de vista de pedidos de Mi cuenta en WooCommerce
⏰ 3 minutos de lectura
mohamed adel
En las páginas de “Vista de pedidos” de Mi cuenta de WooCommerce, se supone que debo agregar un seguimiento visual como este:
En las páginas reales, para rastrear cada pedido, arriba de los detalles del pedido:
El primer problema es que no sé cómo agregar el código html y php a la página de orden de visualización. Intenté agregar ganchos en functions.php pero no funcionó.
El segundo problema es que quiero obtener el estado de cada pedido en la página Ver pedido (por ejemplo, procesamiento o entrega, etc.)
Aquí está mi código functions.php para intentar lograrlo:
// **
// * Add custom tracking code to the view order page
// */
add_action( 'woocommerce_view_order', 'my_custom_tracking' );
function my_custom_tracking(){
$order = wc_get_order( $order_id );
$order_id = $order->get_id(); // Get the order ID
$parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…)
$user_id = $order->get_user_id(); // Get the costumer ID
$user = $order->get_user(); // Get the WP_User object
echo $order_status = $order->get_status(); // Get the order status
}
LoicTheAztec
Hay algunos errores en tu código:
los $order_id la variable ya está incluida como argumento de función para este gancho, pero falta en tu código.
Tú no puedo usarecho con $order_status = $order->get_status();
Así que prueba en su lugar:
add_action( 'woocommerce_view_order', 'my_custom_tracking' );
function my_custom_tracking( $order_id ){
// Get an instance of the `WC_Order` Object
$order = wc_get_order( $order_id );
// Get the order number
$order_number = $order->get_order_number();
// Get the formatted order date created
$date_created = wc_format_datetime( $order->get_date_created() );
// Get the order status name
$status_name = wc_get_order_status_name( $order->get_status() );
// Display the order status
echo '<p>' . __("Order Status:") . ' ' . $status_name . '</p>';
}
El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.
Si quieres cambiar los textos subrayados amarillos en su segunda captura de pantalla, tendrá que hacer cambios en myaccount/view-order.php archivo de plantilla:
Una vez hecho esto y una vez copiadas las plantillas de WooCommerce a su tema activo como se explica en la documentación, abra editar myaccount/view-order.php archivo de plantilla.
Los cambios a realizar se ubican en las líneas de la 26 a la 34:
<p><?php
/* translators: 1: order number 2: order date 3: order status */
printf(
__( 'Order #%1$s was placed on %2$s and is currently %3$s.', 'woocommerce' ),
'<mark class="order-number">' . $order->get_order_number() . '</mark>',
'<mark class="order-date">' . wc_format_datetime( $order->get_date_created() ) . '</mark>',
'<mark class="order-status">' . wc_get_order_status_name( $order->get_status() ) . '</mark>'
);
?></p>
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información