✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak zmienić popularne teksty WooCommerce za pomocą kodu?

99

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ć:

add_filter('woocommerce_product_add_to_cart_text', function($text, $product) {
    if ($product->is_type('variable')) {
        return __('Take your pick', 'txtdomain');
    }
    if (!$product->is_purchasable()) {
        return __('Read more', 'txtdomain');
    }
    return $text;
}, 10, 2);

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:

add_filter('woocommerce_variable_price_html', function($html, $product) {
    $prices = $product->get_variation_prices(true);
    $from_price = wc_price(current($prices['price']));
    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product->get_price_suffix());
}, 10, 2);

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:

add_filter('woocommerce_grouped_price_html', function($html, $product, $child_prices) {
    $from_price = wc_price(current($child_prices));
    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product->get_price_suffix());
}, 10, 3);

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_htmli 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:

add_filter('woocommerce_get_stock_html', function($html, $product) {
    if ($product->is_in_stock()) {
        return sprintf('<p class="stock in-stock">%s</p>', __('In stock', 'txtdomain'));
    } else {
        return sprintf('<p class="stock out-of-stock">%s</p>', __('Out of stock', 'txtdomain'));
    }
    return $html;
}, 10, 2);

Pokazywanie zapasów w „wartościach zakresu” można wykonać w następujący sposób:

add_filter('woocommerce_get_stock_html', function($html, $product) {
    $current_stock = $product->get_stock_quantity();
    if ($current_stock <= 0) {
        $new_html = __('Out of stock', 'txtdomain');
    } else if ($current_stock > 500) {
        $new_html = sprintf('500+ %s', __('in stock', 'txtdomain'));
    } else if ($current_stock > 100) {
        $new_html = sprintf('100+ %s', __('in stock', 'txtdomain'));
    } else if ($current_stock > 20) {
        $new_html = sprintf('20+ %s', __('in stock', 'txtdomain'));
    } else {
        $new_html = __('In stock', 'txtdomain');
    }
    return sprintf('<p class="stock">%s</p>', $new_html);
}, 10, 2);

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.

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów