Základní typy produktu ve WooCommerce jsou jednoduchý, variabilní, seskupený a externí. Dnes si ukážeme, jak vytvořit vlastní typ produktu.
Vlastní typy produktů nejsou nic vyjimečného, veškeré memberships a subscriptions, nebo booking plugin s nimi pracují.
Jejich výhodou je oddělení specifických funkcí do vlastních tříd, záložek a dat. Například šablona pro tlačítko přidat do košíku na detailu produktu, se automaticky škáluje podle typu produktu.
Vlastní typ produktu Event
Na vytvoření vlastního typu produktu potřebujete jen dvě věci.
- vlastní třídu produktu
- zaregistrovat typ produktu do dropdownu v administraci
Nejprve si vytvoříme třídu produktu, kterou odvodíme od jednoduchého produktu:
/**
* Event Product Type
*/
class WC_Product_Event extends WC_Product {
/**
* Return the product type
* @return string
*/
public function get_type() {
return 'event';
}
}
Nyní má Event stejné vlastnosti, jako jednoduchý produkt.
Jako další krok je třeba přidat Event do výběru typu produktu v administraci
add_filter( 'product_type_selector', 'musilda_add_type' );
function musilda_add_type( $types ) {
$types['event'] = __( 'Event', 'musilda' );
return $types;
}
Jako poslední musíme třídu produktu zaregistrovat:
add_filter( 'woocommerce_product_class', 'musilda_woocommerce_product_class', 10, 2 );
function musilda_woocommerce_product_class( $classname, $product_type ) {
if ( $product_type == 'event' ) {
$classname = 'WC_Product_Event';
}
return $classname;
}
A to je vše, nic víc není třeba.