„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie füge ich benutzerdefinierte Lagerstatus zu WooCommerce-Produkten in WooCommerce 4+ hinzu?

Wie füge ich benutzerdefinierte Lagerstatus zu WooCommerce-Produkten in WooCommerce 4+ hinzu?

Veröffentlicht am 18.11.2024
Durchsuche:305

How to Add Custom Stock Statuses to WooCommerce Products in WooCommerce 4 ?

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:

  • Verwenden Sie das globale $product, wenn Sie keinen Zugriff auf das $product-Objekt haben, z. B. im woocommerce_shop_loop_item_title und woocommerce_single_product_summary Hooks.
  • Greifen Sie auf das $product-Objekt zu, wenn es standardmäßig an die Rückruffunktion übergeben wird, als im woocommerce_get_price_html-Hook.
Neuestes Tutorial Mehr>

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