Hvis du bygger butikker på et WordPress-websted, giver WooCommerce dig et stærkt fundament, men reel kontrol kommer fra smarte kodestykker. Små stykker brugerdefineret kode giver dig mulighed for at forme butikssiden, betalingssiden og endda bittesmå bidder af produktadfærd uden tunge plugins. Du kan placere kodestykker i en php-fil, bruge functions.php-filen i et child themeeller installere et kodestykke-plugin for en mere sikker og visuel arbejdsgang. Mange udviklere foretrækker Code Snippets eller Code Snippets Pro, fordi du kan aktivere, deaktivere og eksportere regler uden at røre temafiler. Dette holder din kildekode ryddelig og gør automatisk import til nye projekter nem.
Snippets hjælper med almindelige opgaver som at ændre butiksidens titel, skjule WooCommerce- brødkrummereller justere betalingsfelter for at indsamle de rigtige data. Du kan tilføje et brugerdefineret felt til en produktvariant, ændre teksten på indkøbskurvsknappen eller indstille et minimumsbeløb for ordrer. Du kan finjustere WooCommerce-indstillinger, registrere WooCommerce-support i et tema og aktivere zoom til wc-produktgalleri, lightbox til wc-produktgalleri og slider til wc-produktgalleri på få minutter.
Du kan også tilføje en brugerdefineret valuta, omdøbe en produktfane til mere information eller skjule produktkategorier fra en widget. Uanset om du indsætter simple funktioner eller vedligeholder et voksende bibliotek af brugerdefineret kode, giver disse praktiske kodestykker dig ren funktionalitet uden overflødigheder, og de fungerer fint på tværs af de fleste builds, når de testes korrekt.
Sådan bruger du disse WooCommerce-kodestykker sikkert

