WooCommerce jest pełen filtrów, haczyków i funkcji, które pomogą Ci dostosować i wykorzystać wtyczkę w motywie lub wtyczce. Oto kilka małych, ale użytecznych przykładów kodu, a-ha i poradników na temat typowych zmian w różnych wyjściach tekstowych.
Zmiana tekstu przycisku „Dodaj do koszyka"
Istnieją dwa filtry; jeden dla tekstów „dodaj do koszyka” w pętli (woocommerce_product_add_to_cart_text
), a drugi dla przycisku w pojedynczym produkcie (woocommerce_product_single_add_to_cart_text
):
// Single product view
add_filter('woocommerce_product_single_add_to_cart_text', function($text) {
return __('Buy this now', 'txtdomain');
});
// Loop
add_filter('woocommerce_product_add_to_cart_text', function($text) {
return __('Buy this', 'txtdomain');
});
Pamiętaj jednak, że zastępuje to wszystkie teksty „Dodaj do koszyka”. Nawet te, które pierwotnie były „Wybierz opcje” (produkty zmienne) lub „Dowiedz się więcej” (produkty nie do kupienia – brak ceny lub brak w magazynie). Jeśli chcesz dokładniej dostroić, dołącz drugi argument do tych filtrów; obiekt produktu. Użyj obiektu produktu, aby warunkowo sterować danymi wyjściowymi. Na przykład według rodzaju produktu lub tego, czy produkt można kupić:
Zmień dane wyjściowe przedziału cenowego na produkty zmienne i pogrupowane
Domyślnie WooCommerce wyświetla najniższą i najwyższą cenę na produktach zmiennych i pogrupowanych, ze znakiem „-” pomiędzy. Możesz bardzo łatwo modyfikować ten zakres wyjściowy. Na przykład upewnij się, że pokazuje tylko najniższą cenę w postaci „Od:”. WooCommerce ma jeden filtr dla produktów zmiennych, a drugi dla produktów zgrupowanych, więc spójrzmy na oba po kolei.
Kontrolowanie wyników HTML przedziału cenowego dla produktów zmiennych odbywa się za pomocą filtra woocommerce_variable_price_html
. Jako drugi argument podano obiekt produktu.
Wewnątrz funkcji musimy pobrać wszystkie ceny. WooCommerce oferuje przydatną funkcję na zmiennych obiektach produktów, get_variation_prices()
. Zwraca tablicę wszystkich cen wariantów, posortowanych według najniższych. Wszystko, co musimy zrobić, jeśli wyskoczymy z pierwszego elementu tablicy cen i wypiszemy go ładnie:
Filtr wyjściowy HTML przedziału cenowego dla zgrupowanych produktów jest bardzo podobny do produktów zmiennych, ale z jedną różnicą; tablica wszystkich zgrupowanych cen produktów „dziecięcych” jest dołączona jako argument do filtra. Filtr, którego należy użyć to woocommerce_grouped_price_html
:
Zmodyfikuj wyjście tekstowe stanu zapasów
Jeśli aktywowałeś wyświetlanie stanu magazynowego w ustawieniach WooCommerce, powinien on wyświetlać dokładną ilość pozostałych zapasów w widoku pojedynczego produktu (np. „42 w magazynie”). Możesz jednak zmodyfikować dane wyjściowe, aby zamiast tego pokazywały zakres, a nie dokładną kwotę. Lub po prostu „W magazynie”, jeśli chcesz ukryć numer.
Filtrem do tego jest woocommerce_get_stock_html
i jeśli uwzględnisz drugi argument, otrzymasz obiekt produktu. Za pomocą obiektu produktu możesz wykonać niezbędne operacje w celu dostrojenia danych wyjściowych. Pamiętaj, że filtrowalne wyjście jest zawinięte wewnątrz <p>
elementu, a twoje wyjście również powinno.
Aby po prostu wyświetlić „W magazynie” lub „Nie w magazynie”, wystarczy:
Pokazywanie zapasów w „wartościach zakresu” można wykonać w następujący sposób:
Zmień nazwę statusów zamówień
Czasami klient chce, aby różne etykiety na statusach zamówienia miały większy sens zgodnie z jego praktykami w sklepie internetowym. Na przykład możesz zmienić nazwę „Wstrzymane” na „Niewysłane” lub „Zakończono” na „Wysłane”. Żeby było bardziej sensownie, które zamówienia należy wysłać, a które już zostały wysłane. WooCommerce oferuje prosty filtr, wc_order_statuses
, na wszystkich dostępnych nazwach statusów zamówień.
add_filter('wc_order_statuses', function($order_statuses) {
$order_statuses['wc-on-hold'] = __('Unsent', 'txtdomain');
$order_statuses['wc-completed'] = __('Sent', 'txtdomain');
return $order_statuses;
});
Dostępne klawisze to wc-pending
, wc-processing
, wc-on-hold
, wc-completed
, wc-cancelled
, wc-refunded
, i wc-failed
.