{"id":233339,"date":"2023-02-12T14:47:00","date_gmt":"2023-02-12T11:47:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233339"},"modified":"2022-11-10T20:33:57","modified_gmt":"2022-11-10T17:33:57","slug":"como-cambiar-textos-comunes-de-woocommerce-con-codigo","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/como-cambiar-textos-comunes-de-woocommerce-con-codigo\/","title":{"rendered":"C\u00f3mo cambiar textos comunes de WooCommerce con c\u00f3digo"},"content":{"rendered":"\n<p>WooCommerce est\u00e1 repleto de filtros, ganchos y funciones para ayudarlo a personalizar y utilizar el complemento en su tema o complemento. Aqu\u00ed hay algunos ejemplos de c\u00f3digo peque\u00f1os, pero \u00fatiles, a-ha y procedimientos de cambios comunes de diferentes salidas de texto.<\/p>\n<h2>Cambiar los textos del bot\u00f3n &quot;Agregar al carrito&quot;<\/h2>\n<p>Hay dos filtros; uno para los textos de \u00abagregar al carrito&quot; en loop (<code>woocommerce_product_add_to_cart_text<\/code>), y otro para el bot\u00f3n en producto \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>Sin embargo, tenga en cuenta que esto anula todos los textos de &quot;Agregar al carrito&quot;. Incluso aquellos que originalmente eran \u00abSeleccionar opciones\u00bb (productos variables) o \u00abLeer m\u00e1s\u00bb (productos no adquiribles \u2013 sin precio o sin stock). Si desea m\u00e1s ajustes, incluya el segundo argumento para estos filtros; el objeto del producto. Utilice el objeto del producto para controlar condicionalmente la salida. Por ejemplo, por tipo de producto o si el producto se puede comprar o no:<\/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>Cambiar la salida del rango de precios en productos variables y agrupados<\/h2>\n<p>De forma predeterminada, WooCommerce mostrar\u00e1 el precio m\u00e1s bajo y m\u00e1s alto en productos variables y agrupados, con un &quot;-&quot; en el medio. Puede modificar muy f\u00e1cilmente esta salida de rango. Por ejemplo, aseg\u00farese de que solo muestre el precio m\u00e1s bajo, en forma de &quot;Desde:&quot;. WooCommerce tiene un filtro para productos variables y otro para productos agrupados, as\u00ed que veamos ambos a la vez.<\/p>\n<p>El control de la salida HTML del rango de precios para productos variables se realiza con el filtro <code>woocommerce_variable_price_html<\/code>. El objeto del producto se proporciona como segundo argumento.<\/p>\n<p>Dentro de la funci\u00f3n necesitamos obtener todos los precios. WooCommerce ofrece una funci\u00f3n \u00fatil en objetos de productos variables, <code>get_variation_prices()<\/code>. Esto devuelve una matriz de todos los precios de las variantes, ordenados por el m\u00e1s bajo primero. Todo lo que tenemos que hacer es extraer el primer elemento de la matriz de precios y generarlo correctamente:<\/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>El filtro de salida HTML de rango de precios para productos agrupados es muy similar a los productos variables pero con una diferencia; se incluye una matriz de todos los precios de los productos &quot;ni\u00f1os&quot; agrupados como argumento para el filtro. El filtro a utilizar es <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 salida de texto de estado de existencias<\/h2>\n<p>Si ha activado la visualizaci\u00f3n del estado del stock en la configuraci\u00f3n de WooCommerce, deber\u00eda mostrar la cantidad precisa de stock que queda en la vista de un solo producto (por ejemplo, &quot;42 en stock&quot;). Sin embargo, puede modificar la salida para mostrar un rango en lugar de la cantidad precisa. O simplemente &quot;En stock&quot; si desea ocultar el n\u00famero.<\/p>\n<p>El filtro para hacer esto es <code>woocommerce_get_stock_html<\/code>y si incluye el segundo argumento, obtiene el objeto del producto. Con el objeto del producto puede realizar las operaciones necesarias para ajustar la salida. Tenga en cuenta que la salida filtrable est\u00e1 envuelta dentro de un <code>&lt;p&gt;<\/code>elemento, y su salida tambi\u00e9n deber\u00eda hacerlo.<\/p>\n<p>Para simplemente mostrar &quot;En stock&quot; o &quot;No en stock&quot; esto 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 stock en &quot;valores de rango&quot; se puede hacer as\u00ed:<\/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>Cambiar el nombre de los estados de los pedidos<\/h2>\n<p>A veces, un cliente quiere etiquetas diferentes en los estados de los pedidos para que tengan m\u00e1s sentido de acuerdo con las pr\u00e1cticas de su tienda web. Por ejemplo, es posible que desee cambiar el nombre de &quot;En espera&quot; a &quot;Sin enviar&quot; o &quot;Completado&quot; a &quot;Enviado&quot;. Solo para que tenga m\u00e1s sentido qu\u00e9 pedidos deben enviarse y cu\u00e1les ya se han enviado. WooCommerce ofrece un filtro simple, <code>wc_order_statuses<\/code>, en todos los nombres de estados de pedidos disponibles.<\/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>Las teclas disponibles son <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>y <code>wc-failed<\/code>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Algunos ejemplos de c\u00f3digo peque\u00f1os, pero \u00fatiles, a-ha y procedimientos de cambios comunes de diferentes salidas de texto en 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":[892,892,810,1110,810,840,840,851,851,861,861],"tags":[1172],"class_list":["post-233339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-complementos","category-n-a","category-tutoriales","category-woocommerce-2","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=233339"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233339\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/223696"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}