{"id":233385,"date":"2023-02-12T14:11:00","date_gmt":"2023-02-12T11:11:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233385"},"modified":"2022-11-10T23:24:37","modified_gmt":"2022-11-10T20:24:37","slug":"come-modificare-i-testi-comuni-di-woocommerce-con-il-codice","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/come-modificare-i-testi-comuni-di-woocommerce-con-il-codice\/","title":{"rendered":"Come modificare i testi comuni di WooCommerce con il codice"},"content":{"rendered":"\n<p>WooCommerce \u00e8 pieno zeppo di filtri, hook e funzioni per aiutarti a personalizzare e utilizzare il plug-in nel tuo tema o plug-in. Ecco alcuni piccoli, ma utili, esempi di codice, a-ha e come fare per le modifiche comuni di diversi output di testo.<\/p>\n<h2>Modifica dei testi dei pulsanti &quot;Aggiungi al carrello&quot;.<\/h2>\n<p>Ci sono due filtri; uno per i testi &#8220;aggiungi al carrello&quot; in loop (<code>woocommerce_product_add_to_cart_text<\/code>), e un altro per il pulsante nel singolo prodotto (<code>woocommerce_product_single_add_to_cart_text<\/code>):<\/p>\n<pre><code>\/\/ Single product view\nadd_filter('woocommerce_product_single_add_to_cart_text', function($text) {\n    return __('Buy this now', 'txtdomain');\n});\n\u00a0\n\/\/ Loop\nadd_filter('woocommerce_product_add_to_cart_text', function($text) {\n    return __('Buy this', 'txtdomain');\n});<\/code><\/pre>\n<p>Tuttavia, tieni presente che questo prevale su tutti i testi &quot;Aggiungi al carrello&quot;. Anche quelli che originariamente erano &quot;Seleziona opzioni&quot; (prodotti variabili) o &quot;Leggi di pi\u00f9&quot; (prodotti non acquistabili &#8211; nessun prezzo o esaurito). Se desideri una messa a punto pi\u00f9 precisa, includi il secondo argomento in questi filtri; l&#8217;oggetto del prodotto. Utilizzare l&#8217;oggetto prodotto per controllare in modo condizionale l&#8217;output. Ad esempio per tipo di prodotto o se il prodotto pu\u00f2 essere acquistato o meno:<\/p>\n<pre><code>add_filter('woocommerce_product_add_to_cart_text', function($text, $product) {\n    if ($product-&gt;is_type('variable')) {\n        return __('Take your pick', 'txtdomain');\n    }\n    if (!$product-&gt;is_purchasable()) {\n        return __('Read more', 'txtdomain');\n    }\n    return $text;\n}, 10, 2);<\/code><\/pre>\n<h2>Modificare l&#8217;output della fascia di prezzo su prodotti variabili e raggruppati<\/h2>\n<p>Come impostazione predefinita WooCommerce visualizzer\u00e0 il prezzo pi\u00f9 basso e quello pi\u00f9 alto sui prodotti variabili e raggruppati, con un &quot;-&quot; in mezzo. \u00c8 possibile modificare molto facilmente questo output di intervallo. Ad esempio, assicurati che mostri solo il prezzo pi\u00f9 basso, sotto forma di &quot;Da: &quot;. WooCommerce ha un filtro per i prodotti variabili e un altro per i prodotti raggruppati, quindi esaminiamoli entrambi uno dopo l&#8217;altro.<\/p>\n<p>Il controllo dell&#8217;output HTML della fascia di prezzo per i prodotti variabili avviene tramite il filtro <code>woocommerce_variable_price_html<\/code>. L&#8217;oggetto prodotto viene fornito come secondo argomento.<\/p>\n<p>All&#8217;interno della funzione dobbiamo recuperare tutti i prezzi. WooCommerce offre una pratica funzione su oggetti prodotto variabili, <code>get_variation_prices()<\/code>. Questo restituisce una matrice di tutti i prezzi delle varianti, ordinati per primo in base al pi\u00f9 basso. Tutto quello che dobbiamo fare se spuntare il primo elemento nell&#8217;array dei prezzi e visualizzarlo bene:<\/p>\n<pre><code>add_filter('woocommerce_variable_price_html', function($html, $product) {\n    $prices = $product-&gt;get_variation_prices(true);\n    $from_price = wc_price(current($prices['price']));\n    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product-&gt;get_price_suffix());\n}, 10, 2);<\/code><\/pre>\n<p>Il filtro di output HTML della fascia di prezzo per i prodotti raggruppati \u00e8 molto simile ai prodotti variabili ma con una differenza; un array di tutti i prezzi dei prodotti &quot;bambini&quot; raggruppati \u00e8 incluso come argomento del filtro. Il filtro da utilizzare \u00e8 <code>woocommerce_grouped_price_html<\/code>:<\/p>\n<pre><code>add_filter('woocommerce_grouped_price_html', function($html, $product, $child_prices) {\n    $from_price = wc_price(current($child_prices));\n    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product-&gt;get_price_suffix());\n}, 10, 3);<\/code><\/pre>\n<h2>Modifica l&#8217;output del testo dello stato delle scorte<\/h2>\n<p>Se hai attivato la visualizzazione dello stato delle scorte nelle impostazioni di WooCommerce, dovrebbe visualizzare la quantit\u00e0 precisa di scorte rimanenti nella visualizzazione del singolo prodotto (ad es. &quot;42 in stock&quot;). Tuttavia \u00e8 possibile modificare l&#8217;output per mostrare invece un intervallo anzich\u00e9 l&#8217;importo preciso. O semplicemente &quot;Disponibile&quot; se vuoi nascondere il numero.<\/p>\n<p>Il filtro per fare ci\u00f2 \u00e8 <code>woocommerce_get_stock_html<\/code>e se includi il secondo argomento ottieni l&#8217;oggetto prodotto. Con l&#8217;oggetto prodotto \u00e8 possibile eseguire le operazioni necessarie per la messa a punto dell&#8217;output. Tieni presente che l&#8217;output filtrabile \u00e8 racchiuso all&#8217;interno di un <code>&lt;p&gt;<\/code>elemento e anche il tuo output dovrebbe.<\/p>\n<p>Per mostrare semplicemente &quot;Disponibile&quot; o &quot;Non disponibile&quot; sar\u00e0 sufficiente:<\/p>\n<pre><code>add_filter('woocommerce_get_stock_html', function($html, $product) {\n    if ($product-&gt;is_in_stock()) {\n        return sprintf('&lt;p class=\"stock in-stock\"&gt;%s&lt;\/p&gt;', __('In stock', 'txtdomain'));\n    } else {\n        return sprintf('&lt;p class=\"stock out-of-stock\"&gt;%s&lt;\/p&gt;', __('Out of stock', 'txtdomain'));\n    }\n    return $html;\n}, 10, 2);<\/code><\/pre>\n<p>La visualizzazione delle scorte in &quot;valori di intervallo&quot; pu\u00f2 essere eseguita in questo modo:<\/p>\n<pre><code>add_filter('woocommerce_get_stock_html', function($html, $product) {\n    $current_stock = $product-&gt;get_stock_quantity();\n    if ($current_stock &lt;= 0) {\n        $new_html = __('Out of stock', 'txtdomain');\n    } else if ($current_stock &gt; 500) {\n        $new_html = sprintf('500+ %s', __('in stock', 'txtdomain'));\n    } else if ($current_stock &gt; 100) {\n        $new_html = sprintf('100+ %s', __('in stock', 'txtdomain'));\n    } else if ($current_stock &gt; 20) {\n        $new_html = sprintf('20+ %s', __('in stock', 'txtdomain'));\n    } else {\n        $new_html = __('In stock', 'txtdomain');\n    }\n    return sprintf('&lt;p class=\"stock\"&gt;%s&lt;\/p&gt;', $new_html);\n}, 10, 2);<\/code><\/pre>\n<h2>Rinomina gli stati degli ordini<\/h2>\n<p>A volte un cliente desidera etichette diverse sugli stati degli ordini per avere pi\u00f9 senso in base alle pratiche del proprio negozio online. Ad esempio, potresti voler rinominare &quot;In attesa&quot; in &quot;Non inviato&quot; o &quot;Completato&quot; da rinominare &quot;Inviato&quot;. Giusto per avere pi\u00f9 senso quali ordini devono essere inviati e quali sono gi\u00e0 stati inviati. WooCommerce offre un semplice filtro, <code>wc_order_statuses<\/code>, sui nomi di tutti gli stati degli ordini disponibili.<\/p>\n<pre><code>add_filter('wc_order_statuses', function($order_statuses) {\n    $order_statuses['wc-on-hold'] = __('Unsent', 'txtdomain');\n    $order_statuses['wc-completed'] = __('Sent', 'txtdomain');\n    return $order_statuses;\n});<\/code><\/pre>\n<p>Le chiavi disponibili sono <code>wc-pending<\/code>, <code>wc-processing<\/code>, <code>wc-on-hold<\/code>, <code>wc-completed<\/code>, <code>wc-cancelled<\/code>, <code>wc-refunded<\/code>e <code>wc-failed<\/code>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alcuni piccoli, ma utili, esempi di codice, a-ha e how-to di modifiche comuni di diversi output di testo in WordPress WooCommerce.<\/p>\n","protected":false},"author":1,"featured_media":223696,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,896,1110,814,814,844,844,855,855,865,865],"tags":[1168],"class_list":["post-233385","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-n-a","category-plugin-2","category-tutorial","category-woocommerce-6","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=233385"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233385\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223696"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}