Отключаем невостребованные функции 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);
}
[site-socialshare]
В некоторых темах на странице магазина WooCommerce каждый отображаемый товар сопровождается строкой, указывающей имя пользователя, его опубликовавшего. Как можно отключить эту строку?
Куда добавлять код? в какой файл?
Все функции обычно нужно добавлять в functions.php
А как вообще убрать в товарах фильтр «Filter by product type», ведь у меня только один тип товара «Простой товар». А в фильтре можно выбрать как простой так и вариативный. Причем по умолчанию всегда стоит пункт Filter by product type. Неудобно каждый раз сначала выставлять этот фильтр на Простой товар, а потом уже выполнять свои собственные сортировки.