{"id":672,"date":"2018-11-15T15:45:55","date_gmt":"2018-11-15T14:45:55","guid":{"rendered":"https:\/\/www.welaunch.io\/es\/?p=672"},"modified":"2024-05-15T13:35:12","modified_gmt":"2024-05-15T11:35:12","slug":"woocommerce-product-pdf","status":"publish","type":"post","link":"https:\/\/www.welaunch.io\/es\/2018\/11\/woocommerce-product-pdf\/","title":{"rendered":"C\u00f3mo crear un producto WooCommerce PDF"},"content":{"rendered":"<p>En alg\u00fan momento, como propietario de una tienda, es posible que desee ofrecer a sus clientes la oportunidad de descargar archivos PDF de un solo producto directamente desde WooCommerce. Ya sea porque sus usuarios necesitan una versi\u00f3n impresa, porque sus comerciales necesitan folletos de productos cuando visitan a sus socios o porque sus clientes necesitan una versi\u00f3n offline de sus art\u00edculos.En este tutorial le mostramos c\u00f3mo puede configurar su propio PDF de producto personalizado de WooCommerce basado en datos existentes. Aprenda a convertir sus datos de producto existentes en un \u00fanico folleto de producto en PDF, que los clientes puedan descargar y ver sin conexi\u00f3n.<\/p>\n<h2>Qu\u00e9 es WooCommerce?<\/h2>\n<p>Antes de empezar necesitas saber qu\u00e9 es WooCommerce. WooCommerce es un plugin de sistema de tienda para WordPress, que te ofrece todas las funcionalidades que una tienda online necesita hoy en d\u00eda. Puede crear productos, configurar m\u00e9todos de env\u00edo y pago y empezar a vender en l\u00ednea con s\u00f3lo unos clics. No s\u00f3lo podr\u00e1s mostrar tus art\u00edculos a la venta, sino que tambi\u00e9n podr\u00e1s reutilizar todos los datos para crear un folleto de producto en PDF.<\/p>\n<h2>Qu\u00e9 es WooCommerce Print Products (PDF)?<\/h2>\n<p>Supongamos que no quiere empezar desde cero implementando una soluci\u00f3n con la que pueda convertir los datos de sus productos en l\u00ednea en un PDF impreso. Es complejo configurar un motor de renderizado de PDF, necesitas encontrar todos los hooks, filtros y funciones esenciales de WooCommerce y pronto te pierdes en el universo WordPress.Por ello, puede utilizar el plugin Print Products (PDF) para WooCommerce como una sencilla soluci\u00f3n de base. Este plugin le ofrece una soluci\u00f3n f\u00e1cil para convertir productos en PDF, Word o Imprimir. Puede elegir entre 3 dise\u00f1os diferentes, ocultar o mostrar datos y a\u00f1adir un encabezado y pie de p\u00e1gina personalizados con su logotipo, nombre de marca, nombre de producto y mucho m\u00e1s.Utilizaremos este plugin para crear nuestro propio PDF de producto personalizado utilizando los filtros proporcionados por el plugin.<\/p>\n<h2>Uso de los ganchos de WordPress en un tema hijo<\/h2>\n<p>WordPress y muchos plugins profesionales le ofrecen filtros para modificar el contenido, los datos o a\u00f1adir textos personalizados. Hay dos tipos de filtros:<\/p>\n<ol>\n<li>Ganchos de acci\u00f3n<\/li>\n<li>Ganchos de filtro<\/li>\n<\/ol>\n<p>La diferencia no es f\u00e1cil de explicar, porque ambos ganchos pueden hacer casi 1:1 lo mismo. Pero la intenci\u00f3n de las acciones es a\u00f1adir contenido extra y la intenci\u00f3n de un filtro es modificar los datos ya proporcionados por un plugin, tema o n\u00facleo de WP.El plugin WooCommerce Print Products PDF utiliza ganchos de filtro para modificar el HTML que se coloca dentro del archivo PDF del producto. Y vamos a utilizar el filtro woocommerce_print_products_product_html para crear una plantilla personalizada.Para utilizar WP Hooks se recomienda configurar un tema hijo. Un tema hijo hereda todas las funcionalidades del tema principal. Aqu\u00ed puedes crear funciones personalizadas o modificar estilos sin perderlo todo en una pr\u00f3xima actualizaci\u00f3n del tema principal. La mayor\u00eda de las plantillas de Themeforest, por ejemplo, ofrecen un tema hijo directamente en los archivos descargados. Simplemente instale el tema principal + el tema hijo, active el tema hijo y listo. En apariencia ver\u00e1s entonces 2 temas, el infantil debe estar activo.<\/p>\n<h2>Creaci\u00f3n de nuestra plantilla HTML personalizada<\/h2>\n<p>As said we are going to use thewoocommerce_print_products_product_html filter. Este filtro modifica la parte HTML completa dentro del PDF, pero no toca la cabecera ni el pie de p\u00e1gina, que puedes configurar en los ajustes del plugin.As\u00ed que abre las funciones.php en tu tema hijo y haz una peque\u00f1a prueba a\u00f1adiendo esta funci\u00f3n:add_filter(&#8216;woocommerce_print_products_product_html&#8217;, &#8216;custom_print_products_template&#8217;, 10, 2);function custom_print_products_template($html, $product_id){$producto=wc_get_producto($id_producto);si(!$producto) {devolver $html;}$producto_id=$producto->get_id();$html=&#8217;test&#8217;;devolver $html;}Ahora llame a su producto de impresi\u00f3n PDF URL as\u00ed: https:\/\/yourdomain.com\/product\/YOUR_PRODUCT_URL\/?imprimir-productos=pdfVer\u00e1 una cadena de prueba simple dentro del archivo incluyendo el encabezado y pie de p\u00e1gina predefinidos, que provienen del plugin. Es tan sencillo como esto, ahora puedes a\u00f1adir HTML personalizado al PDF como quieras.Vamos a a\u00f1adir algunos datos m\u00e1s del producto al HTML:<\/p>\n<ul>\n<li>Imagen del producto alineada a la izquierda<\/li>\n<li>T\u00edtulo del producto + Descripci\u00f3n derecha<\/li>\n<li>Metacampo personalizado<\/li>\n<\/ul>\n<h3>A\u00f1adir imagen, nombre y descripci\u00f3n del producto al PDF<\/h3>\n<p>As\u00ed que vamos a modificar la funci\u00f3n anterior y a\u00f1adir algunos datos m\u00e1s. Comenzamos a\u00f1adiendo la imagen, el t\u00edtulo y la descripci\u00f3n de nuestro producto. La imagen ir\u00e1 en una columna de la izquierda y el bloque de t\u00edtulo en una columna de la derecha, por lo que necesitamos un poco de CSS personalizado para proporcionar el flotante.add_filter(&#8216;woocommerce_print_products_product_html&#8217;, &#8216;custom_print_products_template&#8217;, 10, 2);function custom_print_products_template($html, $product_id){\/\/ Comprobar si el producto existe$producto=wc_get_producto($id_producto);si(!$producto) {devolver $html;}\/\/ Obtener ID de producto$producto_id=$producto->get_id();\/\/ Estilo CSS personalizado$html=&#8217;.contenedor {acolchado: 20px;}.col-12 {anchura: 100%;acolchado: 10px;}.col-6 {anchura: 45%;float: izquierda;acolchado: 10px;}&#8217;;\/\/ Empezar con un contenedor$html .= &#8221;;\/\/ Obtener la URL de la imagen del producto$product_image_url=get_the_post_thumbnail_url($product_id);si($url_imagen_producto) {$html .= &#8216;<img decoding=\"async\" src=\"' . $product_image_url . '\">&#8216;;}\/\/ Obtener nombre y descripci\u00f3n del producto$nombre_producto=$producto->obtener_nombre();$producto_desc=$producto->obtener_descripci\u00f3n();si($nombre_producto) {$html .= &#8216;<\/p>\n<h1>&#8216; . $nombre_producto . &#8216;<\/h1>\n<p>&#8216; . $desc_producto . &#8216;<\/p>\n<p>&#8216;;}$html .= &#8221;;devolver $html;}Hemos a\u00f1adido CSS personalizado para los bloques flotantes y hemos a\u00f1adido algo de relleno. A continuaci\u00f3n, utilizamos el objeto $producto y llamamos a funciones para recibir datos como el nombre, la descripci\u00f3n, etc. Puedes encontrar una lista completa de funciones para llamar al objeto producto de WooCommerce aqu\u00ed. Luego devolvemos el HTML y as\u00ed es como se ve:<\/p>\n<h3>A\u00f1adir un campo de producto personalizado al PDF<\/h3>\n<p>Si utiliza campos de entrada personalizados puede utilizar la funci\u00f3n get_post_meta de WordPress para recibir los valores. WooCommerce almacena los metadatos tambi\u00e9n en la tabla post_meta. Por ejemplo, el precio, que tambi\u00e9n se puede recuperar mediante $product->get_price(); function. As\u00ed que para campos meta realmente \u00fanicos como los del plugin ACF u otros plugins personalizados la funci\u00f3n anterior es crucial para obtener los datos. Un ejemplo de c\u00f3mo utilizar el get_post_meta para dar salida a un campo personalizado en nuestro pdf de producto \u00fanico WooCommerce:$html .= &#8221;;\/\/ Obtener campo personalizado$campo_personalizado=get_post_meta($product_id, &#8216;custom_field&#8217;, true);si($campo_personalizado) {$html .= &#8216;<\/p>\n<p>&#8216; . $campo_personalizado . &#8216;<\/p>\n<p>&#8216;;}$html .= &#8221;;Y eso es todo. Si utiliza ACF, por ejemplo, puede utilizar la funci\u00f3n get_field de ACF en lugar de get_post_meta.Si tienes m\u00e1s preguntas sobre c\u00f3mo configurar una plantilla PDF de producto personalizada, no dudes en comentar este art\u00edculo a continuaci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En alg\u00fan momento, como propietario de una tienda, es posible que desee ofrecer a sus clientes la oportunidad de descargar archivos PDF de un solo producto directamente desde WooCommerce. Ya sea porque sus usuarios necesitan una versi\u00f3n impresa, porque sus comerciales necesitan folletos de productos cuando visitan a sus socios o porque sus clientes necesitan&#8230;<\/p>\n","protected":false},"author":1,"featured_media":788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-672","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-woocommerce"],"_links":{"self":[{"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/posts\/672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/comments?post=672"}],"version-history":[{"count":10,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/posts\/672\/revisions"}],"predecessor-version":[{"id":8751,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/posts\/672\/revisions\/8751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/media\/788"}],"wp:attachment":[{"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/media?parent=672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/categories?post=672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.welaunch.io\/es\/wp-json\/wp\/v2\/tags?post=672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}