Отключаем невостребованные функции Woocommerce, чтобы было легче работать, не захламлять админку и не путать заказчиков.
Отключить типы товаров
add_filter( 'product_type_selector', 'misha_remove_grouped_and_external' ); function misha_remove_grouped_and_external( $product_types ){ unset( $product_types['grouped'] ); unset( $product_types['external'] ); //unset( $product_types['variable'] ); return $product_types; }
Если существуют товары отключенного типа — они не будут доступны в админке, т.е. их нужно заранее перевести в другой тип.
Удалить чекбоксы виртуальный и загружаемый товары
add_filter( 'product_type_options', function( $options ) { // remove "Virtual" checkbox if( isset( $options[ 'virtual' ] ) ) { unset( $options[ 'virtual' ] ); } // remove "Downloadable" checkbox if( isset( $options[ 'downloadable' ] ) ) { unset( $options[ 'downloadable' ] ); } return $options; } );
Удалить их также из фильтра админки:
add_filter( 'woocommerce_products_admin_list_table_filters', function( $filters ) { if( isset( $filters[ 'product_type' ] ) ) { $filters[ 'product_type' ] = 'misha_product_type_callback'; } return $filters; }); function misha_product_type_callback(){ $current_product_type = isset( $_REQUEST['product_type'] ) ? wc_clean( wp_unslash( $_REQUEST['product_type'] ) ) : false; $output = '<select name="product_type" id="dropdown_product_type"><option value="">Filter by product type</option>'; foreach ( wc_get_product_types() as $value => $label ) { $output .= '<option value="' . esc_attr( $value ) . '" '; $output .= selected( $value, $current_product_type, false ); $output .= '>' . esc_html( $label ) . '</option>'; } $output .= '</select>'; echo $output; }
Лишний код
Недавно, по видимому с приходом редактора Gutenberg в коде woocommerce стало выводиться куча лишнего кода (wc_product_block_data). Отключаем это:
add_action('wp_footer','wooexperts_remove_block_data',0); add_action('admin_enqueue_scripts','wooexperts_remove_block_data',0); function wooexperts_remove_block_data(){ remove_filter('wp_print_footer_scripts',array('Automattic\WooCommerce\Blocks\Assets','print_script_block_data'),1); remove_filter('admin_print_footer_scripts',array('Automattic\WooCommerce\Blocks\Assets','print_script_block_data'),1); }