Winkelopzet en basisconfiguratie
Het eerste stap in het bouwen van een WooCommerce-winkel is ervoor te zorgen dat de basisomgeving stabiel is. Dit betekent niet alleen dat je de vereiste plugins installeert, maar ook dat je de flexibiliteit en stabiliteit van de toekomstige uitbreidingen garandeert.
Keuze van kernplugins en thema's
WooCommerce Als plugin kunnen de functies die het biedt worden dieper aangepast met behulp van “subthema’s”. Om de standaardtemplatebestanden veilig te kunnen overschrijven, moet je een subthema maken. Begin eerst in je themadirectory (meestal…) /wp-content/themes/Maak een nieuwe map, bijvoorbeeld... yourstore-childVervolgens worden er twee belangrijke bestanden gecreëerd in die map:style.css 和 functions.php。
style.css In het begin van het bestand moet een specifiek onderwerpseinformatiehead worden opgenomen:
Aanbevolen leesmateriaal Voor WordPress-gebruikers die de prestaties van hun online winkel willen verbeteren, is WooCommerce een goede optie.。
/*
Theme Name: YourStore Child
Template: your-parent-theme-name
*/ 在 functions.php In dit geval moet je de stijlboeken (style sheets) van het overkoepelde thema (parent theme) op een bepaalde manier ordenen. Een standaardmanier om dit te doen is…
<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
function my_child_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
} Fijnafstelling van belangrijke winkelinstellingen
De basisconfiguratie omvat veel meer dan alleen het activeren van de mogelijkheden voor het weergeven van valuta en adressen. In het instellingenmenu van WooCommerce is het tabblad “Producten” en daaronder het onderdeel “Forraden” van belang. Hier kun je globale grenzen voor de voorraden instellen, en bepalen of het mogelijk is om producten te verkopen als deze op zijn zijn. Nog uitgebreidere mogelijkheden zijn het personaliseren van de zoekfunctie voor producten en de weergave van producten op de winkelpagina.
Als je bijvoorbeeld de standaardvolgorde van producten op de winkelpagina wilt veranderen, kun je dit doen in het onderthema (subtheme). functions.php Gebruikt in het Chinees (vereenvoudigd) woocommerce_get_catalog_ordering_args Hook. De volgende code wijzigt de standaardsortering om van oud naar nieuw naar sortering op basis van de datum van beschikbaarstelling (inclusie).
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_default_catalog_order' );
function custom_default_catalog_order( $args ) {
$args['orderby'] = 'date';
$args['order'] = 'desc';
return $args;
} Productbeheer en classificatiestrategieën
Efficiënt productbeheer is essentieel voor het runnen van een WooCommerce-winkel. Door het goede gebruik te maken van de ingebouwde systemen voor producttypen en producteigenschappen, kun je de beheerefficiëntie en de gebruikerservaring aanzienlijk verbeteren.
Het gebruik van variabele producten en aangepaste eigenschappen
可变产品 Dit is een krachtig hulpmiddel in WooCommerce voor het beheer van producten met meerdere attributen (zoals maten en kleuren). De kern van het systeem bestaat uit de combinatie van “attributen” en “varianten”. Eerst worden globale attributen gecreëerd in “Producten” > “Attributen”, bijvoorbeeld “Kleur”. Vervolgens worden deze attributen toegewezen aan een specifiek product wanneer dit wordt bewerkt, en worden er varianten gemaakt. Voor elke combinatie van attributen (bijvoorbeeld “rood, maat L”) worden aparte prijzen, voorraden en afbeeldingen ingesteld.
Aanbevolen leesmateriaal WooCommerce: Een volledig handboek voor het opzetten van een professionele online winkel vanuit nul。
Voor attributen waarbij een flexibele invoer of weergave vereist is, kun je gebruikmaken van “aangepaste productattributen”. Deze attributen zijn alleen van toepassing op één product en worden niet opgeslagen in de globale lijst met attributen. Door het zorgvuldig ontwerpen van de attribuutstructuur, kun je complexe productmatrices creeren die voldoen aan de behoeften van allerlei producten, van kleding tot elektronica.
Implementatie van geavanceerde categorieën en tagfiltering
De basis van klassificatie en labeling is eenvoudig, maar wanneer er een groot aantal producten is, is de navigeringsmogelijkheid beperkt. In dergelijke gevallen is het handig om… 产品过滤器 Een plugin of een aangepaste zoekfunctie is een betere optie. WooCommerce biedt een grote verscheidenheid aan mogelijkheden hiervoor. Voorwaardelijke tags En de query-functie.
Als voorbeeld: stel je voor dat je een shortcode wilt maken die alleen producten met het label “bestseller” uit een bepaalde categorie weergeeft. In je subthema: functions.php Toevoegen aan de Chinese (vereenvoudigde) taal:
add_shortcode( 'featured_by_category', 'display_featured_products_by_cat' );
function display_featured_products_by_cat( $atts ) {
$atts = shortcode_atts( array(
'category' => '',
), $atts, 'featured_by_category' );
$args = array(
'post_type' => 'product',
'posts_per_page' => 6,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $atts['category'],
),
array(
'taxonomy' => 'product_tag',
'field' => 'slug',
'terms' => 'hot-sales',
)
),
);
$products = new WP_Query( $args );
// ... 后续循环输出产品HTML的逻辑
} Op deze manier kun je het op elke pagina gebruiken. [featured_by_category category="electronics"] Hier zijn de bestsellers in de categorie elektronische producten.
Maak een aangepaste afrekenings- en betalingsprocedure
De standaardafrekeningspagina voldoet misschien niet aan alle bedrijfsbehoeften, bijvoorbeeld het verzamelen van extra informatie of het integreren van bepaalde betaalmogelijkheden. WooCommerce biedt tal van hooks aan om deze processen te kunnen aanpassen.
Een aangepast veld toevoegen aan de afrekeningspagina
Stel dat je voor B2B-clanten een veld voor de “firmaal taxnummer” wilt toevoegen. Je kunt dit doen op de volgende manier: woocommerce_checkout_fields Deze functionaliteit wordt gerealiseerd met behulp van ‘hooks’ (haken) in de subthema’s. functions.php Toevoegen aan de Chinese (vereenvoudigde) taal:
Aanbevolen leesmateriaal De ultieme gids voor WooCommerce: van beginner tot expert, hoe je je eigen e-commerce website maakt.。
add_filter( 'woocommerce_checkout_fields', 'add_custom_checkout_field' );
function add_custom_checkout_field( $fields ) {
$fields['billing']['billing_vat_number'] = array(
'label' => __('增值税号', 'your-textdomain'),
'placeholder' => _x('请输入您的公司税号', 'placeholder', 'your-textdomain'),
'required' => false, // 根据需求设置为 true 或 false
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
// 保存字段值到订单元数据
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_checkout_field' );
function save_custom_checkout_field( $order_id ) {
if ( ! empty( $_POST['billing_vat_number'] ) ) {
update_post_meta( $order_id, '_billing_vat_number', sanitize_text_field( $_POST['billing_vat_number'] ) );
}
} Maak een aangepaste betaalgateway en orderverwerkingssystematie.
Soms is het nodig om bepaalde betaalmogelijkheden dynamisch in te schakelen of uit te schakelen, afhankelijk van de inhoud van de winkelwagen of de informatie van de klant. Dit kan worden gerealiseerd door… woocommerce_available_payment_gateways Implementatie van een filter. Bijvoorbeeld: wanneer de totale orderwaarde meer dan 1000 euro is, is alleen bankoverschrijving toegestaan.
add_filter( 'woocommerce_available_payment_gateways', 'conditionally_disable_gateways' );
function conditionally_disable_gateways( $available_gateways ) {
if ( is_admin() ) return $available_gateways; // 不在后台应用
$cart_total = WC()->cart->total;
if ( $cart_total > 1000 ) {
unset( $available_gateways['cod'] ); // 禁用货到付款
unset( $available_gateways['paypal'] ); // 禁用PayPal
// 只保留 ‘bacs’ (银行转账)
if ( isset( $available_gateways['bacs'] ) ) {
$available_gateways = array( 'bacs' => $available_gateways['bacs'] );
}
}
return $available_gateways;
} Optimalisatie van de prestaties en de beveiliging van websites
Een succesvol e-commerce-platform moet snel en veilig zijn. Naarmate het aantal producten, bestellingen en bezoekers toeneemt, worden prestaties en beveiliging steeds belangrijker.
Efficiënte strategieën voor het opslaan in caché en het optimaliseren van databases
Object caching is essentieel voor het verbeteren van de snelheid van dynamische pagina's in WooCommerce. Zorg ervoor dat je hostingomgeving persistent object caching ondersteunt, bijvoorbeeld met Redis of Memcached, en installeer deze op de juiste manier in je WooCommerce-installatie. wp-config.php De configuratie moet correct zijn. Voor de database is het nodig om deze regelmatig te optimaliseren. WooCommerce generereert veel sessiedata en orderbewerkingen. Hier kun je tools gebruiken voor het optimaliseren van de database. WP-Optimize Dankzij zulke plugins kunnen database-tabels worden opgepoetst en geoptimaliseerd.
Wat betreft het opvragen van productinformatie, moet je ervoor zorgen dat je in je thema of aangepaste code de juiste WooCommerce-functies gebruikt. wc_get_products()Het is beter dan de standaardversie. WP_Query Efficiënter: vermijd het rechtstreekse opvragen van gegevens uit de database in cycli. Probeer in plaats daarvan gebruik te maken van vooraf geladen gegevens en tijdelijk opgeslagen (transient) cache-resultaten, zodat deze resultaten opnieuw kunnen worden gebruikt.
Versterk de beveiligingsmaatregelen
In de eerste plaats moet je altijd een veilige verbinding (HTTPS) gebruiken. WooCommerce werkt met gevoelige gegevens, dus het is van belang om SSL te gebruiken. Je kunt in de instellingen van WooCommerce > Geavanceerd > Paginainstellingen de pagina’s “Afrekenen” en “Mijn account” zo instellen dat ze alleen via een veilige verbinding bereikbaar zijn.
Ten tweede: beperk het aantal inlogpogingen om brute force-aanvallen te voorkomen. Gebruik plugins of serverconfiguraties (zoals .htaccess of Nginx-regels) om dit te realiseren. /wp-login.php De frequentie van toegang is belangrijk. Het is ook belangrijk om de keys en salts regelmatig te updaten. wp-config.php In het bestand moet worden gezorgd dat de volgende constante unieke, willekeurige strings zijn:
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
// ... 其他 salts Ten slotte is het belangrijk om regelmatige beveiligingsaudits uit te voeren. Controleer de rechten van bestanden en mappen, verwijder ongebruikte plugins en thema's, en gebruik beveiligingsscanners om potentieel gevaarlijke zwakke punten op te sporen. Zorg ervoor dat je back-upplannen voor bestellingen en klantgegevens betrouwbaar zijn en dat je deze gegevens snel kunt herstellen.
Samenvatting
In deze uitgebreide handleiding hebben we systematisch de volledige route van het opzetten tot het verder optimaliseren van een WooCommerce-winkel behandeld. Een succesvolle WooCommerce-winkel is gebaseerd op een solide subthema-architectuur, een nauwkeurige beheer van producten en categorieën, een hoogst aangepaste afrekeningsprocedure, en een stevige strategie voor prestaties en beveiliging. Het belangrijkste is om optimaal gebruik te maken van het uitgebreide systeem van hooks en filters dat WooCommerce biedt, in plaats van de kernbestanden rechtstreeks te bewerken. Naarmate de winkel groter wordt, moet actief performance-monitoren en voortdurende beveiligingsmaatregelen een essentieel onderdeel van de dagelijkse onderhoudsactiviteiten worden. Door deze praktijken te combineren, kun je een professionele e-commerce-platform bouwen dat zowel de complexe bedrijfsbehoeften kan vervullen als een snelle en veilige gebruikerservaring biedt.
Veelgestelde vragen (FAQ)
Hoe kun je de tekst op de standaard “Toenemen naar winkelwagen”-knop in WooCommerce veranderen?
Je kunt dit doen door… woocommerce_product_add_to_cart_text 和 woocommerce_product_single_add_to_cart_text Er zijn filters beschikbaar om de tekst op de knoppen op de archiveringspagina (winkelpagina) en de productpagina apart te kunnen aanpassen.
Als bijvoorbeeld in een subonderwerp… functions.php Voeg de volgende code toe, om de tekst op de knop op de productpagina in te stellen op “Koop nu”:
add_filter( 'woocommerce_product_single_add_to_cart_text', 'change_single_add_to_cart_text' );
function change_single_add_to_cart_text() {
return __( '立即购买', 'your-textdomain' );
} Is het mogelijk om de prijzen van producten alleen voor bepaalde gebruikersrollen zichtbaar te maken?
Ja, dat is mogelijk. Dit wordt meestal gecombineerd met conditionele beoordelingen en de prijsfilters van WooCommerce. woocommerce_get_price_html Om dit te realiseren…
Eerst moet de huidige gebruikersrol worden gecontroleerd, en vervolgens worden afhankelijk van de rol verschillende prijzen weergegeven. Bijvoorbeeld kunnen voor de rol “wholesaler” (grossier) andere prijsopgaven worden getoond.
add_filter( 'woocommerce_get_price_html', 'custom_price_based_on_user_role', 10, 2 );
function custom_price_based_on_user_role( $price, $product ) {
$user = wp_get_current_user();
if ( in_array( 'wholesaler', (array) $user->roles ) ) {
// 获取批发价,这里假设存储在自定义字段 '_wholesale_price' 中
$wholesale_price = get_post_meta( $product->get_id(), '_wholesale_price', true );
if ( $wholesale_price ) {
$price = wc_price( $wholesale_price ) . '<small>(批发价)</small>';
}
}
return $price;
} Hoe voeg je met code een nieuwe orderstatus toe?
Om een aangepaste orderstatus toe te voegen, moet je gebruikmaken van... wc_register_order_status 和 wc_get_order_statuses Filteren.
Deze code voegt een orderstatus toe met de naam “Wachtend op voorbereiding” (slug: ‘awaiting-prepare’):
// 注册新状态
add_action( 'init', 'register_custom_order_status' );
function register_custom_order_status() {
register_post_status( 'wc-awaiting-prepare', array(
'label' => '待备货',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( '待备货 (%s)', '待备货 (%s)' )
) );
}
// 将新状态加入到订单状态列表
add_filter( 'wc_order_statuses', 'add_custom_order_status_to_list' );
function add_custom_order_status_to_list( $order_statuses ) {
$order_statuses['wc-awaiting-prepare'] = '待备货';
return $order_statuses;
} Nadat je dit hebt toegevoegd, moet je in de instellingen van WooCommerce > Betalen > Bestelstatusen bepalen welke betaalmethoden toegestaan zijn om bestellingen in deze status te zetten.
Wanneer er een groot aantal producten is, hoe kan de laad snelheid van de winkelhomepagina worden verbeterd?
Voor winkels met een groot aantal producten is het van belang om de snelheid van de homepagina (meestal de productpagina) te optimaliseren. Hier zijn enkele maatregelen die kunnen worden genomen:
1. 启用分页或“加载更多”按钮:避免一次性加载所有产品。确保产品列表设置了合理的每页显示数量。
2. 使用高效的图片格式和懒加载:确保所有产品图片都经过压缩(建议使用 WebP 格式),并为产品图片启用懒加载。WooCommerce 自 5.5.0 版本起,在兼容主题中默认启用了懒加载。
3. 实施片段缓存:使用对象缓存(如 Redis)来缓存 WooCommerce 的碎片化内容,如购物车小部件、产品循环等。一些高级缓存插件也提供针对 WooCommerce 的碎片化缓存功能。
4. 审查并简化商店页面的查询:检查你的主题在商店页面上运行的所有查询。移除不必要的查询,或者对结果进行缓存。可以通过在子主题的 functions.php Gebruikt in het Chinees (vereenvoudigd) transient De productlijsten voor onderdelen zoals de sidebar worden in de cache opgeslagen.
5. 考虑使用静态首页:如果动态的商店页面确实成为瓶颈,可以考虑设置一个精心设计的静态页面作为首页,并使用短代码或 Gutenberg 区块来展示精选分类和产品,将完整的商店归档页作为二级页面。
De volgende stap, wat moeten we als volgende doen?
Voor meer informatie en praktische kennis
De volgende content is relevant voor het onderwerp van dit artikel en is geschikt voor verder lezen. Het kan vaak effectief zijn om eerst het artikel te lezen dat het dichtst bij uw huidige vraagstuk staat en vervolgens geleidelijk aan artikelen over aanverwante onderwerpen te bekijken.
- Gids voor het kopen van een onafhankelijke server: hoe je de beste configuratie en hosting-oplossing kiest op basis van je bedrijfsbehoeften
- WooCommerce Ultimate Guide: Van nul een krachtig WordPress-e-commerce-platform bouwen
- Ultimatumgids voor shared hosting: Definities, aankoop en praktische tips voor prestatieoptimalisatie
- CDN (Content Delivery Network): Het ultimatieve handboek voor het versnellen van de prestaties van websites en het verbeteren van de gebruikerservaring
- WordPress Basisgids: Bouw je eerste professionele website vanuit het niets