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_Product
Klasse.
Um Elemente zu der Liste hinzuzufügen, die Sie mit einem Screencapping versehen haben (die sich im Gegensatz zur add-to-cart.php
Vorlage 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_Class
in 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.
$this->product_type
für WC2.7 + nicht genau sein.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.