es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Añadir campo a los correos electrónicos y pedidos de Woocommerce.

He añadido un selector de fecha a Woocommerce para permitir a los clientes elegir cuándo recoger sus pedidos en una tienda. Al juntar diferentes fragmentos de código, incluso he logrado mostrar los datos en la parte posterior para que puedan verse en la pantalla de pedidos por parte de los administradores.

Sin embargo, estoy teniendo problemas para hacer que los datos se muestren en los correos electrónicos de Woocommerce o en los pedidos en el frontend para un cliente. ¿Alguna sugerencia?

El código que tengo para guardar y mostrar en la parte posterior es el siguiente:

“`add_action( ‘woocommerce_checkout_update_order_meta’, ‘showe_save_date_order’ );

function showe_save_date_order( $order_id ) {

global $woocommerce;

if ( $_POST[‘collection_date’] ) update_post_meta( $order_id, ‘_collection_date’, esc_attr( $_POST[‘collection_date’] ) );
}

add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘showe_collection_weight_display_admin_order_meta’ );

function showe_collection_weight_display_admin_order_meta( $order ) {

echo ‘

Fecha de recogida: ‘ . get_post_meta( $order->get_id(), ‘collection_date’, true ) . ‘

‘;

}”’

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar la fecha recopilada en los pedidos del front-end y correos electrónicos de Woocommerce, puedes utilizar los hooks woocommerce_email_order_meta y woocommerce_order_details_after_order_table, respectivamente.

    Por ejemplo, para mostrar la fecha recopilada en los correos electrónicos, puedes agregar el siguiente código a tu archivo functions.php:

    add_action( 'woocommerce_email_order_meta', 'showe_collection_date_email_order_meta', 10, 3 );
    
    function showe_collection_date_email_order_meta( $order, $sent_to_admin, $plain_text ) {
        echo '<p><strong>Fecha de recopilación:</strong> ' . get_post_meta( $order->get_id(), '_collection_date', true ) . '</p>';
    }
    

    Y para mostrar la fecha recopilada en la página de detalles del pedido del front-end, puedes agregar el siguiente código:

    add_action( 'woocommerce_order_details_after_order_table', 'showe_collection_date_order_details', 10, 1 );
    
    function showe_collection_date_order_details( $order ) {
        echo '<p><strong>Fecha de recopilación:</strong> ' . get_post_meta( $order->get_id(), '_collection_date', true ) . '</p>';
    }
    

    Estos hooks deberían mostrar la fecha recopilada en los detalles del pedido del front-end y en los correos electrónicos de Woocommerce tanto para clientes como para administradores.

Comments are closed.