Heim > Backend-Entwicklung > PHP-Tutorial > Wie füge ich WooCommerce 4 eine benutzerdefinierte Lagerstatusfunktion hinzu?

Wie füge ich WooCommerce 4 eine benutzerdefinierte Lagerstatusfunktion hinzu?

Susan Sarandon
Freigeben: 2024-11-02 19:11:02
Original
525 Leute haben es durchsucht

How to Add Custom Stock Status Functionality to WooCommerce 4 ?

So fügen Sie benutzerdefinierte Lagerstatusfunktionen zu WooCommerce 4 hinzu

Einführung

Das Hinzufügen benutzerdefinierter Lagerstatus zu Ihren WooCommerce-Produkten ermöglicht Sie werden gebeten, detailliertere Informationen über deren Verfügbarkeit bereitzustellen. Dies kann dazu beitragen, das Einkaufserlebnis Ihrer Kunden zu verbessern und Verwirrung zu vermeiden.

Benutzerdefinierte Lagerstatusoptionen

Um eine benutzerdefinierte Lagerstatusfunktion zu erhalten, befolgen Sie diese Schritte:

  1. Benutzerdefinierte Lagerstatus hinzufügen:

    <code class="php">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 );</code>
    Nach dem Login kopieren
  2. Verfügbarkeitstext und Klasse aktualisieren:

    <code class="php">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 );
    
    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 );</code>
    Nach dem Login kopieren
  3. Benutzerdefinierte Status in der Admin-Produktliste anzeigen:

    <code class="php">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=&quot;pre-order&quot; style=&quot;background:transparent none;color:#33ccff;font-weight:700;line-height:1;&quot;>' . __( 'Pre order', 'woocommerce' ) . '</mark>';
            break;
            case 'contact_us':
                $stock_html = '<mark class=&quot;contact-us&quot; style=&quot;background:transparent none;color:#cc33ff;font-weight:700;line-height:1;&quot;>' . __( 'Contact us', 'woocommerce' ) . '</mark>';
            break;
        }
    
        return $stock_html;
    }
    add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );</code>
    Nach dem Login kopieren
  4. Benutzerdefinierte Status in Hooks verwenden:

    Option 1: Globales $product verwenden

    <code class="php">function woocommerce_my_callback() {
        // Get the global product object
        global $product;
    
        // Is a WC product
        if ( is_a( $product, 'WC_Product' ) ) {
            // Get stock status
            $product_stock_status = $product->get_stock_status();
    
            // Use this line during testing, delete afterwards!
            echo '<p style=&quot;color:red;font-size:20px;&quot;>DEBUG INFORMATION = ' . $product_stock_status . '</p>';
    
            // Compare
            if ( $product_stock_status == 'My custom stock status' ) {
                // Etc..
            }
        }
    }
    add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_my_callback', 10 );
    add_action( 'woocommerce_single_product_summary', 'woocommerce_my_callback', 10 );</code>
    Nach dem Login kopieren

    Option 2: $product an Callback übergeben

    <code class="php">function filter_woocommerce_get_price_html( $price, $product ) {
        // Is a WC product
        if ( is_a( $product, 'WC_Product' ) ) {
            // Get stock status
            $product_stock_status = $product->get_stock_status();
    
            // Use this line during testing, delete afterwards!
            echo '<p style=&quot;color:red;font-size:20px;&quot;>DEBUG INFORMATION = ' . $product_stock_status . '</p>';
    
            // Compare
            if ( $product_stock_status == 'My custom stock status' ) {
                // Etc..
                // $price .= ' my text';
            }
        }
    
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );</code>
    Nach dem Login kopieren

Fazit

Das Hinzufügen benutzerdefinierter Lagerstatus zu WooCommerce bietet Ihren Kunden mehr Flexibilität und Informationen. Indem Sie diese Schritte befolgen, können Sie die Standardfunktionalität von WooCommerce ganz einfach erweitern und das Einkaufserlebnis für Ihre Benutzer verbessern.

Das obige ist der detaillierte Inhalt vonWie füge ich WooCommerce 4 eine benutzerdefinierte Lagerstatusfunktion hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage