En un artículo anterior vimos cómo usar los campos personalizados de WordPress en entradas. Puesto que se puede aplicar lo mismo a cualquier Custom Post Type, en este artículo veremos cómo crear campos personalizados en productos de WooCommerce.
Resultado Final
Al final, obtendremos algo similar a lo que se muestra en la siguiente imagen.

Generalidades
WooCommerce te permite agrupar productos por categorías y etiquetas, además puedes agregar atributos de productos, sin embargo, si quieres añadir características adicionales como parte de la información del producto, puedes evaluar usar campos personalizados.
Por ejemplo para una tienda de libros podríamos considerar los siguientes campos personalizados:
- Edición
- Autor(es)
- Género
- Editorial
- Enlace a recursos externos, etc
Crear campos personalizados
Para añadir los campos personalizados de manera simple, usaremos el plugin Advanced Custom Fields.
Tras instalar el plugin verás que te aparece una opción en el menú del dashboard llamada custom fields, tras ingresar lo primero que tienes que hacer es agregar un nuevo Field Group e ir añadiendo cada uno de los campos personalizados.

Es posible añadir campos de tipo de selección, tal como se ve en la imagen.

Los campos de selección permiten definir condicionales para nuevos campos basado en los valores de selección.

Al final tras ingresar los campos personalizados podrás ver en la pantalla de edición de producto los campos creados, listos para ser usados como parte de la información del producto.

