{"id":672,"date":"2018-11-15T15:45:55","date_gmt":"2018-11-15T14:45:55","guid":{"rendered":"https:\/\/www.welaunch.io\/fr\/?p=672"},"modified":"2024-05-15T11:38:13","modified_gmt":"2024-05-15T09:38:13","slug":"woocommerce-product-pdf","status":"publish","type":"post","link":"https:\/\/www.welaunch.io\/fr\/2018\/11\/woocommerce-product-pdf\/","title":{"rendered":"Comment cr\u00e9er un produit WooCommerce PDF"},"content":{"rendered":"<p>En tant que propri\u00e9taire de boutique, vous voudrez peut-\u00eatre donner \u00e0 vos clients la possibilit\u00e9 de t\u00e9l\u00e9charger des PDF directement depuis WooCommerce. Que ce soit parce que vos utilisateurs ont besoin d&#8217;une version imprim\u00e9e, que vos vendeurs ont besoin de brochures sur les produits lorsqu&#8217;ils rendent visite \u00e0 des partenaires ou que vos clients ont besoin d&#8217;une version hors ligne de vos articles.Dans ce tutoriel, nous vous montrons comment vous pouvez configurer votre propre produit WooCommerce PDF personnalis\u00e9 bas\u00e9 sur des donn\u00e9es existantes. Apprenez \u00e0 transformer vos donn\u00e9es produit existantes en une brochure produit unique au format PDF, que les clients peuvent t\u00e9l\u00e9charger et consulter hors ligne.<\/p>\n<h2>Qu&#8217;est-ce que WooCommerce ?<\/h2>\n<p>Avant de commencer, vous devez savoir ce qu&#8217;est WooCommerce. WooCommerce est un plugin de syst\u00e8me de boutique pour WordPress, qui vous offre toutes les fonctionnalit\u00e9s dont une boutique en ligne a besoin aujourd&#8217;hui. Vous pouvez cr\u00e9er des produits, d\u00e9finir des m\u00e9thodes d&#8217;exp\u00e9dition et de paiement et commencer \u00e0 vendre en ligne en quelques clics. Vous pouvez non seulement pr\u00e9senter vos articles \u00e0 vendre, mais aussi r\u00e9utiliser toutes les donn\u00e9es pour cr\u00e9er une brochure de produit au format PDF.<\/p>\n<h2>Qu&#8217;est-ce que WooCommerce Print Products (PDF)?<\/h2>\n<p>Supposons que vous ne souhaitiez pas partir de z\u00e9ro pour mettre en place une solution vous permettant de transformer les donn\u00e9es de vos produits en ligne en un PDF imprim\u00e9. Il est complexe de mettre en place un moteur de rendu PDF, il faut trouver tous les crochets, filtres et fonctions essentiels de WooCommerce et on se perd vite dans l&#8217;univers de WordPress.C&#8217;est pourquoi vous pouvez utiliser le plugin Print Products (PDF) pour WooCommerce comme solution de base simple. Ce plugin vous offre une solution facile pour transformer des produits en PDF, Word ou Print. Vous pouvez choisir entre 3 mises en page diff\u00e9rentes, masquer ou afficher des donn\u00e9es et ajouter un en-t\u00eate et un pied de page personnalis\u00e9s comprenant votre logo, le nom de votre marque, le nom de votre produit et bien d&#8217;autres choses encore.Nous utiliserons ce plugin pour cr\u00e9er nos propres PDF de produits personnalis\u00e9s en utilisant les filtres fournis dans le plugin.<\/p>\n<h2>Utiliser les crochets WordPress dans un th\u00e8me enfant<\/h2>\n<p>WordPress et de nombreux plugins professionnels vous offrent des filtres pour modifier le contenu, les donn\u00e9es ou ajouter des textes personnalis\u00e9s. Il existe deux types de filtres :<\/p>\n<ol>\n<li>Crochets d&#8217;action<\/li>\n<li>Crochets de filtre<\/li>\n<\/ol>\n<p>La diff\u00e9rence n&#8217;est pas facile \u00e0 expliquer, car les deux crochets peuvent faire presque 1:1 la m\u00eame chose. Mais l&#8217;intention des actions est d&#8217;ajouter du contenu suppl\u00e9mentaire et l&#8217;intention d&#8217;un filtre est de modifier des donn\u00e9es d\u00e9j\u00e0 fournies par un plugin, un th\u00e8me ou le noyau de WP.Le plugin WooCommerce Print Products PDF utilise des crochets de filtrage pour modifier le HTML qui est plac\u00e9 dans le fichier PDF du produit. Nous allons utiliser le filtre woocommerce_print_products_product_html pour cr\u00e9er un mod\u00e8le personnalis\u00e9.Pour utiliser WP Hooks, il est recommand\u00e9 de cr\u00e9er un th\u00e8me enfant. Un th\u00e8me enfant h\u00e9rite de toutes les fonctionnalit\u00e9s du th\u00e8me principal. Ici, vous pouvez cr\u00e9er des fonctions personnalis\u00e9es ou modifier des styles sans tout perdre lors de la prochaine mise \u00e0 jour du th\u00e8me principal. La plupart des mod\u00e8les de Themeforest, par exemple, proposent un th\u00e8me enfant directement dans les fichiers t\u00e9l\u00e9charg\u00e9s. Il suffit d&#8217;installer le th\u00e8me principal + le th\u00e8me enfant, d&#8217;activer le th\u00e8me enfant et le tour est jou\u00e9. Dans l&#8217;apparence, vous verrez alors 2 th\u00e8mes, celui de l&#8217;enfant doit \u00eatre actif.<\/p>\n<h2>Cr\u00e9ation de notre mod\u00e8le HTML personnalis\u00e9<\/h2>\n<p>As said we are going to use thewoocommerce_print_products_product_html filter. Ce filtre modifie la partie HTML compl\u00e8te du PDF, mais ne touche pas \u00e0 l&#8217;en-t\u00eate et au pied de page, que vous pouvez d\u00e9finir dans les param\u00e8tres du plugin.Ouvrez donc les fonctions.php dans votre th\u00e8me enfant et effectuez un petit test en ajoutant cette fonction :add_filter(&#8216;woocommerce_print_product_product_html&#8217;, &#8216;custom_print_products_template&#8217;, 10, 2) ;function custom_print_products_template($html, $product_id){produit=wc_get_product($product_id) ;si(!$product) {retourner $html ;}$product_id=$product->get_id() ;$html=&#8217;test&#8217; ;retourner $html ;}Appelez maintenant votre produit d&#8217;impression PDF URL comme ceci : https:\/\/yourdomain.com\/product\/YOUR_PRODUCT_URL\/?print-products=pdfVous verrez une simple cha\u00eene de test \u00e0 l&#8217;int\u00e9rieur du fichier incluant l&#8217;en-t\u00eate et le pied de page pr\u00e9d\u00e9finis, qui proviennent du plugin. C&#8217;est aussi simple que cela, vous pouvez maintenant ajouter du HTML personnalis\u00e9 au PDF comme vous le souhaitez.Nous allons ajouter d&#8217;autres donn\u00e9es sur les produits au format HTML :<\/p>\n<ul>\n<li>Image du produit align\u00e9e \u00e0 gauche<\/li>\n<li>Titre du produit + description \u00e0 droite<\/li>\n<li>Champ m\u00e9ta personnalis\u00e9<\/li>\n<\/ul>\n<h3>Ajouter l&#8217;image, le nom et la description du produit au PDF<\/h3>\n<p>Modifions donc la fonction ci-dessus et ajoutons quelques donn\u00e9es suppl\u00e9mentaires. Nous commen\u00e7ons par ajouter l&#8217;image, le titre et la description de notre produit. L&#8217;image sera plac\u00e9e dans une colonne de gauche et le bloc de titre dans une colonne de droite, nous avons donc besoin d&#8217;une feuille de style CSS personnalis\u00e9e pour assurer le flottement.add_filter(&#8216;woocommerce_print_product_product_html&#8217;, &#8216;custom_print_products_template&#8217;, 10, 2) ;function custom_print_products_template($html, $product_id){\/\/ V\u00e9rifier si le produit existeproduit=wc_get_product($product_id) ;si(!$product) {retourner $html ;}\/\/ Obtenir l&#8217;identifiant du produit$product_id=$product->get_id() ;\/\/ Stylisation CSS personnalis\u00e9e$html=&#8217;.conteneur {padding : 20px ;}.col-12 {largeur : 100 % ;padding : 10px ;}.col-6 {largeur : 45% ;float : left ;padding : 10px ;}&#8217; ;\/\/ Commencez par un conteneur$html .= &#8221; ;\/\/ Obtenir l&#8217;URL de l&#8217;image du produit$product_image_url=get_the_post_thumbnail_url($product_id) ;si($product_image_url) {$html .= &#8216;<img decoding=\"async\" src=\"' . $product_image_url . '\">&#8216; ;}\/\/ Obtenir le nom et la description du produitNom du produit=$product->get_name() ;$product_desc=$product->get_description() ;si(Nom du produit) {$html .= &#8216;<\/p>\n<h1>&#8216; . Nom du produit . &#8216;<\/h1>\n<p>&#8216; . $product_desc . &#8216;<\/p>\n<p>&#8216; ;}$html .= &#8221; ;retourner $html ;}Nous avons ajout\u00e9 des feuilles de style CSS personnalis\u00e9es pour les blocs flottants et ajout\u00e9 un peu de rembourrage. Nous utilisons ensuite l&#8217;objet $product et appelons des fonctions pour recevoir des donn\u00e9es telles que le nom, la description, etc. Vous pouvez trouver une liste compl\u00e8te des fonctions \u00e0 appeler sur l&#8217;objet produit de WooCommerce ici. Nous avons ensuite renvoy\u00e9 le code HTML et voici ce que cela donne :<\/p>\n<h3>Ajout d&#8217;un champ de produit personnalis\u00e9 au PDF<\/h3>\n<p>Si vous utilisez des champs d&#8217;articles personnalis\u00e9s, vous pouvez utiliser la fonction get_post_meta de WordPress pour recevoir les valeurs. WooCommerce stocke \u00e9galement les m\u00e9tadonn\u00e9es dans la table post_meta. Par exemple, le prix, qui peut \u00e9galement \u00eatre r\u00e9cup\u00e9r\u00e9 en utilisant $product->get_price() ; function. Ainsi, pour les champs m\u00e9ta vraiment uniques comme ceux du plugin ACF ou d&#8217;autres plugins personnalis\u00e9s, la fonction ci-dessus est cruciale pour obtenir les donn\u00e9es. Un exemple d&#8217;utilisation de get_post_meta pour g\u00e9n\u00e9rer un champ personnalis\u00e9 dans notre pdf WooCommerce :$html .= &#8221; ;\/\/ Obtenir un champ personnalis\u00e9$custom_field=get_post_meta($product_id, &#8216;custom_field&#8217;, true) ;si($custom_field) {$html .= &#8216;<\/p>\n<p>&#8216; . $custom_field . &#8216;<\/p>\n<p>&#8216; ;}$html .= &#8221; ;Et c&#8217;est tout. Si vous utilisez ACF par exemple, vous pouvez utiliser la fonction ACF get_field au lieu de get_post_meta.Si vous avez d&#8217;autres questions sur la fa\u00e7on de cr\u00e9er un mod\u00e8le PDF personnalis\u00e9 pour un produit, n&#8217;h\u00e9sitez pas \u00e0 commenter cet article ci-dessous.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En tant que propri\u00e9taire de boutique, vous voudrez peut-\u00eatre donner \u00e0 vos clients la possibilit\u00e9 de t\u00e9l\u00e9charger des PDF directement depuis WooCommerce. Que ce soit parce que vos utilisateurs ont besoin d&#8217;une version imprim\u00e9e, que vos vendeurs ont besoin de brochures sur les produits lorsqu&#8217;ils rendent visite \u00e0 des partenaires ou que vos clients ont&#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\/fr\/wp-json\/wp\/v2\/posts\/672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/comments?post=672"}],"version-history":[{"count":10,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/posts\/672\/revisions"}],"predecessor-version":[{"id":8987,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/posts\/672\/revisions\/8987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/media\/788"}],"wp:attachment":[{"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/media?parent=672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/categories?post=672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.welaunch.io\/fr\/wp-json\/wp\/v2\/tags?post=672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}