Dodawanie i usuwanie opcji produktu

Domyślnie podczas konfiguracji produktu mamy do wyboru checkboxy „wirtualny” i „Do pobrania”. Teoretycznie nie przeszkadzają ale mniej doświadczonemu użytkownikowi mogą nieco mieszać w głowie. Dlatego postaramy się je ukryć. Zrobimy to za pomocą filtra product_type_options.

add_filter('product_type_options', 'gc_woocommerce_option');
function gc_woocommerce_option($options) {

	if( isset( $options[ 'virtual' ] ) ) {
		unset( $options[ 'virtual' ] );
	}
 
	if( isset( $options[ 'downloadable' ] ) ) {
               unset( $options[ 'downloadable' ] );
	}
	return $options;
}
Tak wygląda metabox produktu bez opcji

Gdyby przyszła nam ochota na dodanie własnej opcji możemy wcześniejszą funkcję uzupełnić o poniższy kod:

	$options['euro'] = array(
			"id" => "_euro",
			"wrapper_class" => array( 'show_if_simple', 'show_if_variable' ),
			"label" => "Cena w EURO",
			"description" => "Zaznacz jeśli cena będzie w euro",
			"default" => "no",
	);

W tym przypadku chodziło o dodanie dodatkowej informacji czy cena będzie podana w euro.

Musimy zapisać jeszcze nasz parametr w post_meta.

add_action("save_post_product", 
   function ($post_ID, $product, $update) {
	update_post_meta($product->ID, "_euro", isset($_POST["_euro"]) ? "yes" : "no");
}, 10, 3);
Przewijanie do góry