Hur man ändrar vanliga WooCommerce-texter med kod
WooCommerce är proppfull av filter, krokar och funktioner för att hjälpa dig att anpassa och använda plugin i ditt tema eller plugin. Här är några små, men användbara, kodexempel, a-ha’s och how-tos för vanliga ändringar av olika textutdata.
Ändra texten på knappen "Lägg till i kundvagn".
Det finns två filter; en för "lägg till i kundvagn"-texter i loop (woocommerce_product_add_to_cart_text
), och en annan för knappen i en produkt (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');
});
Kom dock ihåg att detta åsidosätter alla "Lägg i kundvagn"-texter. Även de som ursprungligen var "Välj alternativ" (varierande produkter) eller "Läs mer" (ej köpbara produkter – inget pris eller slut i lager). Om du vill ha mer finjustering, inkludera det andra argumentet i dessa filter; produktobjektet. Använd produktobjektet för att villkorsstyra utmatningen. Till exempel efter produkttyp eller om produkt kan köpas eller inte:
Ändra prisintervallet på variabla och grupperade produkter
Som standard kommer WooCommerce att visa det lägsta och det högsta priset på variabla och grupperade produkter, med ett "-" emellan. Du kan mycket enkelt modifiera denna intervallutgång. Se till exempel till att den bara visar det lägsta priset, i form av "Från: ". WooCommerce har ett filter för variabla produkter och ett annat för grupperade produkter, så låt oss titta på dem båda i tur och ordning.
Kontroll av prisintervallet HTML-utdata för variabla produkter görs med filtret woocommerce_variable_price_html
. Produktobjektet tillhandahålls som andra argument.
Inuti funktionen behöver vi hämta alla priser. WooCommerce erbjuder en praktisk funktion på variabla produktobjekt, get_variation_prices()
. Detta returnerar en uppsättning av alla variantpriser, sorterade efter lägsta först. Allt vi behöver göra om det första elementet i prismatrisen hoppar av och matar ut det snyggt:
Prisintervallet HTML-utdatafilter för grupperade produkter är mycket likt variabla produkter men med en skillnad; en uppsättning av alla grupperade produkt-"barn”-priser ingår som argument till filtret. Filtret att använda är woocommerce_grouped_price_html
:
Ändra lagerstatus textutdata
Om du har aktiverat visning av lagerstatus i WooCommerce-inställningarna bör den visa den exakta mängden lager som finns kvar i en produktvy (t.ex. "42 i lager"). Du kan dock ändra utdata för att istället visa ett intervall snarare än det exakta beloppet. Eller bara "I lager" om du vill dölja numret.
Filtret för att göra detta är woocommerce_get_stock_html
och om du inkluderar det andra argumentet får du produktobjektet. Med produktobjektet kan du göra nödvändiga operationer för att finjustera utdata. Tänk på att den filtrerbara utgången är inlindad i ett <p>
element, och din utgång bör också.
För att helt enkelt visa "I lager" eller "Inte i lager" räcker detta:
Att visa lager i "intervallvärden" kan göras så här:
Byt namn på orderstatus
Ibland vill en kund ha olika etiketter på beställningsstatus för att vara mer meningsfulla enligt deras webbshoppraxis. Du kanske till exempel vill att "På vänt" ska döpas om till "Ej skickat" eller att "Slutfört" ska döpas om till "Skickat". Bara för att förstå vilka beställningar som måste skickas och vilka som redan har skickats. WooCommerce erbjuder ett enkelt filter, wc_order_statuses
, på alla tillgängliga orderstatusnamn.
add_filter('wc_order_statuses', function($order_statuses) {
$order_statuses['wc-on-hold'] = __('Unsent', 'txtdomain');
$order_statuses['wc-completed'] = __('Sent', 'txtdomain');
return $order_statuses;
});
Tillgängliga nycklar är wc-pending
, wc-processing
, wc-on-hold
, wc-completed
, wc-cancelled
, wc-refunded
, och wc-failed
.