Hola amigos. Tengo un script en el archivo functions.php de mi child theme que me crea una casilla opcional para que el usuario marque en el caso de que quiera que le envíe la factura por correo electrónico. Funciona muy bien. Yo veo que cuando el cliente marca la casilla en la sección de pedidos me aparece el texto de la casilla y el valor 1 como campo personalizado. Pero necesitaría que esta información quedara reflejada en la nota que le llegue al cliente para que quede constancia de que él solicitó el envío de la factura por correo. ¿Cómo puedo hacer esto? Gracias de antemano.
Un saludo 😀
mi dominio es https://prueba.unifilomedia.net
Contenido solo visible a usuarios registrados
Hola Carmen,
En este caso para añadir esto puedes probar el siguiente código que debes añadir en el function.php de tu childtheme
/**
* Añadir campos personalizados en el email de ordenes
*/
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['billing_invoice'] = array(
'value' => get_post_meta( $order->id, 'billing_invoice', true ),
);
return $fields;
}
Ten en cuenta que debes modificar el identificador y añadir el de tu campo personalizado
El resultado será por ejemplo
Puedes verificar más información dentro de su documentación en el siguiente enlace -> Contenido solo visible a usuarios registrados
Un Saludo
Hola Carmen,
Puedes enviarnos una captura de como estas agregando el código. para verificar si es un error en este paso.
Un saludo 🖐️
Hola Carmen.
Tienes que comprobarlo en los nuevos pedidos, lo pedido que tenias anteriormente no se mostrara.
un saludo
Hola Pepe. Sí, he hecho nuevos pedidos y no sale. Lo he mirado tanto en los correos que me han llegado a mí como en los que le han llegado al cliente ficticio.
Un saludo 😀
Hola Carmen,
Verifica sustituyendo el código que te compartio Karen con este:
/**
* Añadir campos personalizados en el email de ordenes
*/
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
$fields['my_checkbox'] = array(
'label' => __( 'Deseo recibir mi factura por correo electrónico' ),
'value' => get_post_meta( $order->id, 'my_checkbox', true ),
);
return $fields;
}
Nos comentas que tal te va, un saludo 🖐️
Hola Carmen,
Prueba lo siguiente:
De la captura que nos compartiste de los códigos, elimina el que te marco a continuación:
Luego de eliminado ese código, instala este complemento en tu wordpress > Contenido solo visible a usuarios registrados, una vez lo instales vas al siguiente menú:
Una vez dentro podrás ver todos los campos existentes en tu checkout, es acá donde insertarás nuevamente el campo de checkbox con una pequeña variación pero primero
Asegúrate de estar en esta sección que indica Billing Fields, luego haces clic donde te marco añadir nuevo campo. El campo que agregarás será con estas características:
Luego de que agregues este campo y al tener activo el último código que te he compartido debe visualizarse esta opción tanto en el pedido como en los correos:
Verifica y nos comentas, un saludo 🖐️
Hola Argenis. Funciona, pero me sigue saliendo en el formulario la casilla que yo tenía antes en el archivo functions.php. Te mando captura.
Un saludo 😀
Hola Carmen,
Como estas agregando este campo? has agregado anteriormente otro function para insertar este campo al formulario?
Verifica eliminándolo si conoces cual es, si no puedes compartirnos las modificaciones hechas a tu function.
Un saludo 🖐️
Solucionado!! Mil gracias Argenis. Que tengas un buen día 😀
Hola Carmen,
Estupendo, nos alegra que solventases el problema, recuerda si tienes alguna otra duda puedes crear un nuevo tema.
Un saludo 🖐️