{"id":233379,"date":"2023-02-12T14:47:00","date_gmt":"2023-02-12T11:47:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233379"},"modified":"2022-11-10T23:22:24","modified_gmt":"2022-11-10T20:22:24","slug":"como-alterar-textos-comuns-do-woocommerce-com-codigo","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-alterar-textos-comuns-do-woocommerce-com-codigo\/","title":{"rendered":"Como alterar textos comuns do WooCommerce com c\u00f3digo"},"content":{"rendered":"\n<p>O WooCommerce est\u00e1 repleto de filtros, ganchos e fun\u00e7\u00f5es para ajud\u00e1-lo a personalizar e utilizar o plug-in em seu tema ou plug-in. Aqui est\u00e3o alguns exemplos de c\u00f3digo pequenos, mas \u00fateis, a-ha&#8217;s e instru\u00e7\u00f5es de mudan\u00e7as comuns de diferentes sa\u00eddas de texto.<\/p>\n<h2>Alterando os textos do bot\u00e3o &quot;Adicionar ao carrinho&quot;<\/h2>\n<p>Existem dois filtros; um para textos &#8220;adicionar ao carrinho&quot; em loop (<code>woocommerce_product_add_to_cart_text<\/code>), e outro para o bot\u00e3o em produto \u00fanico (<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>No entanto, lembre-se de que isso substitui todos os textos &quot;Adicionar ao carrinho&quot;. Mesmo aqueles que originalmente eram &#8220;Selecionar op\u00e7\u00f5es&#8221; (produtos vari\u00e1veis) ou &#8220;Leia mais&#8221; (produtos n\u00e3o compr\u00e1veis \u200b\u200b\u2013 sem pre\u00e7o ou sem estoque). Se desejar mais ajuste fino, inclua o segundo argumento nesses filtros; o objeto do produto. Use o objeto do produto para controlar condicionalmente a sa\u00edda. Por exemplo, por tipo de produto ou se o produto pode ou n\u00e3o ser comprado:<\/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>Altere a sa\u00edda da faixa de pre\u00e7o em produtos vari\u00e1veis \u200b\u200be agrupados<\/h2>\n<p>Como padr\u00e3o, o WooCommerce exibir\u00e1 o menor e o maior pre\u00e7o em produtos vari\u00e1veis \u200b\u200be agrupados, com um &#8220;-&#8221; no meio. Voc\u00ea pode facilmente modificar essa sa\u00edda de intervalo. Por exemplo, certifique-se de que ele mostre apenas o pre\u00e7o mais baixo, na forma de &#8220;De: &#8220;. O WooCommerce tem um filtro para produtos vari\u00e1veis \u200b\u200be outro para produtos agrupados, ent\u00e3o vamos dar uma olhada em ambos.<\/p>\n<p>O controle da sa\u00edda HTML da faixa de pre\u00e7o para produtos vari\u00e1veis \u200b\u200b\u00e9 feito com o filtro <code>woocommerce_variable_price_html<\/code>. O objeto do produto \u00e9 fornecido como segundo argumento.<\/p>\n<p>Dentro da fun\u00e7\u00e3o precisamos buscar todos os pre\u00e7os. O WooCommerce oferece uma fun\u00e7\u00e3o \u00fatil em objetos de produtos vari\u00e1veis, <code>get_variation_prices()<\/code>. Isso retorna uma matriz de todos os pre\u00e7os de variantes, classificados primeiro pelo menor. Tudo o que precisamos fazer se destacar o primeiro elemento na matriz de pre\u00e7os e produzi-lo bem:<\/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>O filtro de sa\u00edda HTML da faixa de pre\u00e7o para produtos agrupados \u00e9 muito semelhante aos produtos vari\u00e1veis, mas com uma diferen\u00e7a; uma matriz de pre\u00e7os de todos os produtos agrupados &#8220;crian\u00e7as&#8221; \u00e9 inclu\u00edda como argumento para o filtro. O filtro a ser usado \u00e9 <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>Modificar sa\u00edda de texto de status de estoque<\/h2>\n<p>Se voc\u00ea ativou a exibi\u00e7\u00e3o do status do estoque nas configura\u00e7\u00f5es do WooCommerce, ele deve exibir a quantidade exata de estoque restante na visualiza\u00e7\u00e3o de um \u00fanico produto (por exemplo, &quot;42 em estoque&quot;). No entanto, voc\u00ea pode modificar a sa\u00edda para mostrar um intervalo em vez da quantidade exata. Ou apenas &quot;Em estoque&quot; se voc\u00ea quiser ocultar o n\u00famero.<\/p>\n<p>O filtro para fazer isso \u00e9 <code>woocommerce_get_stock_html<\/code>e, se voc\u00ea incluir o segundo argumento, obter\u00e1 o objeto do produto. Com o objeto produto, voc\u00ea pode fazer as opera\u00e7\u00f5es necess\u00e1rias para ajustar a sa\u00edda. Tenha em mente que a sa\u00edda filtr\u00e1vel \u00e9 encapsulada dentro de um <code>&lt;p&gt;<\/code>elemento, e sua sa\u00edda tamb\u00e9m.<\/p>\n<p>Para simplesmente mostrar &#8220;Em estoque&#8221; ou &#8220;N\u00e3o em estoque&#8221;, isso ser\u00e1 suficiente:<\/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>Mostrar estoque em &#8220;valores de intervalo&#8221; pode ser feito assim:<\/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>Renomear status do pedido<\/h2>\n<p>\u00c0s vezes, um cliente deseja que r\u00f3tulos diferentes nos status do pedido fa\u00e7am mais sentido de acordo com as pr\u00e1ticas de sua loja virtual. Por exemplo, voc\u00ea pode querer que &#8220;Em espera&#8221; seja renomeado para &#8220;N\u00e3o enviado&#8221; ou &#8220;Conclu\u00eddo&#8221; para ser renomeado como &#8220;Enviado&#8221;. S\u00f3 para fazer mais sentido quais pedidos precisam ser enviados e quais j\u00e1 foram enviados. O WooCommerce oferece um filtro simples, <code>wc_order_statuses<\/code>, em todos os nomes de status de pedidos dispon\u00edveis.<\/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>As chaves dispon\u00edveis s\u00e3o <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 de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alguns exemplos de c\u00f3digo pequenos, mas \u00fateis, a-ha e instru\u00e7\u00f5es de altera\u00e7\u00f5es comuns de diferentes sa\u00eddas de texto no 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":[898,898,1110,816,816,846,846,857,857,867,867],"tags":[1170],"class_list":["post-233379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-n-a","category-plug-ins","category-tutoriais","category-woocommerce-8","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=233379"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233379\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/223696"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=233379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=233379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=233379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}