Mostrar Campos personalizados en el front-end de tu sitio
Todo lo realizado anteriormente de momento no se esta mostrando a los usuarios de tu tienda, para mostrar esta información en el detalle de producto puedes hacer uso de los hooks de WooCommerce y de las funciones del plugin Advanced custom field.
Coloca el siguiente código al final del archivo functions.php de tu theme.
add_action( 'woocommerce_single_product_summary', "dcms_caracteristicas_producto", 8 );
function dcms_caracteristicas_producto(){
if (function_exists('get_field')){
echo "<p><strong>Edición:</strong> ". get_field('edicion')."</p>";
echo "<p><strong>Autor: </strong>". get_field('autor')."</p>";
echo "<p><strong>Género: </strong>". get_field('genero')."</p>";
echo "<p><strong>Editorial: </strong>". get_field('editorial')."</p>";
}
}
En el código anterior:
- Usamos el hook woocommerce_single_product_summary que hace referencia a la función dcms_caracteristicas_producto
- Dentro de la función comprobamos si la función get_field del plugin Advanced Custom fields existe
- Si la función existe, entonces la usamos para recuperar los campos creados
¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores.
Le agradezco su aporte me ha resuelto parte del problema que tengo. He incluido las campos personalizados en la página de producto. Ahora necesito añadir alguno de los campos personalizados en el listado de productos. Me podrías ayudar. De antemano muchas gracias.
De manera general, podrías revisar los Hooks que tiene Woocommerce: https://docs.woocommerce.com/wc-apidocs/hook-docs.html , alguno de ellos debería tener efecto en el listado.
Hola, sabes que pasó con estas páginas de los hooks ? he intentado entrar a varias y no funcionan.
Hola Hugo, revisa este artículo en donde trato un plugin para ver visualmente los Hooks de WooCommerce y el tema Storefront. https://decodecms.com/guia-visual-de-hooks-para-storefront-y-woocommerce/
Siento que estaba tan cerca de solucionar mi problema hasta que me salio este aviso
Los cambios en tu código PHP se han revertido debido a un error en la línea 65 del archivo wp-content/themes/north-wp/functions.php. Por favor, arréglalo y trata de guardar de nuevo.
syntax error, unexpected ‘>’
QUÉ PUEDO HACER ? NO SE QUE ES LO QUE FALLA.
Hola, revisa bien el código, prueba con el código de ejemplo sin realizar cambios, te sugiero además usar el Administrador de Archivos de tu Cpanel en lugar de hacer los cambios con el editor de tu WordPress, ya que este último es muy limitado y te reportará a veces errores cuando no los hay.
Un buen tutorial,gran ayuda, gracias.
Tengo una consulta, voy a hacer una importación masiva de datos de productos por CSV, a la hora de importar te pregunta donde quieres cada columna de datos. He hecho una prueba y los que vienen en origen estan todos pero no salen los nuevos campos creados. ¿Hay alguna solución?
Hola, podrías revisar el siguiente hilo de discusión del foro de ACF, https://support.advancedcustomfields.com/forums/topic/import-custom-posts-via-csv/ , revisa especialmente las últimas entradas.
Parece ser que existe un error en la sintaxis, al menos para las versiones más recientes de WordPress.
Este código, al menos no da un error en la sintaxis al intentar guardarlo:
sin embargo por algún motivo, no me pinta el valor del campo en el front….
Hola, cuando es un error de sintaxis es PHP quien lo valida, no WordPress, qué error te aparece cuando usas el código de este artículo, el código que envías no veo que imprima los campos.
hola exente tutorial , todo perfecto lo único es que no se imprimen los datos capturados en el frot…. espero su valiosa colaboración
Hola, tal como lo tienes si que debería mostrarse, asegúrate de usar los nombres de los campos en lugar de labels, los nombres son usualmente escritos siempre en minúsculas y sin caracteres especiales. Si sigues con problemas prueba activar y colocar el código en otro theme, usa alguno de los que viene por defecto.
Muy buen aporte me ayudo mucho, me gustaria saber como agrego esos campos creados a la zona de widgets para poder usarlos en un sidebar, estoy en proceso de creacion de una tienda web y los necesito para crear el catalogo de filtros.
Gracias
Hola, parece que hay un plugin que te puede ayudar con los filtros y que veo que se integra con ACF (Advanced Custom Fields)
Hola
Vuelvo a releer éste post y a visionar el video anexo buscando información sobre la manera en qué podría implementar la opción de que al pagar el cliente con PayPal se sume ése porcentaje que cobra PayPal al total del pedido, y que dicho sobreprecio salga especificado en la orden de pedido antes de aceptar; para que el cliente puede continuar o pagar el pedido por Stripe sin pagar el sobreprecio de PayPal.
Imagino que quizá no sea objeto de éste tutorial
Enhorabuena por el contenido tan valioso que generas y gracias por compartirlo.
Un saludo
Hola, prueba con un plugin, por ejemplo: https://es.wordpress.org/plugins/woo-payment-discounts/ , revisa si te permite ingresar un número negativo, sino tendría que cambiarlo por código modificando el plugin.
Perfecto!! Funciona perfectamente. Solo que no sé cómo hacer para que esos campos se muestren en otro color para destacarlos sobre el resto del texto.
Hola, usa código CSS al mostrar los campos en el front-end, por ejemplo en:
Aunque lógicamente lo mejor sería que tengas clases CSS que puedas reutilizar en lugar de colocar estilos en línea.
Gracias por el aporte, esta excelente , pregunta que plantillas, podrias recomendar para una tienda en linea de aparatos electronicos y domesticos.
Hola StoreFront te podría servir, es un theme liviano de los creadores de WooCommerce para tienda, tiene además child-themes que tienen diseños particulares.
Cómo se haría para que pinte una imagen añadida en un campo personalizado?
El nombre del campo que he asignado es: «foto_del_autor», el tipo de campo es una imagen, y por defecto tengo asignado que el valor que devuelve es el «Array de imagen», aunque creo que podría ser factible que devuelva la «URL de la imagen».
Siguiendo tu código he tratado de escribir lo siguiente, pero me da errores en la sintaxis:
Disculpa las molestias por enviar varios mensajes, no lograba pegar correctamente el código que he probado y muchas gracias
Hola, no veo que hayas agregado código para mostrar la foto del autor, tienes que usar la etiqueta HTML img, revisa : https://www.w3schools.com/tags/tag_img.asp , lo que te devuelva el campo debería ser la ruta que debes ponerla en el atributo src, lo único que tienes que cuidar son las comillas, usa comillas simples par el src, es decir si tu campo se llama imagen podrías probar:
Saludos.
De entrada gracias por toda la información Jhon.
Tengo una duda que se ha convertido en problema.
¿Es posible insertar ACF a las plantillas de mail de woocommerce (customer-new-account.php, etc…)?
Lo he probado creando un ACF Pagina de optiones para poder añadir el texto deseado y luego añado en la plantilla añado el the_field() o get_field, pero me temo que no funciona.
¿Alguna solución?
Slaudos
Hola, prueba como se comenta en este enlace, que primero tienes que obtener el ID de la orden para usarlo en el campo de get_field() como segundo parámetro: advanced-custom-fields-in-woocommerce-email-templates
Hola. Te felicito por el post, muy bueno para aquellos que estamos empezando con woocommerce…
He conseguido añadir un campo personalizado de tipo numerico sin problemas.
Pero tengo una pregunta.
En functions.php tengo una funcion que limita el carrito a un máximo de 3 productos añadidos.
Y lo que quiero es reutilizar esta funció para que me sume la cantidad de ese campo númerico y cuando alcance un valor máximo, no deje de añadir más productos.
Y el caso es que en programación php estoy totalmente perdido…
Podrías ayudarme?
Gracias
Hola Perillán
Mejor escríbeme a través del formulario de contacto y envíame nuevamente el código para saber a qué te refieres exactamente. https://decodecms.com/contacto/
Hola de nuevo.
Ya lo he solucionado.
Si alguien está interesado cuelgo el código.
Un saludo
Hola, me esta sirviendo muchisimo este tutorial para mi pagina web de colecciones.
Lo que no consigo es poner el campo autor, como un link a la pagina del autor. ¿ Podrias ayudarme? Gracias
Hola, tendrías que tener dos campos, el nombre del autor y la url del autor, luego tendrías que crear en enlace con PHP, tendría que quedar algo como:
Muchisimas gracias, llevo un mes peleandome con ese tema y lo habia dejado por imposible, yo estaba intentando usar el campo enlace en vez de texto. Pero me daba error continuamente.
Hola, genial tu video explicativo, pero tengo una duda, tengo una tienda de zapatos y quiero 1 solo campo que muestre una imagen con las dimensiones del zapato (que muestre la medida del taco y la plataforma). Intente usar este codigo pero si bien aparece el campo en el producto solo aparece la descripcion Array, no me aparece la imagen, que esta faltando agregar?
muchas gracias
Hola, creo que el campo que estas intentando imprimir no tiene un solo valor, qué tipo de campo es?, podrías probar con: print_r( get_field(‘dimensiones’) ) a ver que te reportar, si es un array tendrías que usar algún key para imprimir.
Hola. UMe ha venido genial la explicacion! Una duda que tengo. Hay manera de crear un campo privado o de uso interno? En mi caso estoy montando una tienda con woocomerce y los productos que se venden tienen un codigo de referencia unico, pero que es una informacion delicada y que no quiero que se muestre en publico, pero para llevar un control interno seria fantastico poder ver esta informacion en la ficha de cada producto. Hay alguna manera de hacerlo?
Muchas gracias!
Hola, podrías probar simplemente agregando el campo al producto pero no mostrarlo al usuario, es decir mostrar sólo los campos que deseas con la función get_field()
Hola una pregunta, estoy usando un plugin llamador Yith frontend manager y no consigo que los campos personalizados se muestren en el formulario del frontend. Hay alguna solución ?
Hola supongo que te refieres a este plugin: https://yithemes.com/themes/plugins/yith-woocommerce-frontend-manager/ , es un plugin de pago, algunos de ellos tienen sus propias particularidades, no lo he probado, lo mejor, al ser de pago es que consultes directamente a los desarrolladores.
Hola antes que nada te felicito por el tutorial muy bien explicado y sin rodeos, tengo una duda este plugin se puede utilizar para agregar marca “brand” como microdatos (que vi en otro de tus artículos) también se puede utilizar para agregar un identificador global por ejemplo el GTIN?
Hola, supongo que te refieres a este artículo: https://decodecms.com/agregar-microdatos-en-campos-de-productos-en-woocommerce/ , si efectivamente, en ambos artículos usé el plugin de ACF que sirve para añadir campos adicionales.
Ami me funciono perfectamente, gracias,
hola, Jhon Marreros Guzmán
Estupendo tutorial. me funciono correctamente en la tienda . me gustaria hacer este mismo pero en las entradas de mi blog para crear eventos o recetas. Podias facilitarme un tutorial ? GRACIAS!!!!
Buenas,
Veo que esto es para insertar los campos personalizados en la página de producto de WooCommerce, a través del hook “woocommerce_single_product_summary” pero a que hook habría que hacer referencia para insertar los campos en una página de proyecto de WordPress sin WooCommerce instalado??
Lo que intento es mostrar un logo de una discográfica que tenga un link hacia la web de la misma y la fecha de publicación de cada disco
Mil gracias
Hola si quieres mostrarlo al final del contenido puedes usar el filtro the_content, la otra opción es modificar los archivos de tu theme, revisa: https://decodecms.com/como-usar-los-campos-personalizados-en-wordpress/
Hola Jhon Marreros Guzmán, No me aparece ese campo. busque tanto tiempo esa opcion que antes tenia y no la tengo ahora. Como soluciono ese problema. Gracias!!!
Hola no me queda claro a qué campo te refieres, te refieres a los campos peronsonalizados de este tutorial: https://decodecms.com/como-usar-los-campos-personalizados-en-wordpress/ ?
Hola Jhon Marreros Guzmán, Afirmativo! ese campo no lo tengo. como puedo solucionar el problema? https://decodecms.com/como-usar-los-campos-personalizados-en-wordpress/ . Quiero agregar mas campos en las entradas.
Ya esta solucionado, encontre el problema. Ya me quedo claro. Disculpame!!!
Gracias por tu trabajo..
Hola Jhon, me anduvo fantástico!
Una consulta, como puedo hacer para que no se muestre la información html si el campo queda vacío? En tu ejemplo: para que no se muestre “Género:” si el campo “genero” está vacío.
Abrazo y gracias por tu post!
Hola, tendrías que poner una condicional antes, si hay algún valor diferente de vacío entonces entrará a la condición en la misma línea, es decir:
Estimado Jhon,
Es genial la enseñanza, y resulta super.
Necesito crear campos en los productos, pero el precio debe variar en función de estas variaciones, es una óptica, para que puedas entender para la compra de gafas o lentes, el cliente tiene una receta de parte del medico, en esta receta haya varios datos que necesitamos para calcular el valor del lente final, estos son los datos; Tipo de Cristal, Desviación de Ojo derecho, Desviación del Ojo izquierdo; ejemplo
Tipo de Cristal: COD0001HUYW Desviación de Ojo derecho: -2 Desviación del Ojo izquierdo: 3
la desviación de los ojos pueden ser en uno solo ojo o en ambos, y para eso hay rangos de desviación para el ejemplo supongamos que el rango de desviación es 02/04, los valores siempre se consideran positivos, si esta en este rango y el tipo de Cristal es COD0001HUYW, esto me da un precio del Cristal, seria una matriz de desviación y de códigos de cristales, para este caso supongamos que la intersección es el valor de $30000, esto es posiblemente mas avanzado de el caso expuesto, mi duda es como puedo vincular los campos creados, para este caso si tengo la desviación de los ojos en x rango y tengo el código de Cristal el sistema arroje el valor de esta interacción, si es posible por esta camino seria de gran ayuda, espero tu ayuda sino seria genial poder contactarme vía skype y ver posibilidad de asesoría mas directa para exponer mejor el caso.
saludos y muchas gracias
Hola, ¿has evaluado hacerlo con variaciones de WooCommerce?, revisa el siguiente artículo por ejemplo: https://woodemia.com/atributos-en-woocommerce/ , si aún tiene dudas podrías contactarme a través del formulario de contacto: https://decodecms.com/contacto/
Hola Jhon, muy buen aporte, hace poco logre crear la integración con el plugin que mencionas en este articulo, ahora compre otro plugin que se llama producto-pdf desde https://www.enriquejros.com/plugins/descargar-producto-pdf-woocommerce/ que lo que hace es mostrar la ficha del producto
woocomerce en formato pdf, el problema es que obviamente no muestra los campos al generar el archivo, tienes alguna idea de como lo podría hacer o por ultimo llevar los valores?
Hola, es posible que el plugin sólo tome en cuenta los campos que vienen por defecto con WooCommerce y tendrías que implementar algo similar a lo que se ve en este artículo pero a nivel de plugin, es decir el plugin que usas no es compatible con el plugin ACF. Consulta con el soporte de tu plugin a ver que te comentan.
Gracias por la respuesta, al final lo logre solucionar, tuve que modificar el archivo PHP que generaba el pdf y ahí llame a los campos del ACF de esta manera.
Ejemplo:
ahí guardaba en la varialble el valor del campo y luego los escribí manteniendo el código del otro plugin:
Saludos
Qué bueno, gracias por el aporte. Saludos.
Hola, gran aportación. Me gustaría saber si se puede evitar en unos productos para que no salga esa info y en otros si.
Gracias
Hola, puedes hacer condicionales, prueba accediendo al objeto producto $product->get_id() para saber el producto específico.
Muchas gracias, No existe un opción que habilite o no el campo específico en cada producto?
Hola, no he visto que al momento de crear el grupo de campos con ACF tengas esta opción, por lo que podrías evaluar simplemente dejar el campo vacío en el producto y luego si esta vacío por programación no lo muestras en el detalle de producto.
Muchas gracias, sería este código
My field value:
Pero no sé donde hay que ponerlo dentro de mi tema.
Hola, para mostrar cada campo antes tienes que validar si tiene contenido, es decir tu código quedaría:
Saludos.
Muchas gracias, ahora funciona genial.
Saludos
Jhon,
excelente explicación (y video!). Pero te hago una consulta: ya logramos crear el campo personalizado que se muestra en la página del producto. Pero hay forma de hacer que también se muestre en la página de la tienda (por ejemplo sobre el título del producto)?
Desde ya, muchas gracias!
Hola Federico, me lo anoto para revisar esto, es posible que actualice este artículo o haga uno nuevo explicándolo.
Estimado te hago una consulta estoy insertando un archivo PDF en el producto pero al mirarlo en el producto como visitante me entrega el valor :”array” que debo hacer?
Hola, tal vez la implementación para mostrar el PDF es incorrecta. Si sigues con problemas mejor escríbeme al formulario de contacto: https://decodecms.com/contacto/
Muchas gracias pude añadir un campo personalizado en en la pagina de la tenda usando woocommerce_after_shop_loop_item_title
Gracias mIl
Hola, que bueno, efectivamente puedes usar otro Hook, el que comentas se usa en una lista de productos.
Saludos.
Hola Jhon
Muchas gracias por la información de tu web en https://decodecms.com/campos-personalizados-en-productos-de-woocommerce/
Estoy tratando de construir una tienda online con ayuda del plugin de campos personalizados. Mi problema es no saber como hacer lo siguiente: usando un campo personalizado tipo Checkbox se pueda elegir varias opciones, en el backend aparecen como un texto con su casilla a marcar, pero me gustaría que en el front end lo que apareciera son una imagen (70x70px) por cada opción marcada. Para mi son dos problemas, uno como configurar el campo personalizado (texto/imagen) y otro el código para que se muestre.
Muchas gracias. Un saludo
Hola, aquí comentan algo relacionado a lo que necesitas: https://support.advancedcustomfields.com/forums/topic/image-select-field/ , ya te he contestado igual por el formulario de contacto. Saludos.
buenas, he visto en los comentarios que a la gente le funciona…no se si es que estoy haciendo algo mal:
me marcan estos errores:
Se ha detectado 1 elemento válido con advertencias
4 advertencias
Falta el campo “brand” (opcional)
Falta el campo “review” (opcional)
Falta el campo “aggregateRating” (opcional)
No se ha proporcionado ningún identificador internacional, como un GTIN, un MPN o un ISBN (opcion
estoy ya desesperadita 🙁
gracias!!
Hola, los datos de marca y revisiones los agregas a través de plugins, no es necesario que agregues estos datos con campos personalizados.
HOla exelente aporte. Mi consulta es como puedo colocar en la pagina de productos el campo autor por ejemplo? Sería en una lista de productos.
Hola, si quieres mostrar la información en la lista de productos, debes usar otro Hook, revisa este artículo de referencia (la sección de mostrar cualquier otra información del producto): https://decodecms.com/mostrar-la-descripcion-corta-del-producto-en-la-pagina-de-tienda-de-woocommerce/ , si quieres mostrar un campo de ACF la función get_field() acepta un segundo parámetro que sería el ID del producto.
Hola, Muy buen tutorial, tenía el problema que google search console me decía que faltaba el campo agregateRating , ( es una web de venta de productos), instalé el plugin cree el campo Rating luego con el código para Mircodatos hice que direccione el campo Rating a aggregateRating el error desapareció pero me pide ahora que falta el campo ratingValue y que se debe especificar el ratingCount y el reviewCount, los cree por separado como hice con el aggregateRating pero no lo valido, pareciera que que son subcampos dentro de aggregateRating. Puede ser ? como podría solucionarlo ? Muchas Gracias por tu ayuda
Hola, todos esos campos van asociados, lo más práctico sería que uses un plugin que te controle todo eso, evalúa por ejemplo: https://wordpress.org/plugins/customer-reviews-woocommerce/
Como puedo agregar JS y CSS en un Plugin personalizado para WooCoommerce.
JS y CSS que se ejecuten cuando carga cada producto y en las pagina de productos.
Esos archivos de JS y CSS estén incluidos en el la carpeta del Plugin Personalizado para WooCommerce
Ayuda soy novato en esto. Gracias
Hola, puedes hacerlo en dos pasos, registrarlo en algún hook de inicialización usando wp_register_script(), pero para que cargue en determinadas páginas encolarlo sólo cuando estas usando algún Hook de la página de producto con la función wp_enqueue_script()
Hola, cómo puedo aplicarlo para que aparezca en vez de un texto, un link?
Hola, revisa este comentario: https://decodecms.com/campos-personalizados-en-productos-de-woocommerce/#comment-3625
Jhon, solo felicitarte por tu admirable compromiso (y paciencia)
Gracias Ricardo. Saludos.
Hola Jhon. Como podria mostrar estos campos personalizados en forma de Tabla.
Tengo una tabla de 2 columnas y 6 filas
en la primera columna van los label de los campos y en la segunda la información de los campos personalizados
Gracias!
Hola, puedes construir cualquier estructura HTML imprimiéndola con la función echo() de PHP, para la estructura de tabla guíate de: https://www.w3schools.com/html/html_tables.asp
Muchas gracias por el tutorial, muy claro.
Quisiera agregar un campo condicional para que en el producto pueda poner simplemente “SI” o “NO”, y que en el pedido luego se muestren la cantidad final de “SI”. Eso se puede hacer?
Nuevamente gracias
Hola, en ese caso implica más programación, evalúa usar un plugin, por ejemplo: https://wordpress.org/plugins/advanced-product-fields-for-woocommerce/
Buen día Jhon, reformulo la pregunta porque me equivoqué.
Necesito un campo personalizado para marcar una cantidad en cada uno de los productos, y que de alguna forma cuando vea la pantalla del pedido me aparezca el total (La suma de esa cantidad de todos los productos del pedido).
Se puede hacer esto?
Muchas gracias!
Hola, quieres un campo similar a cantidad adicional?, en ese caso sería algo personalizado o puedes probar con ACF, posiblemente tenga esa funcionalidad en la versión de pago del plugin.
Hola Jhon me gustaría me ayudes, necesito agregar dos campos personalizados pero a cada uno darle un orden diferente (Quiero que uno aparezca antes de la descripción del producto y el otro luego de la descripción) Gracias!
Hola, te sugiero revisar este artículo en donde se agrega información adicional en distintas secciones de la página de producto: https://decodecms.com/modificar-elementos-en-pagina-de-producto-de-woocommerce/
Hola! como hago para que esta nuevo campo me aparezca para importar y exportar como cvs en productos, y mi segunda duda es como hago que me aparezca como informativo en el pedido en el panel administrativo.
Hola, tienes que programar de acuerdo a los Hooks que tienes disponibles, si estas usando un plugin revisa la documentación, por ejemplo para el plugin woocomerce csv import: http://hookr.io/plugins/woocommerce-csv-import/3.2.2/hooks/#index=w
Gracias por la explicación me gustaría resolver una duda adicional, “en el caso de que haya creado taxonomías denominadas Autor, género, editorial respectivamente y quisiera que en el front actuará como enlaces tal como se muestran las etiquetas o categorías ¿como deberia quedar el código? agradezco su colaboracion
Hola, para obtener los valores de las taxonomías asignados a una entrada tendrías que hacerlo por programación, específicamente tendrías que usar esta función: https://developer.wordpress.org/reference/functions/get_the_terms/ ten en cuenta que te devolverá un array de valores.
Buen día:
Una consulta, he instalado el plugin ACF (https://www.advancedcustomfields.com/) y en el grupo: Location (cuando estoy añadiendo nuevo Field Group), en Reglas, defino que sea: Post Type, pero no me muestra la opción: product_variation, solo product. Que debo de hacer para que se muestra la opción: product_variation, ya que lo que necesito es añadir campos adicionales a nivel de las variaciones de los atributos de un producto variable, y si hay algún artículo y/o vídeo que me oriente a mostrarlo en el frontend.
Se agradece de antemano, su asesoramiento. Saludos cordiales.
Hola, consulta con los desarrolladores del plugin, posiblemente tengas esa opción en la versión de pago del plugin.
Hola Franklin! Estoy buscando hacer lo mismo que vos. Intenté con Formulas de CPO pero ese plugin solo trabaja productos simples, lo que imposibilita identificar cada variación con su SKU …alguna idea al respecto? Pudiste resolverlo?
Gracias y saludos.
Hola Jhon, muchas gracias por el tutorial. Tengo una única duda. Como puedo hacer para excluir los campos que he creado de ciertos productos? Por que ahora me los muestra en todos. Tengo 0 conocimiento de php. GRACIAS!
Hola, tienes que hacerlo con condicionales, ya sea detectando el ID o usando un campo personalizado indicando que ese producto es la excepción.
Lamentablemente es un tema de programación, pero puedes revisar las bases de las condicionales, revisa: https://www.php.net/manual/es/control-structures.elseif.php
Muy buen tutorial Jhon una consulta como hago para que el campo no se muestre si el campo esta vacio
Hola comprueba adicionalmente el campo con una condicional, es decir tu código dentro de la función quedaría:
Gracias por el aporte sin embargo no me funcionó. es decir, hice todos los pasos, solamente agregé un campo personalizado con el plugin, luego coloqué el código en el archivo functions del tema pero no me aparece en la pagina de producto, que hice mal? da igual en que parte del archivo functions pego el codigo? Muchas gracias
Hola, por organización de tu código, es recomendable colocarlo al final.
Sin embargo si no se esta mostrando, podrías probar cambiar temporalmente de theme y colocar el código nuevamente. Prueba en algún theme que viene por defecto con WordPress.
Hola Jhon, realmente me ha sido de mucha ayuda este post, cómo podría adaptar el código para poder incluir dos campos personalizados dentro de un div y ponerle una clase para darles estilos, osea que el autor y la editorial estén dentro de un div y la edición y el genero dentro de otro div, en mi caso lo estoy trabajando en la página con el hook de página de la tienda, muchas muchas gracias 🙌
Hola, en el código cuando usas la función de PHP “echo” puedes darle la estructura que deseas, por ejemplo:
Felicidades Jhon por el post! Tengo una duda, me gustaría aplicar el código a solamente 1 categoría de producto y el resto sin el codigo de ACF. Como puedo segmentar para que solo aplique a esa categoría concreta.
Gracias!
Hola, tendrías que agregar una condicional adicional y usar posiblemente la función: https://woocommerce.wp-a2z.org/oik_api/wc_get_product_category_list/ para recuperar las categorías del producto.
hola como estas jhon tengo una pregunta aca
si quiero mostrar esas misma característica que muestro en la descripción del producto, como puedo hacer para mostrarlo también en la pagina de pago ?
espero que me puedas ayudar saludos desde venezuela
Hola
Sería similar, sin embargo tendrías que usar otro hook, busca por ejemplo información sobre este hook: woocommerce_cart_item_product
fijate estoy usando el mismo código que colocaste como ejemplo
add_action( ‘woocommerce_single_product_summary’, “dcms_caracteristicas_producto”, 8 );
function dcms_caracteristicas_producto(){
if (function_exists(‘get_field’)){
echo “Edición: “. get_field(‘edicion’).””;
echo “Autor: “. get_field(‘autor’).””;
echo “Género: “. get_field(‘genero’).””;
echo “Editorial: “. get_field(‘editorial’).””;
}
}
todo bien, exelente. Pero quiero mostrar esos mismo valores a la página de pago, no se si me logras entender?
en los detalles del producto me los muestra sin problemas, pero quiero también mostrarlos en la pagina de pago o detalles del producto
Hola.
Mira tengo una reto, yo tengo el producto en la pagina de producto individual, y quiero agregarle opciones para que el cliente pueda llenar unos datos desde allí.
lo campos son los siguientes:
Los productos son pasteles y quiero que adiciones información importante para cuando desea el pastel
Agregar foto al pastel:
Agregar dedicatoria al pastel:
Agregar relleno en medio de la torta:
fecha:
Hora:
Estos datos quiero que se envíen por correo o al usuario encargado de revisar los pedidos.
Estoy usando el PPOM y me funciona bien me calcula lo que vale agregar foto, agregar relleno, pero no me envía los datos por correo ni me los muestra en el resumen del pedido.
Hola, consulta con los desarrolladores del plugin que usas, posiblemente tengan una versión de pago con funcionalidad adicional.
Hola, muy buen post, me surge una duda leyendo esto, ¿se puede implementar ese contenido en las miniaturas de la tienda? gracias
Hola, si, revisa el siguiente artículo que te puede dar una idea de qué hook usar: https://decodecms.com/mostrar-la-descripcion-corta-del-producto-en-la-pagina-de-tienda-de-woocommerce/
Hola, gracias por tus artículos, son de gran utilidad. Tengo una pregunta, estoy trabajando en un desarrollo y quisiera saber si es posible colocar un campo calculado dentro del detalle del producto, por ejemplo, tomar el precio y multiplicarlo por dos y sólo mostrar este número en alguna parte del detalle del producto. Gracias de antemano!.
Hola, si es posible, te sugiero revisar el siguiente artículo que tiene una funcionalidad similar a lo que comentas: https://decodecms.com/modificar-el-precio-de-un-producto-por-codigo-en-woocommerce/
Hola Jhon, excelente web y artículos, estoy desarrollando un marketplace y dentro de los productos que quiero que se pueda anunciar son inmuebles y vehículos la duda es ¿cómo hacer que cada uno tenga sus propios campos personalizados? ejemplo:
Categoría inmuebles: casa con 2 habitaciones, 1 1/2 baños, 1 estacionamiento, ubicado en x, ciudad y, mapa, etc.
Categoría autos: Marca SEAT, Tipo Córdoba, Modelo 2020, kms 1000, plazas 2, color negro, etc.
Además de ponerles íconos a cada cosa y deshabilitar el botón de comprar/agregar al carrito discrecionalmente.
Te agradezco de antemano, saludos.
Hola, la complejidad que planteas es mayor, posiblemente en ese caso lo mejor sería buscar un plugin de marketplace que funcione independiente o integrado con WooCommerce.
Hola! buen día, tengo una consulta. Estoy trabajando una tienda en línea, y necesitan que se agregue un campo para adjuntar archivo de su pedido realizado. Hay alguna manera de agregarlo sin necesidad de plugin o solo puede con plugin?
Saludos,
Hola, en este caso si implica mucho código te complicarías, y es mejor centralizarlo en un plugin. Hay varios plugins que tienen esa funcionalidad que buscas.
Hola! excelente tutorial 🙂 , me preguntaba si es posible que el texto aparezca debajo del precio? .
Hola, posiblemente tengas que usar otro Hook, revisa este artículo de referencia: https://decodecms.com/modificar-elementos-en-pagina-de-producto-de-woocommerce/
Hola Jhon! excelente artículo, gracias. Te consulto, deseo mostrar productos por una categoría en específico pero en el home de mi template, el template se llama FLUENCE, y su home no se puede editar visualmente con los editores de front sino que trae un “home settings” donde rellenas y habilitas y deshabilitas bloques con botones 🙁 .
Este es el sitio web que estoy habilitando.
https://comicmejillones.cl/
Muchísimas gracias por tu colaboración
Hola, difícil saber, al parecer tu theme tiene algo personalizado para el home, sería mejor consultar con los desarrolladores.
¡muchísimas gracias por responder Jhon! saludos
Hola Jhon muy bueno tu aporte me sirvió de mucho, pero tengo un inconveniente, Quiero mostrar la información adicional unicamente en ciertos productos, pero al hacerlo como tu nos explicas, esa información me aparece en todos los productos de mi tienda.
Intenté seleccionando en el apartado de | Reglas | “Post” en lugar de “Post type” , ya que así aparentemente me daba opción a poner una condición para mostrar ese campo extra únicamente en los productos que necesito, pero no me funciona. No sé si debe ser de incluir alguna función extra en el php.
Por favor si me puedes ayudar con alguna solución
Gracias de antemano!
Hola, prueba validar contra algún campo que no este vacío, es decir si no tiene contenido entonces no muestras nada, algo similar a esto, modificando el código base:
Hola Jhon, gracias por tu pronta respuesta, lo he solucionado de la siguiente manera, me está funcionando,crees que esté bien?.
Ahora como hago para mostrar una imagen jaja XD, ya le cree el field para cargar la imagen, pero en el detalle del producto no me muestra. Tengo el siguiente código que me genera el plugin “Advanced Custom Fields: Theme Code”, pero no encuentro manera de implementarlo en el mismo functions.php
Hola, si, el código es correcto, con respecto a la imagen asumo que sólo te guarda la ruta de la imagen, por lo que para mostrarlo, efectivamente tienes que usar la etiqueta HTML img, reemplaza el valor del campo dentro del atributo src, hay varias formas de concatenarlo, realízalo de manera similar a como imprimes el título.
Hola John, gracias por compartir esta valiosa información, en mi caso utilizo Astra como thema pero los campos personalizados los manda hasta arriba o hasta abajo de la información no me permite colocarlo entre cada elemento,
Hola, revisa este artículo para encontrar el Hook correcto, juega igualmente cambiando la prioridad: https://decodecms.com/modificar-elementos-en-pagina-de-producto-de-woocommerce/
Hola Jhon Marreros gracias por tus tan valioso aporte sin duda una referente , pero tengo un pregunta esos campos se crearan en las tablas de la base de datos de modo que pueda pasarle al campo personalizado el dato desde otra tabla ???
Hola, si, esos campos se crean en la propia base de datos de WordPress y si que podrías llenarlo automáticamente con algún otro dato, aunque tendrías que agregar código adicional para esto.
Hola buen día en que tablas de la base de datos puedo encontrar los campos que se han creado y donde pueod encontrar la información que se guardan en los campos en la configuración del producto
Hola, revisa si hay tablas con el prefijo del plugin, o también es posible que se encuentre como CPT o como metadatos, es decir busca en wp_posts, wp_postmeta, es probable que sean incluso datos serializados en un solo campo.
Hola Jhon
Después de 2 dias buscando como poner ACF en mi market, encontré este articulo que me lo solucionó.
Me funciona muy bien, pero tengo un filtro de ACF que es el de mapa de google para indicar donde está la casa, pero este no me aparece. Hay que poner un código distinto?
Gracias
Hola, posiblemente uses algún iframe que te muestra el mapa de Google que debes insertar como parte del código.
Vaya plugin si después hay que tocar código. Es un semiplugin
Hola, primero que nada muchas gracias por toda la información. Quiero contarte que estoy generando algunos nuevos espacios para mi tienda online como por ejemplo Marca, Componentes y Sellos (son todos productos los que se venden) pero me da un resultado “Array” cuando le selecciono estas opciones. ¿Por qué será esto? Podrías ayudarme?
Hola, es posible que tengas que recorrer la información ya que un array contiene varios valores.
Hola Jhon,
Tu ejemplo es en los productos de WooCommerce. Yo necesito añadir el campo en la página de categoría de producto, así que imagino que es lo mismo que tu código, pero cambiando el hook.
En el backoffice si que me aparece el campo personalizado, pero en el front, solo me aparecen los labels, lo que añado en el campo personalizado no se me ve..
Es porque en categorías hay que hacerlo diferente o donde puede estar el problema?
Muchas gracias!
Hola, si, sería con otro Hook, revisa este artículo de referencia: https://decodecms.com/mostrar-la-descripcion-corta-del-producto-en-la-pagina-de-tienda-de-woocommerce/
Hola, y como se crearían grupos de campos personalizados solo para alguna categoría de producto.
Por ejemplo tenemos una web con woocommerce que tiene una categoría de aires acondicionados.
Solo queremos que aparezcan esos campos personalizados en la edición de este tipo de productos.
Para otras categorías de producto habría otros grupos de campos personalizados.
Gracias.
Hola, posiblemente tengas que poner una condicional adicional para comprobar si es un producto y si corresponde a una categoría determinada, revisa esta respuesta: https://wordpress.org/support/topic/how-to-check-if-product-is-in-category-woocommerce-then-display-this-code/
Hola jhon Graicas por tu video, mi pregunta es como le hago para mostrar en esos campos datos de una tabla diferente por medio del ID de producto que cree
Hola, veo que hay un complemento para ACF, posiblemente en la configuración de “conditional logic” tengas alguna opción: https://wordpress.org/plugins/advanced-custom-fields-table-field/ , si esto no funciona entonces posiblemente tengas que usar código personalizado directamente.
Hola, primero que nada muchas gracias por toda la información. jhon como hago para mostrar esos campos en la edicion de pedidos ? Necesito mostrar esos campos en la adminsitración de pedidos a la hora de despachar el producto. gracias.
Hola, posiblemente tengas que guardar los datos en el carrito y luego en la orden, revisa el siguiente artículo relacionado que explica cómo hacer esto: https://decodecms.com/campo-de-texto-para-escribir-en-productos-woocommerce/
Hola Jhon. Mil gracias !!! me sirvio mucho lo que explicas en el post
https://decodecms.com/campo-de-texto-para-escribir-en-productos-woocommerce/
Saludos desde Argentina
Hola Jhon, hace poco conoci tu pagina y videos y la verdad impecable tus trabajos. Queria consultarte sobre el formulario de pago que ya incorpora woocommerce. Cree un campo personalizado y quiero q este no pueda ser visto por un rol especifico en el backend. Existe algun codigo en el function que permita hacer eso?. Desde ya mil gracias.
Hola, puedes evaluar ocultarlo por CSS para un determinado rol, revisa el siguiente artículo el cual usa Adminimize para ocultar opciones en la administración de WordPress: https://www.webempresa.com/blog/adminimize-wordpress-oculta-opciones-administrador.html
Hola!, esta genial la funcion del plugin, en vez de mostrar en la descripcion corta del producto, ¿se podria insertar la informacion en la seccion junto a los atributos?
Hola, revisa los hooks que tienes disponibles, este artículo te puede servir de referencia: https://decodecms.com/guia-visual-de-hooks-para-storefront-y-woocommerce/
Hola, gracias por tu aporte. Mi consulta es como puedo colocar un campo personalizado dentro de los campos de los productos variables
Hola César.
Trabajar con productos variables puede ser un poco más complejo. Espero realizar un artículo en el futuro sobre eso.
Saludos.
Hola, gracias por tu ayuda y tu tiempo. He tratado de utilizar el código para utilizar woocommerce como un listado inmobiliario por su versatilidad. Pero cuando aplico el código, a pesar de tener varias categoria de productos y filtro las ubicaciones de los campos en mis categorias,, se sigue mostrando todos los campos en todas las categorias. Qué debo hacer para que solo me muestre los campos especificos en las categorias especificas en cada frontpage de producto? gracias
add_action( ‘woocommerce_single_product_summary’, “dcms_caracteristicas_producto”, 8 );
function dcms_caracteristicas_producto(){
if (function_exists(‘get_field’)){
echo “Edición: “. get_field(‘edicion’).””;
echo “Autor: “. get_field(‘autor’).””;
echo “Género: “. get_field(‘genero’).””;
echo “Editorial: “. get_field(‘editorial’).””;
}
}
Hola, supongo que no quieres mostrar siempre los mismos campos, sino sólo de acuerdo a un filtro, el filtro supongo que te genera una url con parámetros, podrías detectar los parámetros de la url y de acuerdo a esto mostrar u ocultar campos.
Saludos
hola,
revisando las consultas, ya alguien pregunto sobre mostrar una imagen del autor, y usted le indico el siguiente código:
echo “Foto autor: “;
lo puse y casi funciona, el resultado es como un archivo sin imagen segun https://liibros.com/producto/prueba/
que podra ser?.. saludos,
Hola, actualmente en la url que envías ya veo que aparece una imagen en la foto de autor.
gracias, casi despues de enviar la consulta, me percaté el plugin tra tres opciones de ruta, segun URl o ID. ,Mil gracias, Ahora le puse un audio y me muestra el reproductor, pero no lo reproduce, favor si tienes alguna observación. https://liibros.com/producto/prueba/. saludos,
Hola, la url del audio no es válida, puedes comprobar el código con el Inspector de código de tu navegador, mejor usa una url absoluta que haga referencia al audio en el atributo src.
Hola Jhon, lo primero gracias por tu tiempo. No sé si sabras si hay alguna manera de incluir en la pagina donde se añaden los datos del producto, en la parte interna (titulo, precio, check vituel, descargable ect ) una caja donde aparezca embebida parte de una web externa donde hay una determinada información, o si no se puede, añadir un botón donde se pueda abrir una ventana nueva y llevarte a esa pagina web. Estoy intentando hacerlo con plugin pero no veo ningún gratuito y con código no encuentro la pagina para intentar meterlo con código html. Gracias y un saludo
Hola, si sigues este tutorial lograrás agregar un campo en donde se puede agregar una url que posteriormente puedes usar.
Hola Jhon, buenas tardes, pido tu ayuda en lo siguiente, quiero crear a mis articulos de forma global los siguientes campos: País de origen, Ingredientes, CPNP numero, que a su vez cuando yo importe el archivo csv esten en los campos del importador, como lo hago con un plugin o un código sencillo pues no soy bueno en programacion.
Gracias
Hola, podrías evaluar usar un plugin para la exportación que te permita exportar la metadata, revisa por ejemplo: https://wordpress.org/plugins/woo-order-export-lite/
Gracias por tu articulo y tu video, me ha funcionado a la primera, pero ahora me queda la duda de como mostrar en la barra lateral de la tienda los filtros que me permitan filtrar por los campos ACF que he creado , si me puede dar alguna pista? porque en los widgets de gutember no me sale ningun filtro de ACF. Gracias de antemano
Hola Jhon buenas tardes! Gran ayuda tu artículo y video!!
Tengo una duda, quiero que un valor digamos:
echo “Edición: “. get_field(‘edicion’).””;
me muestre un icono pequeño al lado antes de Edición, en ese caso como sería? Saludos!
Hola, verifica si tu sitio ya carga alguna fuente de iconos (como FontAwesome) y simplemente usa el HTML correcto para el icono. Revisa este artículo de referencia: https://decodecms.com/insertar-font-awesome-en-wordpress/ . Lo otro que puedes evaluar es usar un emoji , por ejemplo este: ✏️