Om du bygger butiker på en WordPress-webbplats ger WooCommerce dig en stark bas, men verklig kontroll kommer från smarta kodsnuttar. Små bitar av anpassad kod låter dig forma butikssidan, kassasidan och till och med små bitar av produktbeteendet utan tunga plugins. Du kan släppa snippets i en php-fil, använda functions.php-filen i ett barntema eller installera ett kodsnuttsplugin för ett säkrare, visuellt arbetsflöde. Många utvecklare föredrar Code Snippets eller Code Snippets Pro eftersom du kan aktivera, inaktivera och exportera regler utan att röra temafiler. Detta håller din källkod snygg och gör automatisk import för nya projekt enkel.
Snippets hjälper till med vanliga uppgifter som att ändra butikssidans titel, dölja WooCommerce- brödsmulor eller justera kassafält för att samla in rätt data. Du kan lägga till ett anpassat fält till en produktvariant, ändra texten på varukorgsknappen eller ange ett lägsta orderbelopp. Du kan finjustera WooCommerce-inställningar, registrera WooCommerce-stöd i ett tema och aktivera zoom för wc-produktgalleri, lightbox för wc-produktgalleri och slider för wc-produktgalleri på några minuter.
Du kan också lägga till en anpassad valuta, byta namn på en produktflik till mer information eller dölja produktkategorier från en widget. Oavsett om du klistrar in enkla funktioner eller underhåller ett växande bibliotek med anpassad kod, ger dessa praktiska kodsnuttar dig ren funktionalitet utan överflöd och de fungerar bra i de flesta versioner när de testas väl.
Hur man använder dessa WooCommerce-kodavsnitt säkert

