Benutzerdefinierter Lagerstatus für WooCommerce-Produkte in WooCommerce 4
Das Hinzufügen benutzerdefinierter Lagerstatus zu Produkten in WooCommerce 4 ist ein relativ einfacher Prozess. Allerdings müssen bestimmte Funktionen geändert werden, um sicherzustellen, dass die Status im Frontend und Backend korrekt angezeigt werden.
Hinzufügen benutzerdefinierter Lagerstatus
Um benutzerdefinierte Lagerstatus hinzuzufügen, fügen Sie hinzu Fügen Sie den folgenden Code zu Ihrer Datei „functions.php“ hinzu:
function filter_woocommerce_product_stock_status_options( $status ) {
// Add new statuses
$status['pre_order'] = __('Pre Order', 'woocommerce');
$status['contact_us'] = __('Contact us', 'woocommerce');
return $status;
}
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );
Dieser Code fügt zwei neue Status hinzu: „Vorbestellung“ und „Kontaktieren Sie uns“.
Anzeige von benutzerdefiniertem Bestand Verfügbarkeit
Um die benutzerdefinierten Status sicherzustellen Um im Frontend korrekt angezeigt zu werden, nehmen Sie die folgenden Änderungen vor:
// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$availability = __( 'Pre Order', 'woocommerce' );
break;
case 'contact_us':
$availability = __( 'Contact us', 'woocommerce' );
break;
}
return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
// Availability CSS class
function filter_woocommerce_get_availability_class( $class, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$class = 'pre-order';
break;
case 'contact_us':
$class = 'contact-us';
break;
}
return $class;
}
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );
Anzeigen des Lagerstatus in der Admin-Produktliste
Um benutzerdefinierte Lagerstatus in der Admin-Produktliste anzuzeigen Tabelle, ändern Sie die folgende Funktion:
// Admin stock html
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
// Simple
if ( $product->is_type( 'simple' ) ) {
// Get stock status
$product_stock_status = $product->get_stock_status();
// Variable
} elseif ( $product->is_type( 'variable' ) ) {
foreach( $product->get_visible_children() as $variation_id ) {
// Get product
$variation = wc_get_product( $variation_id );
// Get stock status
$product_stock_status = $variation->get_stock_status();
}
}
// Stock status
switch( $product_stock_status ) {
case 'pre_order':
$stock_html = '<mark class="pre-order" style="background:transparent none;color:#33ccff;font-weight:700;line-height:1;">' . __( 'Pre order', 'woocommerce' ) . '</mark>';
break;
case 'contact_us':
$stock_html = '<mark class="contact-us" style="background:transparent none;color:#cc33ff;font-weight:700;line-height:1;">' . __( 'Contact us', 'woocommerce' ) . '</mark>';
break;
}
return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );
Optional: Benutzerdefinierten Lagerstatus in Hooks verwenden
Sie können benutzerdefinierte Lagerstatus in Hooks verwenden, wenn Sie haben Zugriff auf das $product-Objekt oder können global verwenden $product.
Hinweis:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3