{"id":233353,"date":"2023-02-12T14:08:00","date_gmt":"2023-02-12T11:08:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233353"},"modified":"2022-11-10T20:38:23","modified_gmt":"2022-11-10T17:38:23","slug":"jak-zmienic-popularne-teksty-woocommerce-za-pomoca-kodu","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-zmienic-popularne-teksty-woocommerce-za-pomoca-kodu\/","title":{"rendered":"Jak zmieni\u0107 popularne teksty WooCommerce za pomoc\u0105 kodu?"},"content":{"rendered":"\n<p>WooCommerce jest pe\u0142en filtr\u00f3w, haczyk\u00f3w i funkcji, kt\u00f3re pomog\u0105 Ci dostosowa\u0107 i wykorzysta\u0107 wtyczk\u0119 w motywie lub wtyczce. Oto kilka ma\u0142ych, ale u\u017cytecznych przyk\u0142ad\u00f3w kodu, a-ha i poradnik\u00f3w na temat typowych zmian w r\u00f3\u017cnych wyj\u015bciach tekstowych.<\/p>\n<h2>Zmiana tekstu przycisku \u201eDodaj do koszyka&quot;<\/h2>\n<p>Istniej\u0105 dwa filtry; jeden dla tekst\u00f3w \u201edodaj do koszyka&#8221; w p\u0119tli (<code>woocommerce_product_add_to_cart_text<\/code>), a drugi dla przycisku w pojedynczym produkcie (<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>Pami\u0119taj jednak, \u017ce zast\u0119puje to wszystkie teksty \u201eDodaj do koszyka&#8221;. Nawet te, kt\u00f3re pierwotnie by\u0142y \u201eWybierz opcje&#8221; (produkty zmienne) lub \u201eDowiedz si\u0119 wi\u0119cej&#8221; (produkty nie do kupienia \u2013 brak ceny lub brak w magazynie). Je\u015bli chcesz dok\u0142adniej dostroi\u0107, do\u0142\u0105cz drugi argument do tych filtr\u00f3w; obiekt produktu. U\u017cyj obiektu produktu, aby warunkowo sterowa\u0107 danymi wyj\u015bciowymi. Na przyk\u0142ad wed\u0142ug rodzaju produktu lub tego, czy produkt mo\u017cna kupi\u0107:<\/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>Zmie\u0144 dane wyj\u015bciowe przedzia\u0142u cenowego na produkty zmienne i pogrupowane<\/h2>\n<p>Domy\u015blnie WooCommerce wy\u015bwietla najni\u017csz\u0105 i najwy\u017csz\u0105 cen\u0119 na produktach zmiennych i pogrupowanych, ze znakiem \u201e-&#8221; pomi\u0119dzy. Mo\u017cesz bardzo \u0142atwo modyfikowa\u0107 ten zakres wyj\u015bciowy. Na przyk\u0142ad upewnij si\u0119, \u017ce pokazuje tylko najni\u017csz\u0105 cen\u0119 w postaci \u201eOd:&#8221;. WooCommerce ma jeden filtr dla produkt\u00f3w zmiennych, a drugi dla produkt\u00f3w zgrupowanych, wi\u0119c sp\u00f3jrzmy na oba po kolei.<\/p>\n<p>Kontrolowanie wynik\u00f3w HTML przedzia\u0142u cenowego dla produkt\u00f3w zmiennych odbywa si\u0119 za pomoc\u0105 filtra <code>woocommerce_variable_price_html<\/code>. Jako drugi argument podano obiekt produktu.<\/p>\n<p>Wewn\u0105trz funkcji musimy pobra\u0107 wszystkie ceny. WooCommerce oferuje przydatn\u0105 funkcj\u0119 na zmiennych obiektach produkt\u00f3w, <code>get_variation_prices()<\/code>. Zwraca tablic\u0119 wszystkich cen wariant\u00f3w, posortowanych wed\u0142ug najni\u017cszych. Wszystko, co musimy zrobi\u0107, je\u015bli wyskoczymy z pierwszego elementu tablicy cen i wypiszemy go \u0142adnie:<\/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>Filtr wyj\u015bciowy HTML przedzia\u0142u cenowego dla zgrupowanych produkt\u00f3w jest bardzo podobny do produkt\u00f3w zmiennych, ale z jedn\u0105 r\u00f3\u017cnic\u0105; tablica wszystkich zgrupowanych cen produkt\u00f3w \u201edzieci\u0119cych&#8221; jest do\u0142\u0105czona jako argument do filtra. Filtr, kt\u00f3rego nale\u017cy u\u017cy\u0107 to <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>Zmodyfikuj wyj\u015bcie tekstowe stanu zapas\u00f3w<\/h2>\n<p>Je\u015bli aktywowa\u0142e\u015b wy\u015bwietlanie stanu magazynowego w ustawieniach WooCommerce, powinien on wy\u015bwietla\u0107 dok\u0142adn\u0105 ilo\u015b\u0107 pozosta\u0142ych zapas\u00f3w w widoku pojedynczego produktu (np. \u201e42 w magazynie&#8221;). Mo\u017cesz jednak zmodyfikowa\u0107 dane wyj\u015bciowe, aby zamiast tego pokazywa\u0142y zakres, a nie dok\u0142adn\u0105 kwot\u0119. Lub po prostu \u201eW magazynie&#8221;, je\u015bli chcesz ukry\u0107 numer.<\/p>\n<p>Filtrem do tego jest <code>woocommerce_get_stock_html<\/code>i je\u015bli uwzgl\u0119dnisz drugi argument, otrzymasz obiekt produktu. Za pomoc\u0105 obiektu produktu mo\u017cesz wykona\u0107 niezb\u0119dne operacje w celu dostrojenia danych wyj\u015bciowych. Pami\u0119taj, \u017ce filtrowalne wyj\u015bcie jest zawini\u0119te wewn\u0105trz <code>&lt;p&gt;<\/code>elementu, a twoje wyj\u015bcie r\u00f3wnie\u017c powinno.<\/p>\n<p>Aby po prostu wy\u015bwietli\u0107 \u201eW magazynie&#8221; lub \u201eNie w magazynie&#8221;, wystarczy:<\/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>Pokazywanie zapas\u00f3w w \u201ewarto\u015bciach zakresu&#8221; mo\u017cna wykona\u0107 w nast\u0119puj\u0105cy spos\u00f3b:<\/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>Zmie\u0144 nazw\u0119 status\u00f3w zam\u00f3wie\u0144<\/h2>\n<p>Czasami klient chce, aby r\u00f3\u017cne etykiety na statusach zam\u00f3wienia mia\u0142y wi\u0119kszy sens zgodnie z jego praktykami w sklepie internetowym. Na przyk\u0142ad mo\u017cesz zmieni\u0107 nazw\u0119 \u201eWstrzymane&#8221; na \u201eNiewys\u0142ane&#8221; lub \u201eZako\u0144czono&#8221; na \u201eWys\u0142ane&#8221;. \u017beby by\u0142o bardziej sensownie, kt\u00f3re zam\u00f3wienia nale\u017cy wys\u0142a\u0107, a kt\u00f3re ju\u017c zosta\u0142y wys\u0142ane. WooCommerce oferuje prosty filtr, <code>wc_order_statuses<\/code>, na wszystkich dost\u0119pnych nazwach status\u00f3w zam\u00f3wie\u0144.<\/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>Dost\u0119pne klawisze to <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>, i <code>wc-failed<\/code>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kilka ma\u0142ych, ale przydatnych przyk\u0142ad\u00f3w kodu, a-ha i poradnik\u00f3w typowych zmian r\u00f3\u017cnych wyj\u015b\u0107 tekstowych w 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":[897,897,1110,815,845,845,856,856,866,866,815],"tags":[1169],"class_list":["post-233353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kod","category-n-a","category-wtyczki","category-samouczki","category-woocommerce-7","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=233353"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233353\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/223696"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}