Je souhaite ajouter un nouveau "type de produit" personnalisé au plugin woocommerce:
J'ai essayé de dupliquer l'un des fichiers de type de produit existants (structure de modèle woocommerce) en tant que nouveau fichier (nom de fichier et nom commenté à l'intérieur), mais cela n'a pas fonctionné!
Le modèle d'ajout au panier ne représente qu'une des nombreuses tâches à effectuer. Chaque type de produit a sa propre classe dans le dossier /includes/
. Chacun d'eux étend la classe WC_Product
.
Pour ajouter des éléments à la liste que vous avez scannée (qui se trouve du côté de l’administrateur et non du front-end, contrairement au modèle add-to-cart.php
, vous devrez filtrer 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;
}
vous devrez ensuite déclarer votre classe de produits. Le système de nommage standard est WC_Product_Type_Class
. Dans cet exemple, ce serait:
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_product';
}
}
Vous posez une question très compliquée et je ne peux fournir une réponse plus complète. J'espère que cela vous met sur la bonne voie. Je vous encourage fortement à lire le code dans WooCommerce. C'est très bien commenté et vous pouvez voir comment ils gèrent les différents types de produits.
Éditer Ajout de la compatibilité WC3.0 à la classe de type de produit.