Cum se adaugă un nou tip de produs în tipurile de produse WooCommerce?

27 oct. 2013, 01:19:35
Vizualizări: 20.3K
Voturi: 7

Vreau să adaug un nou "tip de produs" personalizat în plugin-ul WooCommerce:

Selectarea tipului de produs în WooCommerce

Am încercat să duplic unul dintre fișierele existente pentru tipurile de produse (structura template-urilor WooCommerce) ca un fișier nou (numele fișierului și numele comentat din interior) dar nu a funcționat!

Structura fișierelor WooCommerce pentru tipuri de produse

0
Toate răspunsurile la întrebare 1
4
20

Șablonul "add to cart" este doar una dintre numeroasele lucruri pe care va trebui să le faci. Fiecare tip de produs are propria clasă în directorul /includes/. Fiecare dintre aceste clase extinde clasa WC_Product.

Pentru a adăuga elemente în lista pe care ai capturat-o (care se află în partea de administrare și nu în front-end, spre deosebire de șablonul add-to-cart.php), va trebui să filtrezi 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;
}

Apoi va trebui să declari clasa de produs. Sistemul standard de denumire este WC_Product_Type_Class, deci în acest exemplu ar fi:

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 începând cu WC3.0 - vezi metoda get_type()
        parent::__construct( $product );
    }

     /**
     * Get internal type.
     * Necesar pentru compatibilitate cu WooCommerce 3.0
     * @return string
     */
    public function get_type() {
        return 'your_type';
    }
}

Pui o întrebare foarte complexă și nu pot oferi un răspuns mai complet. Sper că acest lucru te va îndruma în direcția corectă. Te încurajez să citești codul din WooCommerce. Este foarte bine comentat și poți vedea cum sunt gestionate diferitele tipuri de produse.

Actualizare Am adăugat compatibilitate cu WC3.0 pentru clasa de tip produs.

27 oct. 2013 02:41:29
Comentarii

Pentru oamenii din ✨ viitor ✨ care ajung aici, iată un articol de blog care ar putea oferi informații suplimentare utile: http://jeroensormani.com/adding-a-custom-woocommerce-product-type/

Travis Northcutt Travis Northcutt
29 dec. 2016 19:49:30

Îmi place asta! Dar pentru oamenii viitorului, $this->product_type nu va fi corect pentru WC2.7+.

helgatheviking helgatheviking
29 dec. 2016 21:11:00

@helgatheviking Ai vreo sugestie despre unde să găsesc informații mai actualizate, în special despre product_type? Tot dau peste acele tutoriale "vechi" care folosesc doar această sintaxă.

kontur kontur
1 sept. 2017 09:53:04

@kontur va trebui să adaugi o metodă get_type() în clasa ta. Aceasta ar trebui să returneze tipul produsului. ex: public function get_type() { return 'your_type'; } Vezi modificarea mea.

helgatheviking helgatheviking
1 sept. 2017 22:41:01