Tilføjelse af brugerdefinerede kodestykker til WooCommerce kan fuldstændig ændre den måde, dit WordPress-websted fungerer på. Men hvis du indsætter den forkerte kodelinje i functions.php-filen eller laver en fejl i en PHP-funktion, kan hele webstedet gå i stykker. Derfor er det vigtigt at følge sikre fremgangsmåder, når du arbejder med brugerdefineret kode.
Brug et undertema eller et snippets-plugin
- Placer din brugerdefinerede kode i child-temaets functions.php-fil, så den forbliver intakt efter temaopdateringer.
- Hvis du ikke vil redigere temafiler direkte, skal du installere et Code Snippets-plugin eller Code Snippets Pro.
- Disse værktøjer giver dig mulighed for at oprette, administrere og eksportere uddrag uden at røre temafilerne.
- Plugins'ene inkluderer også muligheder for automatisk import, hvilket gør det nemmere at genbruge dine brugerdefinerede uddrag på tværs af forskellige websteder.
Test før du går live
- Indsæt aldrig kode direkte på et aktivt websted.
- Test altid dine snippets i et staging-miljø.
- Dette trin sikrer, at der ikke er konflikter med WooCommerce-indstillinger, betalingsfelter eller andre temafiler.
Dokumentér din brugerdefinerede kode
- Tilføj tydelige kommentarer over hver funktion, der forklarer, hvad den gør.
- Eksempel: om det påvirker betalingssiden, butiksiden, WooCommerce-produktkategorier eller kontoens betalingsfelter.
- Korrekt mærkning gør det lettere at forstå din kildekode senere.
Behold sikkerhedskopier og versionskontrol
- Gem dine snippets uden for WordPress med Git eller et andet versionskontrolværktøj.
- Hvis du bruger et kodestykke-plugin, kan du udnytte eksportfunktionen.
- En sikkerhedskopi giver dig mulighed for hurtigt at rulle tilbage, hvis noget ikke fungerer korrekt efter en opdatering.
Håndteret korrekt bliver snippets et kraftfuldt værktøjssæt. De hjælper dig med at tilpasse WooCommerce uden at overfylde din WordPress-hjemmeside med unødvendige plugins, samtidig med at alt holdes rent og stabilt.
Brug for eksperthjælp med WooCommerce-tilpasning?
Seahawks WooCommerce-udviklingsteam bygger brugerdefinerede funktioner, administrerer betalingsflows og skaber stabile kodeløsninger, der er skræddersyet til din virksomhed.
Vigtige elementer i opsætning af temaer og brugeroplevelser: WooCommerce-kodestykker
Før du dykker ned i avancerede kodestykker, er det en god idé at konfigurere WooCommerce-understøttelse og rydde op i temaet for at få en mere problemfri shoppingoplevelse. Mange udviklere overser disse grundlæggende elementer, men de kan dramatisk forbedre, hvordan butikken ser ud og føles for brugerne.
Erklær WooCommerce-support i dit tema
Som standard leveres ikke alle WordPress-temaer med fuld WooCommerce-understøttelse. Manuel tilføjelse sikrer, at produktgallerier og layouts vises korrekt. Du kan gøre dette i child-temaets functions.php-fil eller ved hjælp af et brugerdefineret snippets-plugin.
funktion 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_opsætning_tema', 'mytheme_add_woocommerce_support'); } Please be aware that theme may ..
Dette kodestykke tilføjer kerne-WooCommerce-understøttelse sammen med wc product gallery zoom, wc product gallery lightboxog wc product gallery slider. Sammen forbedrer disse funktioner produktgennemsyn på den enkelte produktside.
Fjern WooCommerce-brødkrummer
Breadcrumbs kan være nyttige til navigation, men nogle gange roder de designet. Hvis dit tema allerede indeholder breadcrumbs, eller du foretrækker en renere header, kan du fjerne WooCommerce breadcrumbs med dette kodestykke:
add_action( 'init', 'remove_wc_breadcrumbs' ); function remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); } Bemærk: Funktionen "fjern_wc_breadcrumbs()" er "fjern_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0"; } ..
Brug dette med omhu, da nogle butikker bruger breadcrumbs til SEO- værdi. Hvis du erstatter dem med en anden navigationsstil, kan fjernelse af dem forenkle designet.
Erstat butikssidens titel
Standardtitel på butikssiden siger ofte bare "Shop". For bedre at tilpasse den til dit brand eller dine sæsonbestemte kampagner kan du erstatte den med brugerdefineret tekst.
add_filter('woocommerce_page_title', 'shop_page_title'); function shop_page_title($title) { if (is_shop()) { return "Vores Kollektioner"; } return $title; } Bemærk: } * ..
Du kan omdøbe butiksidens titel , så den matcher dine produktkategorier, kampagner eller brandsprog. For eksempel kan du under juleudsalg ændre den til "Juletilbud" for at opnå stærkere engagement.
Katalogjusteringer, der forbedrer opdagelsen
Når det grundlæggende er på plads, er næste skridt at finjustere dit WooCommerce-katalog. Disse kodestykker hjælper dig med at kontrollere, hvordan produkter og kategorier vises på dit WordPress-websted, hvilket gør det nemmere for kunderne at finde det, de ønsker, uden rod eller forvirring.
Skift standardkatalogsortering
Som standard sorterer WooCommerce produkter alfabetisk eller efter menu. Du kan ændre dette til at vise de nyeste varer først eller sortere efter pris. Denne lille justering kan fremhæve nye varer eller de bedste tilbud.
add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' ); function custom_default_catalog_orderby() { return 'date'; // Valgmuligheder: 'dato', 'pris', 'titel' }
Dette sikrer, at kunderne ser dine nyeste produkter øverst på butiksiden.
Juster antallet af produkter pr. side
For mange produkter pr. side kan overvælde kunderne. For få kan frustrere dem med endeløse klik. Sådan styrer du produktantallet:
add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 ); function new_loop_shop_per_page( $cols ) { $cols = 12; // Juster dette tal efter behov return $cols; }
Justering af denne værdi afbalancerer webstedets hastighed med brugeroplevelsen.
Skjul kategorier eller produkter fra arkiver
Nogle gange ønsker du måske ikke, at bestemte produktkategorier vises på butikssiden. Sæsonvarer, engrosprodukter eller testkategorier kan udelukkes med et hurtigt uddrag.
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', 'seasonal'), 'operator' => 'IKKE I'))); } } * *Bemærk:* ..
Dette hjælper med at holde dit katalog overskueligt ved kun at vise de produkter, du ønsker, at kunderne skal se.
Udeluk kategorier fra produktkategori-widgetten
Hvis du bruger WooCommerce-produktkategori -widgetten i sidebjælkerne, ønsker du muligvis ikke at have alle produkterne vistder. Du kan ekskludere en kategori på denne måde:
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); // Erstat 25 med dit kategori-ID return $cat_args; }
Dette kodestykke giver dig mere kontrol over produktopdagelse og hjælper med at rette kundernes opmærksomhed mod dine mest profitable kategorier.
Forbedringer af produktsider, der øger konverteringen: WooCommerce-kodestykker
Det er på den enkelte produktside, at kunderne beslutter, om de vil købe. Med et par WooCommerce-kodestykker kan du forenkle layoutet, reducere forvirring og fremhæve de detaljer, der betyder mest.
Omdøb eller fjern produktfaner
WooCommerce-produktfaner som "Beskrivelse" og "Yderligere oplysninger" matcher ikke altid din butiks tone. Du kan omdøbe dem eller fjerne de ekstra helt.
add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98 ); function woo_rename_tab( $tabs ) { $tabs['beskrivelse']['title'] = 'Mere info'; return $tabs; } } Tabs: } * ..
Du kan også fjerne Yderligere oplysninger , hvis den føles overflødig:
add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 ); function remove_product_tabs( $tabs ) { unset( $tabs['yderligere_oplysninger'] ); return $tabs; } Bemærk: Funktionen "fjern_produkt_tabs" er "fjern_produkt_tabs" og "return $tabs";
Erstat "Ikke på lager" med en mere brugervenlig tekst
Standardmærkatet "Ikke på lager" kan afskrække kunder. En blødere tilgang som "Solgt" eller "Kommer snart" holder interessen i live.
add_filter( 'woocommerce_get_availability', 'availability_filter_func' ); function availability_filter_func( $availability ) { $availability['availability'] = str_ireplace( 'Ikke på lager', 'Solgt', $availability['availability'] ); return $availability; } Bemærk: Funktionen "availability" er "afailability" og "Tilgængelighed":
Denne lille ændring kan forbedre kundeoplevelsen uden ekstra plugins.
Vis "Allerede i kurv" i stedet for "Tilføj til kurv"
at se den samme " Læg i kurv kan det være forvirrende
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 __( 'Allerede i kurven', 'woocommerce' ); } } return __( 'Tilføj til kurv', 'woocommerce' ); } Tilføj til kurven
Dette giver tydelig feedback og gør købsprocessen mere smidig.
Forenkl variabel produktprissætning
WooCommerce viser normalt intervaller som $100–$200 for variable produkter. Hvis du foretrækker kun at vise minimumsprisen med en "Fra"-etiket, skal du bruge dette kodestykke:
add_filter( 'woocommerce_variable_price_html', 'variation_price_format_min', 9999, 2 ); function variation_price_format_min( $pris, $produkt ) { $priser = $produkt->hent_variation_priser( sand ); $min_pris = nuværende( $priser['pris'] ); return sprintf( __( 'Fra %1$s', 'woocommerce' ), wc_price( $min_pris ) ); } Bemærk: Funktionen variation_pris_format_min( $pris, $produkt ) { Bemærk: Funktionen variation_pris_format_min( $pris ) ; } Bemærk: Funktionen variation_pris_format_min( $produkt ) { Bemærk: Funktionen variation_pris_format_min( $produkt )
Dette skaber klarere forventninger og kan tilskynde til flere klik.
Indkøbskurv og kassepolering, der reducerer friktion: WooCommerce-kodestykker
Små forbedringer af indkøbskurven og betalingsprocessen kan øge konverteringerne hurtigt. Disse kodestykker strømliner trinene, rydder op i formularer og holder kunderne fokuserede.
Omdiriger til betaling efter tilføj til kurv
Bruges til salgstragte med enkelte produkter eller flash-salg, hvor hastighed er vigtig. Tilføj til undertemaets functions.php-fil eller et snippets-plugin.
add_filter( 'woocommerce_add_to_cart_redirect', 'seahawk_redirect_to_checkout' ); function seahawk_redirect_to_checkout( $url ) { return wc_get_checkout_url(); } Bemærk: Funktionen "seahawk_redirect_to_checkout" er "$url" og "wc_get_checkout_url" er "url" og "$url" er "url";
Sæt e-mail først ved kassen
Indsaml e-mail tidligt til gendannelsesprocesser og support. Lavere tal betyder højere 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; } return $fields; } * *Bemærk:* Funktionen "seahawk_email_first($fields)" er som følger: * * Funktionen "Return $fields"; } * *Bemærk:* Funktionen "Select the function" er som følger: * *Bemærk:* Funktionen "Return $fields"; } ..
Gør telefonen valgfri eller påkrævet af Market
Match overholdelse af regler og supportbehov for hver region.
add_filter( 'woocommerce_billing_fields', 'seahawk_phone_requirement' ); function seahawk_phone_requirement( $address_fields ) { // Sæt til true hvis dit marked har brug for telefonnummer $address_fields['billing_phone']['required'] = false; return $address_fields; }
Omarranger eller ryd op i betalingsfelter
Hold formularerne korte og logiske. Eksempel ⟶ flyt for- og efternavn højere op.
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; } return $fields; } * *Bemærk:* Funktionelle ord som "$fields" og "$fields"; } ...Bemærk:* Funktionelle ord som "$fields" og "$fields"; } *Bemærk:* Funktionelle ord som "$fields" og "$fields"; } *Bemærk:* Funktionelle ord som "$fields" og "$fields"; } *Bemærk:* Funktionelle ord som "
Tilføj brugerdefinerede afkrydsningsfelter over vilkår
Bruges til samtykke eller ekstra bekræftelser. Inkluderer validering.
add_action( 'woocommerce_checkout_before_terms_and_conditions', 'seahawk_checkout_checkboxes' ); function seahawk_checkout_checkboxes() { ?> Please be aware that the provider may be aware that the function is unethical and potentially used to be aware that the user function is unethical and potentially used. } } Please be aware that the user function is unethical and potentially used to be aware that the user function is unethical and potentially used.<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>Jeg accepterer at modtage ordreopdateringer via e-mail</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>Jeg bekræfter, at min leveringsadresse er korrekt</span> <span class="required">*</span></label></p>
Limit Order Note-tegn
Hold noterne læsbare for ordrebehandlingsteams.
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'] = __( 'Tilføj korte leveringssedler. Maks. 180 tegn.' ); } return $fields; }
Vis en landebaseret forsendelsesmeddelelse
Vis en dynamisk besked, når et bestemt land er valgt.
add_action( 'woocommerce_before_checkout_billing_form', 'seahawk_country_notice_container' ); function seahawk_country_notice_container() { echo ' } ...<div class="shipping-notice woocommerce-info" style="display:none"> Der kan gå 5 til 10 hverdage, før varen er behandlet.</div> '; } add_action('woocommerce_efter_checkout_formular', 'seahawk_country_notice_script'); function seahawk_country_notice_script() { ?> Please be aware that the provided text and the two translations may be offensive. } ...<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>
Skift autofokusfelt ved betaling
Fokuser først på e-mail-feltet for hurtigere indtastning.
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; } return $fields; } * ..
Tilføj nyttig tekst i nærheden af knappen "Bestil"
Bruges til privatlivsnotater eller leveringspåmindelser.
add_action( 'woocommerce_review_order_after_submit', 'seahawk_message_below_checkout_button' ); function seahawk_message_below_checkout_button() { echo '); } * ...<p> <small>Ved at afgive denne ordre bekræfter du, at de angivne oplysninger er korrekte.</small></p> '; }
Omdiriger Edge Cases og valider tidligere
Hold signalerne rene før betaling. Eksempel ⟶ kræver felter til oprettelse af 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; } return $fields; } * ..
Forsendelseslogik, der føles smart: WooCommerce-kodestykker
Smarte forsendelsesregler reducerer overbelastning af valgmuligheder og gør omkostninger forudsigelige. Disse kodestykker gør beslutninger enkle uden at skjule nyttige muligheder som lokal afhentning.
Skjul betalte metoder, når gratis fragt er tilgængelig
Vis kun gratis fragt, når det er relevant. Sørg for, at priserne er synlige, hvis gratis fragt ikke er tilgængelig.
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 ) ) { // Bevar lokal afhentning, hvis den findes foreach ($rates as $rate_id => $rate ) { if ( 'local_pickup' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } return $new_rates; } return $rates; }
Hvorfor dette hjælper
- Fjerner beslutningstræthed, når gratis fragt er en mulighed.
- Beholder lokal afhentning for kunder, der foretrækker det.
- Reducerer antallet af afbrudte indkøbskurve på prisfølsomme ordrer.
Tilføj en simpel besked om gratis forsendelsesgrænse
Hvis du bruger en subtotalregel, så vis en venlig besked, så kunderne ved, hvor tæt de er på.
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; // Indstil din grænse for gratis fragt $subtotal = WC()->cart ? WC()->cart->get_displayed_subtotal() : 0; if ($subtotal && $subtotal < $threshold) { $remaining = wc_price($threshold - $subtotal); wc_print_notice('Tilføj ' . $remaining . ' mere for at få gratis fragt.', 'notice'); } }
Tips
- Match denne tærskel med dine WooCommerce-indstillinger, så meddelelserne forbliver nøjagtige.
- Test med kuponer og skatter for at sikre, at matematikken afspejler din politik.
Priser og valutakontrol: WooCommerce-kodestykker
Ordentlig prisfastsættelse opbygger tillid. Disse kodestykker tilføjer understøttelse af regional valuta og rydder op i, hvordan priserne ser ud i din butik.
Tilføj en brugerdefineret valuta og et brugerdefineret symbol
Nyttig til regionale mærker eller testbutikker. Tilføj til undertemaets functions.php-fil eller et snippets-plugin.
// Registrer en brugerdefineret valutakode add_filter( 'woocommerce_currencies', 'seahawk_add_currency' ); function seahawk_add_currency( $currencies ) { $currencies['ABC'] = __( 'Eksempelvaluta', 'woocommerce' ); // Erstat ABC og navn return $currencies; } // Tilføj et symbol til din brugerdefinerede valuta add_filter( 'woocommerce_currency_symbol', 'seahawk_add_currency_symbol', 10, 2 ); function seahawk_add_currency_symbol( $symbol, $currency ) { if ( 'ABC' === $currency ) { $symbol = '¤'; // Erstat med dit symbol } return $symbol; }
Hvor skal det bruges
- WooCommerce-indstillinger ⟶ Generelt ⟶ Valutaindstillinger.
- Vælg din nye valuta efter du har tilføjet koden.
Fjern ubrugelige prisnuller
Renere prisvisning forbedrer læsbarheden.
add_filter( 'woocommerce_price_trim_zeros', '__return_true');
Hvad den gør
- Viser 19 i stedet for 19.00.
- Beholder kun decimaler, når det er nødvendigt.
Valgfrit ⟶ Kontrolprisformat pr. lokalitet
Skift tusind- og decimalseparatorer for specifikke markeder.
add_filter('wc_price_args', 'seahawk_price_args_by_locale'); function seahawk_price_args_by_locale($args) { // Eksempel 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; } ..
Betalinger, e-mails og ordrehåndtering: WooCommerce-kodestykker
Styrk kommunikationen og kontrollen med et par pålidelige kodestykker. Disse hjælper dit team med at se vigtige opdateringer, tilføje ordredata til e-mails, sætte betalingen på pause under vedligeholdelse og blokere risikable ordrer.
Tilføj en ekstra e-mailmodtager for gennemførte ordrer
Tilslut support eller regnskab, når en ordre er færdiggjort.
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'; // Erstat med din adresse if ($recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } return $recipient; } Bemærk: } * *Skriv en sætning med "Recipient" if ($recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } * *Return $recipient; } * ..
Tip
- For blind kopi, hook ind i woocommerce_email_headers og tilføj en BCC header.
Tilføj brugerdefineret ordremeta til transaktionelle e-mails
Vis en sporingskode eller et gemt brugerdefineret felt i kunde-e-mails.
// 1) Gem et brugerdefineret ordremetafelt til demoformål add_action( 'woocommerce_checkout_update_order_meta', 'seahawk_save_tracking_meta' ); function seahawk_save_tracking_meta( $order_id ) { // Erstat med din egen logik, der gemmer en reel sporingsværdi if ( ! metadata_exists( 'post', $order_id, '_tracking_code' ) ) { update_post_meta( $order_id, '_tracking_code', 'ABC123' ); } } // 2) Injicer denne meta i e-mails 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' => __('Sporingskode', 'woocommerce'), 'value' => esc_html($tracking),); } return $fields; } Bemærk: Funktionen "seahawk" skal være $fields; } Bemærk: Funktionen "Sendt til $order": ..
Hvor det viser sig
- Kundebehandling af ordre
- Kunde gennemført ordre
- Admin Ny ordre
Afvis betaling, hvis brugeren har ventende ordrer
Nyttig til svindelkontrol eller særlige arbejdsgange. Blokerer betaling, når en matchende kunde-e-mail har ventende ordrer.
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 afventende ordre. Venligst gennemfør betalingen eller annuller den, før du afgiver en ny ordre.')); } return; } // Gæstebetaling ⟶ match via fakturerings-e-mail $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 afventende ordre. Gennemfør venligst betalingen eller annuller den, før du afgiver en ny ordre.' ) ); } } }
Noter
- Juster meddelelsen, så den passer til din supportarbejdsgang.
- Overvej at tillade betaling ved levering eller bankoverførsel, hvis det er nødvendigt.
Aktivér ferie- eller pausetilstand
Hold kataloget synligt, mens du deaktiverer indkøbskurven og betalingsprocessen. Perfekt til vedligeholdelsesvinduer eller lagerrevisioner.
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); * *Bemærk:* *Sådan fungerer det:* ... 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( __( 'Vores butik er midlertidigt utilgængelig. Tjek venligst tilbage snart.' ), 'error' ); }
Sådan skifter du
- Indstil filteret til sandt i et kort hjælpesnipplet eller via et webstedsspecifikt plugin:
add_filter( 'seahawk_holiday_mode_enabled', '__return_true');
Valgfrit ⟶ Ændring af navn og adresse for e-mails
Tilpas e-mailafsenderen til din brandidentitet.
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'); return $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'); return $wc_email ? sanitize_email($wc_email): $email; } Bemærk: Funktionen "seahawk_wp_mail_from" er "$email" og "Slet ikke en e-mail". Funktionen "seahawk_wp_mail_from" er "$email" og "Slet ikke en e-mail"
Hvor skal man konfigurere
- WooCommerce ⟶ Indstillinger ⟶ E-mails ⟶ “Fra” navn og adresse.
Kundekonto og adgangsregler: WooCommerce-kodestykker
Kontodata understøtter support, ordrehistorik og lukket indhold. Brug disse kodestykker til at kontrollere kontofelter og låse op for funktioner for tidligere købere.
Gør kontofelter obligatoriske ved betaling
Kræv brugernavn og adgangskoder, når du ønsker, at kunderne opretter en konto ved kassen.
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; } return $fields; } **Sådan bruges koden** * ... *** ** ** ** ** ** ** ** **
Godt for
- Medlemskabsbutikker.
- Omarranger support og gemte adresser.
- Onboarding efter køb.
Tjek om en bruger allerede har købt specifikke produkter
Nyttig til at låse op for downloads, begrænse gentagne køb eller vise opgraderingstilbud.
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-afsluttet', 'wc-behandling'), 'limit' => -1, 'customer_id' => $user_id, 'return' => 'ids', )); if (empty($orders)) return false; foreach($orders as $order_id) { $order = wc_get_order($order_id); foreach ( $order->get_items() as $item ) { $pid = $item->get_product_id(); $vid = $item->get_variation_id(); if ( in_array( $pid, $product_ids, true ) || in_array( $vid, $product_ids, true ) ) { return true; } } } return false; } Bemærk: `Der er ingen reference til `IndexCard` og `Return False`;` Bemærk: `Return True` og `Failed`. } Bemærk: `Return False` og `Return False`;` Bemærk: `Return True` og `Return False`;` Bemærk: `Return False` og `Return`. } Bemærk: `Return ..
Sådan bruges det i en skabelon
// Eksempel i en produktskabelon eller shortcode $unlock_for = array(21, 67); // Produkt-ID'er, der giver adgang if (seahawk_user_bought_any($unlock_for)) { echo '}<p> Tak for dit køb. Dit bonusindhold er nu låst op.</p> '; } ellers { ekko '<p> Køb kurset for at få adgang til bonuslektioner.</p> '; }
Idéer
- Vis kun en brugerdefineret fane for tidligere købere.
- Erstat "Læg i kurv" med et downloadlink.
- Tilbyder tidligere ejere rabat på opgraderinger.
Søg og filtrer disciplin: WooCommerce-kodestykker
Styr, hvad kunderne ser i søgeresultater og skabeloner. Rene resultater hjælper brugerne med at finde de rigtige produkter hurtigere og holder private kategorier skjult.
Skjul en kategori fra søgning på webstedet
Hold udlejnings-, engros- eller kladdekategorier ude af søgeresultaterne.
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'), // Erstat med din kategori slug 'operator' => 'IKKE I', ), ); $query->set('post_type', array('product')); $query->set('tax_query', $tax_query); } * ..
Brugsscenarier
- Skjul varer kun til engros.
- Udeluk sæsonbestemte udkast indtil lancering.
- Hold B2B-pakker ude af søgningen i detailhandlen.
Hurtige tjek for kategori eller tag i skabeloner
Indlæs betinget blokke, badges eller beskeder baseret på kategori eller tag.
// I et produktloop eller en enkelt skabelon if (has_term('sneakers', 'product_cat', get_the_ID())) { echo ' <span class="badge">Limited Edition</span> '; } if (has_term(array('gave', 'pakke'), 'product_tag', get_the_ID())) { echo '}<p> Sendes inden for 24 timer</p> '; }
Idéer
- Vis et "Gaveklar"-mærke for mærkede varer.
- Tilføj kun størrelsesdiagrammer til beklædningskategorier.
- Vis sikkerhedsanvisninger på kosmetiske produkter.
Udeluk kategorier fra produktkategori-widgetten
Hold sidebjælkerne fokuseret på det, du vil have, at brugerne skal se.
add_filter('woocommerce_product_categories_widget_args', 'seahawk_widget_exclude_cats'); function seahawk_widget_exclude_cats($args) { $args['exclude'] = array(16, 25); // Erstat med kategori-ID'er return $args; }
Tip
- Find ID'er under Produkter ⟶ Kategorier ⟶ Hold musen over navnet for at se ID'et i URL'en.
Opgraderinger til administratorkomfort: WooCommerce-kodestykker
At drive en WooCommerce-butik betyder at bo i WordPress-administrationen. Disse kodestykker gør dit daglige arbejde lettere ved at afdække vigtige detaljer og tilpasse udgående e-mails til dit brand.
Tilføj brugerdefinerede kolonner til ordrelisten
Vis ekstra data såsom serienumre eller sporingskoder direkte i ordrelistevisningen.
// Tilføj en ny kolonne 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; } // Udfyld kolonnen 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 ); } ellers { echo '—'; } } }
Hvorfor det hjælper
- Sparer klik ved at vise data på forhånd.
- Reducerer tiden brugt på at åbne hver ordre.
Tilføj linkede produkter eller SKU'er til brugerdefinerede opslagstyper
Hvis du kører brugerdefinerede produktopsætninger, kan du udvide kolonner yderligere.
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() : ''; } } Bemærk: Funktionen "seahawk_product->get_sku("); Funktionen "seahawk_product->get_sku("); Funktionen "seahawk_product_column_content" er som følger: ***SKU**. Funktionen "seahawk_product_column_content" er som følger: ***"; ..
Brugsscenarie
- Se produktets SKU'er med et hurtigt blik.
- Hold katalogadministratorer effektive.
Tilpas e-mail-afsenderens navn og adresse med brandet
WordPress-standardindstillinger kan se uprofessionelle ud. Ret dem ved at hente værdier fra WooCommerce-indstillingerne.
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'); return $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'); return $wc_email ? sanitize_email($wc_email): $email; } Bemærk: Funktionen "seahawk_custom_from_address" er "$email" og "Slet ikke, hvis du har en e-mailadresse, der er angivet i "Wc_email"-kommandoer."
Hvor værdier skal indstilles
- WooCommerce ⟶ Indstillinger ⟶ E-mails ⟶ Fra navn og Fra adresse.
Hjælpere til ydeevne og layout: WooCommerce-kodestykker
Hurtigere sider og tydelige layouts øger konverteringer. Disse kodestykker hjælper din indkøbskurv med at se godt ud på mobilen og gør forespørgsler om fremhævede produkter effektive.
Gør indkøbskurvstabellen mobilvenlig
Lav indkøbskurvstabellen om til stablede rækker på små skærme. Tilføj denne CSS til dit child-tema- stylark eller et CSS-panel til tilpasning.
/* Mobilvenlig WooCommerce-kurvstabel */ @mediaskærm og (maks. bredde: 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; venstre: -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; venstre: 10px; bredde: 45%; white-space: nowrap; font-weight: 600; indhold: attr(data-title); } }
Sådan fungerer det
- Bruger data-title-attributten, som WooCommerce tilføjer til tabelceller.
- Skjuler overskriften og omdanner hver række til et kort.
- Forbedrer læsbarheden på telefoner uden et plugin.
Brug en midlertidig løsning til udvalgte produkt-ID'er
Caching af en liste over udvalgte produkter reducerer gentagne forespørgsler. Prim den én gang og genbrug den på tværs af skabeloner.
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' => 'yes', 'compare' => '=', ) ), 'fields' => 'ids', 'no_found_rows' => true, ) ); $ids = $featured_query->posts; set_transient( $cache_key, $ids, $ttl ); return $ids; } ... } // Eksempel på brug ⟶ opbyg et mini-grid add_shortcode( 'seahawk_featured_grid', function( $atts ) { $ids = seahawk_get_featured_product_ids(); if ( empty( $ids ) ) return '<p> Ingen udvalgte produkter fundet.</p> '; $ud = '<ul class="featured-grid"> '; foreach ( $ids som $pid ) { $out .= ';<li> <a href="' . esc_url( get_permalink( $pid ) ) . '">'.esc_html(hent_titlen($pid))'.</a></li> '; } $ud .= '</ul> '; returner $ud; } );
Tips
- Ryd den transiente zone, når du skifter fremhævet status.
- Gå ind i produktopdateringer for at slette cachen.
add_action( 'gem_indlægsprodukt', function( $indlægsid ) { slet_transient( 'seahawk_featured_ids' ); } ); } Bemærk: `Save_post_product`, `post_id`
Overholdelse og lokaliseringsdetaljer: WooCommerce-kodestykker
Små justeringer af formularer og sprog gør betalingen hurtigere og mere præcis for forskellige regioner. Disse kodestykker hjælper dig med at lokalisere uden ekstra plugins.
Fjern feltet Stat, hvor det ikke er nødvendigt
Nogle lande bruger ikke stater. Hvis feltet skjules, forkortes formularen og reduceres forvirring.
add_filter( 'woocommerce_default_address_fields', 'seahawk_remove_state_field' ); function seahawk_remove_state_field( $fields ) { if ( isset( $fields['state'] ) ) { $fields['state']['required'] = false; $fields['state']['hidden'] = true; } return $fields; } * ..
Tip
- Brug betinget logik, hvis du kun vil skjule det for bestemte lande.
Tilføj et brugerdefineret land til listen
Nyttig til testmiljøer eller særlige regioner.
add_filter('woocommerce_countries', 'seahawk_add_custom_country'); function seahawk_add_custom_country($countries) { $countries['XX'] = __('Exampleland', 'woocommerce'); // Erstat kode og navn return $countries; } add_filter('woocommerce_continents', 'seahawk_map_custom_country'); function seahawk_map_custom_country($continents) { // Tilføj din landekode til et kontinent if (isset($continents['EU']['countries'])) { $continents['EU']['countries'][] = 'XX'; } return $continents; }
Hvor det fremgår
- WooCommerce-indstillinger ⟶ Generelt ⟶ Salgssteder.
- Lande-rulindals på kasse- og kontosider.
Oversæt hurtigt mikrokopi med gettext
Ret stavefejl eller skift formuleringer i butikken uden at redigere skabeloner.
add_filter( 'gettext', 'seahawk_quick_translate', 10, 3 ); function seahawk_quick_translate( $translated, $original, $domain ) { // Eksempel ⟶ ændr “Vælg en mulighed” til “Vælg” if ( 'Vælg en mulighed' === $original && 'woocommerce' === $domain ) { return 'Vælg'; } // Eksempel ⟶ omdøb “Tilføj til kurv” til “Tilføj til kurv” if ( 'Tilføj til kurv' === $original && 'woocommerce' === $domain ) { return 'Tilføj til kurv'; } return $translated; }
Noter
- Match den oprindelige streng præcist.
- Hold ændringerne i overensstemmelse med din brandprofil.
Valgfrit ⟶ Lokaliser prisseparatorer efter lokalitet
Hjælp brugerne med at læse priser i et velkendt 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; } Bemærk: Funktionen "seahawk_price_format_by_locale" er som følger: Bemærk: Funktionen "seahawk_price_format_by_locale($args) ...Bemærk: Funktionen
Prøve
- Kurvtotaler.
- Kuponer og skatter.
- Bestil e-mails.
Afsluttende tanker
Du har nu et bibliotek med WooCommerce-kodestykker, der dækker katalogvisning, betalingsproces, forsendelseslogik, prissætning, lokalisering og administrativ komfort. Sammen giver de dig kontrol uden tunge plugins og holder dit WordPress-websted slankt.
Før du implementerer dem, skal du huske på disse sidste bedste fremgangsmåder:
- Test altid i staging, før du anvender snippets på et live website.
- Gem sikkerhedskopier af din functions.php-fil eller eksport af snippets-pluginet.
- Tilføj kommentarer til hvert uddrag, så fremtidige udviklere forstår, hvad hver enkelt gør.
- Gennemgå WooCommerce-opdateringer ⟶ nogle uddrag skal muligvis justeres over tid.
Hvis disse små funktioner håndteres med omhu, kan de spare dig for snesevis af plugin-installationer og gøre din onlinebutik hurtigere og nemmere at administrere.
Ofte stillede spørgsmål om WooCommerce-kodestykker
Hvad er den sikreste måde at tilføje WooCommerce-snippets på?
Den sikreste måde er at bruge et undertemas functions.php-fil eller et Code Snippets-plugin. Dette sikrer, at din kode forbliver intakt under temaopdateringer og kan administreres uden at redigere temafiler direkte.
Skal jeg bruge functions.php eller et snippets-plugin?
Hvis du vil have fuld kontrol, fungerer functions.php. For fleksibilitet, især på klientsider, er et plugin som Code Snippets Pro nemmere at administrere og tilbyder automatisk import og eksport.
Kan jeg ødelægge mit websted med et dårligt kodestykke?
Ja. En enkelt PHP-fejl kan forårsage en fatal fejl. Test altid kodestykker på et staging-websted, før du tilføjer dem til en livebutik.
Forsinker snippets WooCommerce?
Nej, ikke hvis det er skrevet korrekt. Faktisk erstatter snippets ofte plugins, hvilket reducerer overbelastning og fremskynder din butik.
Hvordan tester jeg snippets efter at have tilføjet dem?
Test både som gæst og som logget ind. Gennemgå felterne for indkøbskurven, kassesiden og kontoens kasse. Bekræft, at forsendelse, betalingsmetode og totaler stadig fungerer korrekt.