Wie füge ich einen neuen Produkttyp zu Woocommerce-Produkttypen hinzu? [geschlossen]

7

Ich möchte dem Woocommerce-Plugin einen neuen benutzerdefinierten "Produkttyp" hinzufügen:

Geben Sie hier die Bildbeschreibung ein

Es wurde versucht, eine der derzeit vorhandenen Produkttypdateien (Woocommerce-Vorlagenstruktur) als neue Datei (Dateiname und innerhalb des kommentierten Namens) zu duplizieren, aber nicht funktioniert!

Geben Sie hier die Bildbeschreibung ein

Amino
quelle

Antworten:

19

Die Vorlage zum Hinzufügen zum Warenkorb ist nur eines der vielen Dinge, die Sie tun müssen. Jeder Produkttyp hat eine eigene Klasse im /includes/Ordner. Jeder erweitert die WC_ProductKlasse.

Um Elemente zu der Liste hinzuzufügen, die Sie mit einem Screencapping versehen haben (die sich im Gegensatz zur add-to-cart.phpVorlage auf der Administratorseite und nicht im Front-End befindet , müssen Sie filtern product_type_selector.

add_filter( 'product_type_selector', 'wpa_120215_add_product_type' );
function wpa_120215_add_product_type( $types ){
    $types[ 'your_type' ] = __( 'Your Product Type' );
    return $types;
}

dann müssen Sie Ihre Produktklasse deklarieren. Das Standard-Benennungssystem ist WC_Product_Type_Classin diesem Beispiel so:

class WC_Product_Your_Type extends WC_Product{
    /**
     * __construct function.
     *
     * @access public
     * @param mixed $product
     */
    public function __construct( $product ) {
        $this->product_type = 'your_type'; // Deprecated as of WC3.0 see get_type() method
        parent::__construct( $product );
    }

     /**
     * Get internal type.
     * Needed for WooCommerce 3.0 Compatibility
     * @return string
     */
    public function get_type() {
        return 'your_type';
    }
}

Sie stellen eine sehr komplizierte Frage, und ich kann keine vollständigere Antwort geben. Hoffentlich sind Sie damit auf dem richtigen Weg. Ich empfehle Ihnen dringend, den Code in WooCommerce zu lesen. Es ist sehr gut kommentiert und Sie können sehen, wie sie mit den verschiedenen Produkttypen umgehen.

Bearbeiten WC3.0-Kompatibilität zur Produkttypklasse hinzugefügt.

Helgatheviking
quelle
Für Leute aus der Zukunft, die dies finden, ist hier ein Blog-Beitrag, der einige hilfreiche zusätzliche Informationen enthalten könnte: jeroensormani.com/adding-a-custom-woocommerce-product-type
Travis Northcutt
Ich mag das! Aber für Menschen der Zukunft wird das $this->product_typefür WC2.7 + nicht genau sein.
Helgatheviking
@helgatheviking Gibt es Punkte, wo Sie aktuellere Informationen insbesondere zum Produkttyp finden können? Ich stoße immer wieder auf diese "alten" Tutorials, die nur diese Syntax verwenden.
Kontur
1
@kontur Sie müssen get_type()Ihrer Klasse eine Methode hinzufügen . Es sollte den Produkttyp zurückgeben. Beispiel: public function get_type() { return 'your_type'; }Siehe meine Bearbeitung.
Helgatheviking