Wayne
Wayne

Reputation: 793

Hide option select item in woocommerce product type

I am planning to deliver a woocommerce shop to someone and I want to hide none essential options in order not to confuse non advance users. Particularly Product type.

In WooCommerce Product Editor, there is an option to select product type. I only want to show Simple and variable product.

Normally this could be done using css display:hide attributes but when I inspect woocommerce product option select, the options does not have id nor class selector.

Here is the code I saw on product options

<select id="product-type" name="product-type">
<optgroup label="Product Type"><option value="simple" selected="selected">Simple product</option>
<option value="grouped">Grouped product</option><option value="external">External/Affiliate product</option>
<option value="variable">Variable product</option></optgroup>
</select>

My question. Is there a way to hide grouped product and affiliate product type on that option select box in a way that it wont be affected during woocommerce or wp update?

Thanks

Upvotes: 10

Views: 12242

Answers (3)

Maher Aldous
Maher Aldous

Reputation: 942

Try this. This code should work and it work best with woocommerce 3.4.4 and above. Refrence: https://gist.github.com/tanmay27vats/89f9d67db78c33a6ffa1d844235a5db1

add_filter( 'product_type_selector', 'remove_product_types' );

function remove_product_types( $types ){
    unset( $types['grouped'] );
    unset( $types['external'] );
    unset( $types['variable'] );

    return $types;
}

Upvotes: 5

Laxmana
Laxmana

Reputation: 1706

You can filter product_type_selector

add_filter( 'product_type_selector', 'remove_product_types' );

function remove_product_types( $types ){
    unset( $types['grouped'] );
    unset( $types['external'] );

    return $types;
}

Upvotes: 27

random_user_name
random_user_name

Reputation: 26160

You can use named selectors:

#product-type option[value="grouped"] {
    ... your css here ...
}

See this post: CSS to select another Element based on a HTML Select Option Value

Upvotes: 3

Related Questions