Att lägga till anpassade koder i WooCommerce kan helt förändra hur din WordPress-webbplats fungerar. Men om du klistrar in fel kodrad i functions.php-filen eller gör ett misstag i en PHP-funktion kan hela webbplatsen sluta fungera. Det är därför det är viktigt att följa säkra metoder när du arbetar med anpassad kod.
Använd ett barntema eller ett Snippets-plugin
- Placera din anpassade kod i barntemats functions.php-fil så att den förblir intakt efter temauppdateringar.
- Om du inte vill redigera temafiler direkt installerar du ett Code Snippets-plugin eller Code Snippets Pro.
- Med dessa verktyg kan du skapa, hantera och exportera utdrag utan att behöva röra temafilerna.
- Plugin-programmen inkluderar även alternativ för automatisk import, vilket gör det enklare att återanvända dina anpassade utdrag på olika webbplatser.
Testa innan du går live
- Klistra aldrig in kod direkt på en aktiv webbplats.
- Testa alltid dina snippets i en testmiljö .
- Det här steget säkerställer att det inte finns några konflikter med WooCommerce-inställningar, utcheckningsfält eller andra temafiler.
Dokumentera din anpassade kod
- Lägg till tydliga kommentarer ovanför varje funktion som förklarar vad den gör.
- Exempel: om det påverkar kassasidan, butiksidan, WooCommerce-produktkategorier eller kontots kassafält.
- Korrekt märkning gör det lättare att förstå din källkod senare.
Behåll säkerhetskopior och versionskontroll
- Lagra dina snippets utanför WordPress med Git eller ett annat versionshanteringsverktyg.
- Om du använder ett plugin för kodavsnitt kan du utnyttja exportfunktionen.
- Att ha en säkerhetskopia gör att du snabbt kan återställa systemet om något inte fungerar som det ska efter en uppdatering.
Hanteras de på rätt sätt blir snippets en kraftfull verktygslåda. De hjälper dig att anpassa WooCommerce utan att överbelasta din WordPress-webbplats med onödiga plugins, samtidigt som allt hålls rent och stabilt.
Behöver du experthjälp med WooCommerce-anpassning?
Seahawks WooCommerce-utvecklingsteam bygger anpassade funktioner, hanterar utcheckningsflöden och skapar stabila kodlösningar skräddarsydda för ditt företag.
Grundläggande information om tema- och UX-installation: WooCommerce-kodavsnitt
Innan du dyker ner i avancerade utdrag är det bra att konfigurera WooCommerce-stöd och rensa upp temat för en smidigare shoppingupplevelse. Många utvecklare förbiser dessa grunder, men de kan dramatiskt förbättra hur butiken ser ut och känns för användarna.
Deklarera WooCommerce-stöd i ditt tema
Som standard har inte alla WordPress-teman fullt stöd för WooCommerce. Genom att lägga till det manuellt säkerställer du att produktgallerier och layouter visas korrekt. Du kan göra detta i barntemats functions.php-fil eller med hjälp av ett anpassat snippets-plugin .
function mytheme_add_woocommerce_support() { add_theme_support('woocommerce'); add_theme_support('wc-product-gallery-zoom'); add_theme_support('wc-product-gallery-lightbox'); add_theme_support('wc-product-gallery-slider'); } add_action('efter_installation_tema', 'mytheme_add_woocommerce_support'); } Behöver du en specifik temainställning?
Det här kodavsnittet lägger till stöd för WooCommerce tillsammans med zoom för wc product gallery , lightbox för wc product gallery och slider för wc product gallery . Tillsammans förbättrar dessa funktioner produktsökningen på en enda produktsida.
Ta bort WooCommerce-brödsmulor
Breadcrumbs kan vara användbara för navigering, men ibland stör de designen. Om ditt tema redan innehåller breadcrumbs eller om du föredrar en renare rubrik kan du ta bort WooCommerce-brödsmulor med det här kodavsnittet:
add_action( 'init', 'remove_wc_breadcrumbs' ); function remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); } Behöver du en specifik funktion? Ta bort "Wc Breadcrumbs"?
Använd detta försiktigt eftersom vissa butiker förlitar sig på brödsmulor för SEO- värde. Om du ersätter dem med en annan navigeringsstil kan det förenkla designen att ta bort dem.
Ersätt butikssidans titel
Standardtiteln för butikssidan säger ofta bara ”Shop”. För att bättre anpassa den till ditt varumärke eller dina säsongsbetonade kampanjer kan du ersätta den med anpassad text.
add_filter('woocommerce_page_title', 'shop_page_title'); function shop_page_title($title) { if (is_shop()) { return "Våra kollektioner"; } return $title; }
Du kan byta namn på butikssidans titel så att den matchar dina produktkategorier, kampanjer eller varumärkesspråk. Till exempel, under helgrean kan du ändra den till "Högtidserbjudanden" för starkare engagemang.
Katalogjusteringar som förbättrar upptäckten
När grunderna är på plats är nästa steg att finjustera din WooCommerce-katalog. Dessa utdrag hjälper dig att kontrollera hur produkter och kategorier visas på din WordPress-webbplats, vilket gör det enklare för kunder att upptäcka vad de vill ha utan röran eller förvirring.
Ändra standardkatalogsortering
Som standard sorterar WooCommerce produkter alfabetiskt eller efter menyordning. Du kan ändra detta för att visa de nyaste artiklarna först eller sortera efter pris. Denna lilla justering kan markera nya produkter eller de bästa erbjudandena.
add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' ); function custom_default_catalog_orderby() { return 'datum'; // Alternativ: 'datum', 'pris', 'titel' }
Detta säkerställer att kunderna ser dina senaste produkter högst upp på butikssidan.
Justera antalet produkter per sida
För många produkter per sida kan överväldiga kunder. För få kan frustrera dem med oändliga klick. Så här kontrollerar du produktantalet:
add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 ); function new_loop_shop_per_page( $cols ) { $cols = 12; // Justera detta nummer efter behov return $cols; }
Genom att justera detta värde balanseras webbplatsens hastighet med användarupplevelsen.
Dölj kategorier eller produkter från arkiv
Ibland kanske du inte vill att vissa produktkategorier ska visas på butikssidan. Säsongsvaror, grossistprodukter eller testkategorier kan exkluderas med ett snabbt utdrag.
add_action('pre_get_posts', 'remove_categories_shop'); function remove_categories_shop($q) { if (!$q->is_main_query() || !$q->is_post_type_archive()) return; if (!is_admin() && is_shop()) { $q->set('tax_query', array(array('taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array('wholesale', 'säsongsbetonad'), 'operator' => 'INTE MED'))); } }
Detta hjälper till att hålla din katalog snygg genom att bara visa de produkter du vill att kunderna ska se.
Exkludera kategorier från produktkategoriwidgeten
Om du använder WooCommerce-widgeten för produktkategorier i sidofälten kanske du inte vill att alla produkter ska listas där. Du kan exkludera en kategori så här:
add_filter('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args'); function woo_product_cat_widget_args($cat_args) { $cat_args['exclude'] = array(25); // Ersätt 25 med ditt kategori-ID return $cat_args; }
Det här kodavsnittet ger dig mer kontroll över produktupptäckten och hjälper till att rikta kundernas uppmärksamhet mot dina mest lönsamma kategorier.
Förbättringar av produktsidor som ökar konverteringen: WooCommerce-kodavsnitt
Det är på den enskilda produktsidan som kunderna bestämmer sig för om de ska köpa. Med några få WooCommerce-kodavsnitt kan du förenkla layouten, minska förvirring och lyfta fram de detaljer som är viktigast.
Byt namn på eller ta bort produktflikar
WooCommerce-produktflikar som "Beskrivning" och "Ytterligare information" matchar inte alltid din butiks stil. Du kan byta namn på dem eller ta bort de extra flikarna helt.
add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98 ); function woo_rename_tab( $tabs ) { $tabs['description']['title'] = 'Mer information'; returnera $tabs; }
Du kan också ta bort Ytterligare information om den känns överflödig:
add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 ); function remove_product_tabs( $tabs ) { unset( $tabs['ytterligare_information'] ); returnera $tabs; } } funktion: Tabs Return $tabs; } Sluta använda Tabs Välj På Feedback Om På Tabs **} **WordPress **
Ersätt "Slut i lager" med vänligare text
Standardetiketten ”Slut i lager” kan avskräcka kunder. En mjukare metod som ”Såld” eller ”Kommer snart” håller intresset vid liv.
add_filter( 'woocommerce_get_availability', 'availability_filter_func' ); function availability_filter_func( $availability ) { $availability['availability'] = str_ireplace( 'Slut i lager', 'Såld', $availability['availability'] ); return $availability; } Behöver du en specifik variabel för "availability"?
Denna lilla förändring kan förbättra kundupplevelsen utan extra plugins.
Visa "Redan i varukorgen" istället för "Lägg till i varukorgen"
Om en kund redan har lagt till en produkt kan det vara förvirrande att se samma Lägg till i varukorg -knapp. Det här kodavsnittet ersätter den med "Redan i varukorgen".
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); function woo_custom_cart_button_text() { global $woocommerce; foreach( $woocommerce->cart->get_cart() as $cart_item ) { if( get_the_ID() == $cart_item['product_id'] ) { return __( 'Redan i varukorgen', 'woocommerce' ); } } return __( 'Lägg till i varukorgen', 'woocommerce' ); } } Tillbaka till varukorgen " "}
Detta ger tydlig feedback och gör köpprocessen smidigare.
Förenkla variabel produktprissättning
WooCommerce visar normalt sett intervall som $100–$200 för variabla produkter. Om du föredrar att bara visa minimipriset med en "Från"-etikett, använd det här utdraget:
add_filter( 'woocommerce_variable_price_html', 'variation_price_format_min', 9999, 2 ); function variation_price_format_min( $pris, $produkt ) { $priser = $produkt->get_variation_prices( true ); $min_pris = aktuell( $priser['pris'] ); return sprintf( __( 'Från %1$s', 'woocommerce' ), wc_price( $min_pris ) ); } Behöver du en variabel ändring? Funktionen variation_price_format_min( $pris, $produkt ) { Funktionen variation_price_format_min( $pris ) = $produkt->get_variation_prices( true ); Funktionen min_pris = aktuell( $priser['pris'] ); return sprintf( __( 'Från %1$s', 'woocommerce' ), wc_price( $min_pris ) ); } Behöver du en variabel ändring? Funktionen variation_price_format_min( $pris ) ; } Behöver du en variabel ändring?
Detta skapar tydligare förväntningar och kan uppmuntra till fler klick.
Polering av varukorg och kassa som minskar friktion: WooCommerce-kodavsnitt
Små förbättringar i varukorgen och kassan kan öka konverteringarna snabbt. Dessa kodavsnitt effektiviserar stegen, snyggar till formulären och håller kunderna fokuserade.
Omdirigera till kassan efter att du har lagt till i varukorgen
Använd för enskilda produktfunnlar eller flash-försäljning där hastighet är viktigt. Lägg till i barntemats functions.php-fil eller ett snippets-plugin.
add_filter( 'woocommerce_add_to_cart_redirect', 'seahawk_redirect_to_checkout'); function seahawk_redirect_to_checkout( $url ) { returnera wc_get_checkout_url(); } Behöver du en URL?
Sätt e-post först i kassan
Samla in e-post tidigt för återställningsflöden och support. Lägre siffror innebär högre prioritet.
add_filter('woocommerce_checkout_fields', 'seahawk_email_first'); function seahawk_email_first($fields) { if (isset($fields['billing']['billing_email'])) { $fields['billing']['billing_email']['priority'] = 4; } returnera $fields; } Behöver du en specifik kod? Funktionen "seahawk_email_first" är "$fields" och "$fields" som du vill använda":
Gör telefonen valfri eller obligatorisk av Market
Matcha efterlevnads- och supportbehov för varje region.
add_filter( 'woocommerce_billing_fields', 'seahawk_phone_requirement' ); function seahawk_phone_requirement( $address_fields ) { // Sätt till sant om din marknad behöver telefonnummer $address_fields['billing_phone']['requirement'] = false; return $address_fields; }
Ändra ordning på eller rensa ut kassafält
Håll formulären korta och logiska. Exempel ⟶ flytta för- och efternamn högre upp.
add_filter('woocommerce_checkout_fields', 'seahawk_reorder_fields'); function seahawk_reorder_fields($fields) { if (isset($fields['billing']['billing_first_name'])) { $fields['billing']['billing_first_name']['priority'] = 6; } if (isset($fields['billing']['billing_last_name'])) { $fields['billing']['billing_last_name']['priority'] = 8; } returnera $fields; }
Lägg till anpassade kryssrutor ovanför villkoren
Använd för samtycke eller extra bekräftelser. Inkluderar validering.
add_action( 'woocommerce_checkout_before_terms_and_conditions', 'seahawk_checkout_checkboxes' ); function seahawk_checkout_checkboxes() { ?> } ...<p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_one"><span>Jag godkänner att få orderuppdateringar via e-post</span> <span class="required">*</span></label> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_two"><span>Jag bekräftar att min leveransadress är korrekt</span> <span class="required">*</span></label></p>
Tecken för gränsordernotering
Håll anteckningarna läsbara för distributionsteamen.
add_filter( 'woocommerce_checkout_fields', 'seahawk_limit_order_notes' ); function seahawk_limit_order_notes( $fields ) { if (isset( $fields['order']['order_comments'] ) ) { $fields['order']['order_comments']['maxlength'] = 180; $fields['order']['order_comments']['placeholder'] = __( 'Lägg till korta leveranssedlar. Max 180 tecken.' ); } return $fields; }
Visa ett landsbaserat leveransmeddelande
Visa ett dynamiskt meddelande när ett specifikt land väljs.
add_action( 'woocommerce_before_checkout_billing_form', 'seahawk_country_notice_container'); function seahawk_country_notice_container() { echo ' ] Svara<div class="shipping-notice woocommerce-info" style="display:none"> Vänligen räkna med 5 till 10 arbetsdagar för leverans efter bearbetning.</div> '; } add_action( 'woocommerce_efter_checkout_formulär', 'seahawk_country_notice_script' ); function seahawk_country_notice_script() { ?> } ...<script> document.addEventListener('DOMContentLoaded', function() { var selectEl = document.querySelector('select#billing_country'); var noticeEl = document.querySelector('.shipping-notice'); var targetCountry = 'FR'; if (!selectEl || !noticeEl) return; function toggleNotice() { if (selectEl.value === targetCountry) { noticeEl.style.display = 'block'; } else { noticeEl.style.display = 'none'; } } toggleNotice(); selectEl.addEventListener('change', toggleNotice); }); </script>
Ändra autofokusfältet i kassan
Fokusera e-postfältet först för snabbare inmatning.
add_filter('woocommerce_checkout_fields', 'seahawk_change_autofocus'); function seahawk_change_autofocus($fields) { if (isset($fields['billing']['billing_first_name'])) { $fields['billing']['billing_first_name']['autofocus'] = false; } if (isset($fields['billing']['billing_email'])) { $fields['billing']['billing_email']['autofocus'] = true; } returnera $fields; } Behöver du en specifik kod? Behöver du en specifik kod?
Lägg till hjälpsam text nära knappen Lägg beställning
Använd för sekretessmeddelanden eller leveranspåminnelser.
add_action( 'woocommerce_review_order_after_submit', 'seahawk_message_below_checkout_button' ); function seahawk_message_below_checkout_button() { echo ' } ...<p> <small>Genom att göra denna beställning bekräftar du att informationen som lämnats är korrekt.</small></p> '; }
Omdirigera Edge-fall och validera tidigare
Håll signalerna rena före betalning. Exempel ⟶ kräver fält för att skapa konto.
add_filter('woocommerce_checkout_fields', 'seahawk_require_account_fields'); function seahawk_require_account_fields($fields) { if (isset($fields['account']['account_username'])) { $fields['account']['account_username']['required'] = true; } if (isset($fields['account']['account_password'])) { $fields['account']['account_password']['required'] = true; } if (isset($fields['account']['account_password-2'])) { $fields['account']['account_password-2']['required'] = true; } returnera $fields; }
Leveranslogik som känns smart: WooCommerce-kodavsnitt
Smarta fraktregler minskar valmöjligheten och gör kostnaderna förutsägbara. Dessa kodavsnitt förenklar beslutsfattandet utan att dölja användbara alternativ som lokal upphämtning.
Dölj betalmetoder när fri frakt är tillgänglig
Visa endast fri frakt när det gäller. Se till att priserna är synliga om fri frakt inte är tillgänglig.
add_filter( 'woocommerce_package_rates', 'seahawk_only_free_shipping_when_available', 10, 2 ); function seahawk_only_free_shipping_when_available( $rates, $package ) { $new_rates = array(); foreach ($rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } if ( ! empty( $new_rates ) ) { // Bevara lokal upphämtning om den finns foreach ($rates as $rate_id => $rate ) { if ( 'local_pickup' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } return $new_rates; } return $rates; } } Bevara lokal upphämtning
Varför detta hjälper
- Eliminerar beslutströtthet när fri frakt är berättigad.
- Fortsätter med lokal upphämtning för de som föredrar det.
- Minskar antalet övergivna varukorgar på priskänsliga beställningar.
Lägg till ett enkelt meddelande om tröskelvärde för fri frakt
Om du använder en delsummeregel, visa ett vänligt meddelande så att kunderna vet hur nära de är.
add_action('woocommerce_before_cart', 'seahawk_free_shipping_threshold_notice'); add_action('woocommerce_before_checkout_form', 'seahawk_free_shipping_threshold_notice'); function seahawk_free_shipping_threshold_notice() { $threshold = 75; // Ange din tröskel för fri frakt $subtotal = WC()->cart ? WC()->cart->get_displayed_subtotal() : 0; if ($subtotal && $subtotal < $threshold) { $remaining = wc_price($threshold - $subtotal); wc_print_notice('Lägg till ' . $remaining . ' mer för att få fri frakt.', 'notice'); } }
Tips
- Matcha denna tröskel med dina WooCommerce-inställningar så att meddelandena förblir korrekta.
- Testa med kuponger och skatter för att säkerställa att beräkningarna återspeglar din policy.
Prissättning och valutakontroller: WooCommerce-kodavsnitt
Snygg prissättning bygger förtroende. Dessa utdrag lägger till stöd för regional valuta och rensar upp hur priserna ser ut i din butik.
Lägg till en anpassad valuta och symbol
Användbart för regionala varumärken eller testbutiker. Lägg till i barntemats functions.php-fil eller ett snippets-plugin.
// Registrera en anpassad valutakod add_filter( 'woocommerce_currencies', 'seahawk_add_currency' ); function seahawk_add_currency( $currencies ) { $currencies['ABC'] = __( 'Exempelvaluta', 'woocommerce' ); // Ersätt ABC och namn return $currencies; } // Bifoga en symbol till din anpassade valuta add_filter( 'woocommerce_currency_symbol', 'seahawk_add_currency_symbol', 10, 2 ); function seahawk_add_currency_symbol( $symbol, $currency ) { if ( 'ABC' === $currency ) { $symbol = '¤'; // Ersätt med din symbol } return $symbol; }
Var man ska använda den
- WooCommerce-inställningar ⟶ Allmänt ⟶ Valutaalternativ.
- Välj din nya valuta efter att du har lagt till koden.
Trimma värdelösa prisnollor
Renare prisvisning förbättrar läsbarheten.
add_filter( 'woocommerce_price_trim_zeros', '__return_true');
Vad den gör
- Visar 19 istället för 19.00.
- Behåller endast decimaler när det behövs.
Valfritt ⟶ Kontrollprisformat per språk
Växla tusentals- och decimalavgränsare för specifika marknader.
add_filter('wc_price_args', 'seahawk_price_args_by_locale'); function seahawk_price_args_by_locale($args) { // Exempel på EU-stil if (is_user_logged_in() && function_exists('get_user_locale') && 'fr_FR' === get_user_locale()) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; } Behöver du en specifik kod?
Betalningar, e-postmeddelanden och orderhantering: WooCommerce-kodavsnitt
Stärk kommunikationen och kontrollen med några få pålitliga utdrag. Dessa hjälper ditt team att se viktiga uppdateringar, lägga till orderdata i e-postmeddelanden, pausa utcheckningen under underhåll och blockera riskfyllda beställningar.
Lägg till en extra e-postadress för slutförda beställningar
Koppla in support eller redovisning när en order är slutförd.
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'seahawk_extra_completed_order_recipient', 10, 2 ); function seahawk_extra_completed_order_recipient( $recipient, $order ) { $extra = 'ops@example.com'; // Ersätt med din adress if ($recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } return $recipient; } Behöver du en specifik order?
Dricks
- För blindtext, koppla in woocommerce_email_headers och lägg till en BCC-rubrik.
Lägg till anpassad ordermeta till transaktionella e-postmeddelanden
Visa en spårningskod eller ett sparat anpassat fält i kundernas e-postmeddelanden.
// 1) Spara ett anpassat metafält för order för demoändamål add_action( 'woocommerce_checkout_update_order_meta', 'seahawk_save_tracking_meta' ); function seahawk_save_tracking_meta( $order_id ) { // Ersätt med din egen logik som sparar ett verkligt spårningsvärde if ( ! metadata_exists( 'post', $order_id, '_tracking_code' ) ) { update_post_meta( $order_id, '_tracking_code', 'ABC123' ); } } // 2) Injicera den metan i e-postmeddelanden add_filter( 'woocommerce_email_order_meta_fields', 'seahawk_add_tracking_to_emails', 10, 3 ); function seahawk_add_tracking_to_emails($fields, $sent_to_admin, $order) { $tracking = $order->get_meta('_tracking_code'); if ($tracking) { $fields['tracking_code'] = array('label' => __('Spårningskod', 'woocommerce'), 'value' => esc_html($tracking),); } returnera $fields; } Bekräfta funktionen $fields; } Bekräfta funktionen $fields['tracking_code'] Array('label' => __('Spårningskod', 'woocommerce'), 'value' => esc_html($tracking), Bekräfta funktionen ..
Där det syns
- Kundbearbetande order
- Kundens slutförda order
- Admin Ny beställning
Neka utcheckning om användaren har väntande beställningar
Användbart för bedrägerikontroll eller speciella arbetsflöden. Blockerar utcheckning när en matchande kund-e-postadress har väntande beställningar.
add_action('woocommerce_after_checkout_validation', 'seahawk_block_when_pending_orders', 10, 2); function seahawk_block_when_pending_orders($data, $errors) { if (is_user_logged_in()) { $customer_id = get_current_user_id(); $args = array('type' => 'shop_order', 'status' => array('wc-pending'), 'limit' => 1, 'customer_id' => $customer_id, 'return' => 'ids', ); $pending = wc_get_orders($args); if (!empty($pending)) { $errors->add('seahawk_pending_block', __('Du har en väntande beställning. Vänligen slutför betalningen eller avbryt den innan du gör en ny beställning.')); } return; } // Gästutcheckning ⟶ matchning med fakturerings-e-post $email = isset( $data['billing_email'] ) ? sanitize_email( $data['billing_email'] ) : ''; if ($email ) { $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'billing_email' => $email, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block_guest', __( 'Du har en väntande beställning. Vänligen slutför betalningen eller avbryt den innan du gör en ny beställning.' ) ); } } }
Anteckningar
- Anpassa meddelandet så att det matchar ert supportarbetsflöde.
- Överväg att tillåta utcheckning med kontanter vid leverans eller banköverföring om det behövs.
Aktivera semester- eller pausläge
Håll katalogen synlig när du inaktiverar varukorg och kassa. Perfekt för underhållsfönster eller lagergranskningar.
add_action('init', 'seahawk_holiday_mode'); function seahawk_holiday_mode() { if (!apply_filters('seahawk_holiday_mode_enabled', false)) { return; } remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30); remove_action('woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20); remove_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20); } Behöver du en mer fullständig översättning? Funktionen "Remove_action" kan översättas separat. add_action( 'woocommerce_before_main_content', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_cart', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_checkout_form', 'seahawk_shop_disabled_notice', 5 ); } function seahawk_shop_disabled_notice() { wc_print_notice( __( 'Vår butik är tillfälligt inte tillgänglig. Vänligen kom tillbaka snart.' ), 'error' ); }
Hur man växlar
- Ställ in filtret till sant i ett kort hjälpsnutt eller via ett webbplatsspecifikt plugin:
add_filter( 'seahawk_holiday_mode_enabled', '__return_true');
Valfritt ⟶ Ändra från namn och adress för e-postadresser
Anpassa e-postavsändaren till din varumärkesidentitet .
add_filter('wp_mail_from_name', 'seahawk_wp_mail_from_name', 99); function seahawk_wp_mail_from_name($name) { $wc_name = get_option('woocommerce_email_from_name'); returnera $wc_name ? html_entity_decode($wc_name): $name; } add_filter('wp_mail_from', 'seahawk_wp_mail_from', 99); function seahawk_wp_mail_from($email) { $wc_email = get_option('woocommerce_email_from'); returnera $wc_email ? sanitize_email($wc_email): $email; } Behöver du en mer fullständig översättning? Funktionen "seahawk_wp_mail_from" kan du använda följande funktion: Behöver du en mer fullständig översättning? ..
Var man ska konfigurera
- WooCommerce ⟶ Inställningar ⟶ E-postmeddelanden ⟶ ”Från” namn och adress.
Kundkonto och åtkomstregler: WooCommerce-kodavsnitt
Kontodata styr support, orderhistorik och begränsat innehåll . Använd dessa utdrag för att kontrollera kontofält och låsa upp funktioner för tidigare köpare.
Obligatoriska kontofält vid utcheckning
Kräv användarnamn och lösenord när du vill att kunder ska skapa ett konto i kassan.
add_filter('woocommerce_checkout_fields', 'seahawk_require_account_on_checkout'); function seahawk_require_account_on_checkout($fields) { if (isset($fields['account']['account_username'])) { $fields['account']['account_username']['required'] = true; } if (isset($fields['account']['account_password'])) { $fields['account']['account_password']['required'] = true; } if (isset($fields['account']['account_password-2'])) { $fields['account']['account_password-2']['required'] = true; } returnera $fields; }
Bra för
- Medlemsbutiker.
- Omordna support och sparade adresser.
- Onboarding efter köp.
Kontrollera om en användare redan har köpt specifika produkter
Användbart för att låsa upp nedladdningar, begränsa upprepade köp eller visa uppgraderingserbjudanden.
function seahawk_user_bought_any( $product_ids = array(), $user_id = 0 ) { if ( empty( $product_ids ) ) return false; if ( ! $user_id && is_user_logged_in() ) { $user_id = get_current_user_id(); } if ( ! $user_id ) return false; $orders = wc_get_orders( array( 'type' => 'shop_order', 'status' => array( 'wc-avslutad', 'wc-bearbetning' ), 'limit' => -1, 'customer_id' => $user_id, 'return' => 'ids', ) ); if ( empty( $orders ) ) return false; foreach ($orders as $order_id ) { $order = wc_get_order( $order_id ); för varje ($order->get_items() som $artikel) { $pid = $artikel->get_product_id(); $vid = $artikel->get_variation_id(); if (in_array($pid, $product_ids, true) || in_array($vid, $product_ids, true)) { return true; } } } return false; } Behöver du en $artikel i en $artikel?
Hur man använder i en mall
// Exempel i en produktmall eller shortcode $unlock_for = array(21, 67); // Produkt-ID:n som ger åtkomst if (seahawk_user_bought_any($unlock_for)) { echo '}<p> Tack för ditt köp. Ditt bonusinnehåll är upplåst.</p> '; } annars { eko '<p> Köp kursen för att låsa upp bonuslektioner.</p> '; }
Idéer
- Visa en anpassad flik endast för tidigare köpare.
- Ersätt Lägg till i varukorgen med en nedladdningslänk.
- Erbjud rabatterade uppgraderingar till tidigare ägare.
Sök och filtrera disciplin: WooCommerce-kodavsnitt
Kontrollera vad kunder ser i sökresultat och mallar. Rena resultat hjälper användare att hitta rätt produkter snabbare och håller privata kategorier dolda.
Dölj en kategori från sökning på webbplatsen
Håll uthyrnings-, grossist- eller utkastkategorierna borta från sökresultaten.
add_action('pre_get_posts', 'seahawk_hide_category_from_search'); function seahawk_hide_category_from_search($query) { if (is_admin() || !$query->is_main_query() || !$query->is_search()) { return; } $tax_query = array(array('taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array('rentals'), // Ersätt med din kategori slug 'operator' => 'INTE I', ), ); $query->set('post_type', array('product')); $query->set('tax_query', $tax_query); } Behöver du en kategori? Behöver du en kategori?
Användningsfall
- Dölj endast grossistvaror.
- Exkludera säsongsbetonade utkast fram till lanseringen.
- Håll B2B-paket borta från sökningar efter detaljhandelserbjudanden.
Snabbkontroller för kategori eller tagg i mallar
Ladda block, märken eller meddelanden villkorligt baserat på kategori eller tagg.
// I en produktloop eller en enda mall if (has_term('sneakers', 'product_cat', get_the_ID())) { echo ' <span class="badge">Limiterad upplaga</span> '; } if (has_term(array('present', 'bundle'), 'product_tag', get_the_ID())) { echo '}<p> Skickas inom 24 timmar</p> '; }
Idéer
- Visa en "Klar att gåva"-etikett för taggade varor.
- Lägg endast till storlekstabeller i klädkategorier.
- Visa säkerhetsanvisningar på kosmetiska produkter.
Exkludera kategorier från produktkategoriwidgeten
Håll sidofälten fokuserade på vad du vill att användarna ska bläddra bland.
add_filter('woocommerce_product_categories_widget_args', 'seahawk_widget_exclude_cats'); function seahawk_widget_exclude_cats($args) { $args['exclude'] = array(16, 25); // Ersätt med kategori-ID returnera $args; }
Dricks
- Hitta ID:n under Produkter ⟶ Kategorier ⟶ Håll muspekaren över namnet för att se ID:t i URL:en.
Uppgraderingar för administratörskomfort: WooCommerce-kodavsnitt
Att driva en WooCommerce-butik innebär att man befinner sig i WordPress-administrationspanelen . Dessa snippets gör ditt dagliga arbete enklare genom att lyfta fram viktiga detaljer och anpassa utgående e-postmeddelanden till ditt varumärke.
Lägg till anpassade kolumner i orderlistan
Visa extra data som serienummer eller spårningskoder direkt i orderlistvyn.
// Lägg till en ny kolumn add_filter('manage_edit-shop_order_columns', 'seahawk_edit_shop_order_columns'); function seahawk_edit_shop_order_columns($columns) { $columns['serial'] = __('Serienummer', 'woocommerce'); return $columns; } // Fyll kolumnen med data add_action('manage_shop_order_posts_custom_column', 'seahawk_shop_order_column_content', 10, 2); function seahawk_shop_order_column_content($column, $post_id) { if ('serial' === $column) { $serial = get_post_meta($post_id, '_order_serial_number', true); if ($serial) { echo esc_html($serial); } annars { echo '—'; } } }
Varför det hjälper
- Sparar klick genom att visa data direkt.
- Minskar tiden som läggs på att öppna varje beställning.
Lägg till länkade produkter eller SKU:er till anpassade inläggstyper
Om du kör anpassade produktinställningar kan du utöka kolumner ytterligare.
add_filter('manage_edit-product_columns', 'seahawk_edit_product_columns'); function seahawk_edit_product_columns($columns) { $columns['sku'] = __('SKU', 'woocommerce'); return $columns; } add_action('manage_product_posts_custom_column', 'seahawk_product_column_content', 10, 2); function seahawk_product_column_content($column, $post_id) { if ('sku' === $column) { $product = wc_get_product($post_id); echo $product ? $product->get_sku() : ''; } } Behöver du en produkt som ska användas för att skapa en produkt? Behöver du en produkt som ska användas för att skapa en produkt som ska publiceras?
Användningsfall
- Se produktens SKU:er med en snabb blick.
- Håll kataloghanterare effektiva.
Anpassa e-postavsändarens namn och adress till varumärket
WordPress standardinställningar kan se oprofessionella ut. Åtgärda dem genom att hämta värden från WooCommerce-inställningarna.
add_filter('wp_mail_from_name', 'seahawk_custom_from_name', 99); function seahawk_custom_from_name($name) { $wc_name = get_option('woocommerce_email_from_name'); returnera $wc_name ? html_entity_decode($wc_name): $name; } add_filter('wp_mail_from', 'seahawk_custom_from_address', 99); function seahawk_custom_from_address($email) { $wc_email = get_option('woocommerce_email_from'); returnera $wc_email ? sanitize_email($wc_email): $email; } Behöver du en mer fullständig översättning? Funktionen "seahawk_custom_from_address" kan du använda följande funktion: Behöver du en mer fullständig översättning? ..
Var man ska ställa in värden
- WooCommerce ⟶ Inställningar ⟶ E-postmeddelanden ⟶ Från-namn och Från-adress.
Prestanda- och layouthjälpmedel: WooCommerce-kodavsnitt
Snabbare sidor och tydliga layouter ökar konverteringarna. Dessa snippets hjälper din varukorg att se bra ut på mobilen och gör sökningar efter utvalda produkter effektiva.
Gör varukorgstabellen mobilvänlig
Förvandla varukorgstabellen till staplade rader på små skärmar. Lägg till denna CSS i ditt för barntema eller en anpassad CSS-panel.
/* Mobilvänlig WooCommerce-varukorgstabell */ @mediaskärm och (maxbredd: 700px) { .woocommerce table.shop_table, .woocommerce table.shop_table thead, .woocommerce table.shop_table tbody, .woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce table.shop_table tr { display: block; } .woocommerce table.shop_table thead tr { position: absolute; top: -9999px; left: -9999px; } .woocommerce table.shop_table tr { margin-bottom: 12px; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; } .woocommerce table.shop_table td { position: relative; padding-left: 50% !important; border: none; border-bottom: 1px solid #f1f5f9; } .woocommerce table.shop_table td:last-child { border-bottom: none; } .woocommerce table.shop_table td::before { position: absolute; top: 10px; left: 10px; width: 45%; white-space: nowrap; font-weight: 600; content: attr(data-title); } }
Hur det fungerar
- Använder attributet data-title som WooCommerce lägger till i tabellceller.
- Döljer rubriken och förvandlar varje rad till ett kort.
- Förbättrar läsbarheten på telefoner utan plugin.
Använd en transient för utvalda produkt-ID:n
Att cachelagra en lista över utvalda produkter minskar upprepade frågor. Förbered den en gång och återanvänd den i flera mallar.
function seahawk_get_featured_product_ids( $cache_key = 'seahawk_featured_ids', $ttl = HOUR_IN_SECONDS ) { $ids = get_transient( $cache_key ); if ( false !== $ids ) { return $ids; } $featured_query = new WP_Query( array( 'post_type' => 'produkt', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_featured', 'value' => 'ja', 'jämför' => '=', ) ), 'fields' => 'ids', 'no_found_rows' => true, ) ); $ids = $featured_query->inlägg; set_transient( $cache_key, $ids, $ttl ); return $ids; } Behöver du en variabel för att lägga till en variabel i en viss kod? Funktionen "seahawk_ids" är: "Post_type" och "posts_per_page" är . } // Exempel på användning ⟶ bygga ett mini-rutnät add_shortcode( 'seahawk_featured_grid', function( $atts ) { $ids = seahawk_get_featured_product_ids(); if ( empty( $ids ) ) return '<p> Inga utvalda produkter hittades.</p> '; $ut = '<ul class="featured-grid"> '; för varje ( $id som $pid ) { $out .= ';<li> <a href="' . esc_url( get_permalink( $pid ) ) . '">'.esc_html(get_the_title($pid))'.</a></li> '; } $ut .= '</ul> '; returnera $ut; } );
Tips
- Rensa transienten när du växlar utvald status.
- Koppla in dig i produktuppdateringar för att radera cachen.
add_action( 'spara_post_produkt', function( $post_id ) { delete_transient( 'seahawk_featured_ids' ); } ..
Detaljer om efterlevnad och lokalisering: WooCommerce-kodavsnitt
Små justeringar av formulär och språk gör utcheckningen snabbare och mer exakt för olika regioner. Dessa snippets hjälper dig att lokalisera utan extra plugins.
Ta bort fältet Delstat där det inte behövs
Vissa länder använder inte delstater. Att dölja fältet förkortar formuläret och minskar förvirring.
add_filter( 'woocommerce_default_address_fields', 'seahawk_remove_state_field' ); function seahawk_remove_state_field( $fält ) { if (isset( $fält['tillstånd'] ) ) { $fält['tillstånd']['obligatoriskt'] = false; $fält['tillstånd']['dolt'] = true; } returnera $fält; } Behöver endast $fält användas för att konfigurera funktionen "seahawk_remove_state_field";
Dricks
- Använd villkorlig logik om du bara vill dölja den för specifika länder.
Lägg till ett anpassat land i listan
Användbart för testmiljöer eller speciella regioner.
add_filter('woocommerce_countries', 'seahawk_add_custom_country'); function seahawk_add_custom_country($countries) { $countries['XX'] = __('Exempelland', 'woocommerce'); // Ersätt kod och namn return $countries; } add_filter('woocommerce_continents', 'seahawk_map_custom_country'); function seahawk_map_custom_country($continents) { // Lägg till din landskod till en kontinent if (isset($continents['EU']['countries'])) { $continents['EU']['countries'][] = 'XX'; } return $continents; }
Där det visas
- WooCommerce-inställningar ⟶ Allmänt ⟶ Försäljningsplatser.
- Rullgardinsmenyer för länder på kassa- och kontosidor.
Översätt snabbt mikrokopia med gettext
Rätta stavfel eller ändra formuleringar i butiken utan att redigera mallar.
add_filter( 'gettext', 'seahawk_quick_translate', 10, 3 ); function seahawk_quick_translate( $translated, $original, $domain ) { // Exempel ⟶ ändra "Välj ett alternativ" till "Välj" if ( 'Välj ett alternativ' === $original && 'woocommerce' === $domain ) { return 'Välj'; } // Exempel ⟶ byt namn på "Lägg till i varukorgen" till "Lägg till i varukorgen" if ( 'Lägg till i varukorgen' === $original && 'woocommerce' === $domain ) { return 'Lägg till i varukorgen'; } return $translated; }
Anteckningar
- Matcha den ursprungliga strängen exakt.
- Håll ändringarna i linje med ert varumärkes röst.
Valfritt ⟶ Lokalisera prisseparatorer efter språkinställning
Hjälp användarna att läsa priser i ett bekant format.
add_filter( 'wc_price_args', 'seahawk_price_format_by_locale'); function seahawk_price_format_by_locale( $args ) { if ( function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; } Behöver du en mer specifik funktion? Funktionen "seahawk_price_format_by_locale"?
Testa
- Totalsumma i varukorgen.
- Kuponger och skatter.
- Beställ e-postmeddelanden.
Slutliga tankar
Nu har du ett bibliotek med WooCommerce-kodavsnitt som täcker katalogvisning, utcheckningsflöde, leveranslogik, prissättning, lokalisering och administrativ bekvämlighet. Tillsammans ger de dig kontroll utan tunga plugins och håller din WordPress-webbplats smidig.
Innan du lanserar dem, tänk på dessa sista bästa praxis:
- Testa alltid i staging innan du använder snippets på en live-webbplats.
- Säkerhetskopiera din functions.php-fil eller exportera din snippets-plugin.
- Lägg till kommentarer till varje kodavsnitt så att framtida utvecklare förstår vad var och en gör.
- Granska WooCommerce-uppdateringar ⟶ vissa utdrag kan behöva justeringar över tid.
Om de hanteras varsamt kan dessa små funktioner spara dig dussintals plugin-installationer och göra din webbutik snabbare och enklare att hantera.
Vanliga frågor om WooCommerce-kodavsnitt
Vilket är det säkraste sättet att lägga till WooCommerce-kodavsnitt?
Det säkraste sättet är att använda ett undertemas functions.php-fil eller ett Code Snippets-plugin. Detta säkerställer att din kod förblir intakt under temauppdateringar och kan hanteras utan att redigera temafiler direkt.
Ska jag använda functions.php eller ett snippets-plugin?
Om du vill ha full kontroll fungerar functions.php. För flexibilitet, särskilt på klientwebbplatser, är ett plugin som Code Snippets Pro enklare att hantera och erbjuder automatisk import och export.
Kan jag förstöra min webbplats med ett dåligt kodavsnitt?
Ja. Ett enda PHP-fel kan orsaka ett allvarligt fel. Testa alltid snippets på en staging-webbplats innan du lägger till dem i en live-butik.
Saktar snippets ner WooCommerce?
Nej, inte om det är korrekt skrivet. Faktum är att snippets ofta ersätter plugins, vilket minskar överflöd och snabbar upp din butik.
Hur testar jag snippets efter att jag har lagt till dem?
Testa både som gäst och inloggad användare. Gå igenom fälten för varukorg, kassa och kontoutcheckning. Bekräfta att frakt, betalningsmetod och totalsummor fortfarande fungerar korrekt.