¿Cómo agregar un nuevo tipo de producto en los tipos de productos de WooCommerce?
Quiero agregar un nuevo "tipo de producto" personalizado al plugin de WooCommerce:
Intenté duplicar uno de los archivos de tipo de producto existentes (estructura de plantillas de WooCommerce) como un nuevo archivo (nombre del archivo y nombre comentado dentro) ¡pero no funcionó!

La plantilla de añadir al carrito es solo una de las muchas cosas que necesitarás hacer. Cada tipo de producto tiene su propia clase en la carpeta /includes/
. Cada una extiende la clase WC_Product
.
Para añadir elementos a la lista que has capturado (que está en el lado del administrador y no en el front-end, a diferencia de la plantilla add-to-cart.php
), necesitarás filtrar product_type_selector
.
add_filter( 'product_type_selector', 'wpa_120215_add_product_type' );
function wpa_120215_add_product_type( $types ){
$types[ 'your_type' ] = __( 'Tu Tipo de Producto' );
return $types;
}
Luego necesitarás declarar tu clase de producto. El sistema de nomenclatura estándar es WC_Product_Type_Class
, así que en este ejemplo sería:
class WC_Product_Your_Type extends WC_Product{
/**
* Función __construct.
*
* @access public
* @param mixed $product
*/
public function __construct( $product ) {
$this->product_type = 'your_type'; // Obsoleto desde WC3.0 ver método get_type()
parent::__construct( $product );
}
/**
* Obtener tipo interno.
* Necesario para compatibilidad con WooCommerce 3.0
* @return string
*/
public function get_type() {
return 'your_type';
}
}
Estás haciendo una pregunta muy complicada y no puedo proporcionar una respuesta más completa. Espero que esto te ponga en el camino correcto. Te animo encarecidamente a leer el código en WooCommerce. Está muy bien comentado y puedes ver cómo manejan los diferentes tipos de productos.
Edición Añadida compatibilidad con WC3.0 a la clase de tipo de producto.

Para las personas del ✨ futuro ✨ que encuentren esto, aquí hay una publicación de blog que podría proporcionar información adicional útil: http://jeroensormani.com/adding-a-custom-woocommerce-product-type/

¡Me encanta! Pero para las personas del futuro, el $this->product_type
no será preciso para WC2.7+.

@helgatheviking ¿Algún punto sobre dónde encontrar información más actualizada en particular sobre el product_type? Sigo encontrándome con esos tutoriales "antiguos" que usan solo esa sintaxis.
