wc_body_class()WC 1.0

Добавляет WooCommerce классы относящиеся к текущей странице в тег <body>.

Функция автоматически вызывается на фильтре body_class. Поэтому нет необходимости где-либо использовать эту функцию напрямую - все делается через хук body_class.

Кроме прочих классов, функция всегда добавляет класс woocommerce-no-js и запускает функцию wc_no_js() в подвале, которая в свою очередь меняет этот класс на woocommerce-js. Таким образом WC определяет работает ли JS в браузере.

Хуков нет.

Возвращает

Массив. Дополненный массив классов для тега body.

Использование

wc_body_class( $classes );
$classes(массив) (обязательный)
Массив классов, передаваемый в хук body_class.

Примеры

0

#1 Добавим класс с типом продукта для страницы продукта

add_filter( 'body_class', 'add_class_to_product_page' );

function add_class_to_product_page( $classes ){

	if ( is_product() ) {
		$product = wc_get_product();

		$classes[] = 'product-type-' . $product->get_type();
	}

	return $classes;
}

Код wc_body_class() WC 8.6.1

function wc_body_class( $classes ) {
	$classes = (array) $classes;

	if ( is_shop() ) {

		$classes[] = 'woocommerce-shop';

	}

	if ( is_woocommerce() ) {

		$classes[] = 'woocommerce';
		$classes[] = 'woocommerce-page';

	} elseif ( is_checkout() ) {

		$classes[] = 'woocommerce-checkout';
		$classes[] = 'woocommerce-page';

	} elseif ( is_cart() ) {

		$classes[] = 'woocommerce-cart';
		$classes[] = 'woocommerce-page';

	} elseif ( is_account_page() ) {

		$classes[] = 'woocommerce-account';
		$classes[] = 'woocommerce-page';

	}

	if ( is_store_notice_showing() ) {
		$classes[] = 'woocommerce-demo-store';
	}

	foreach ( WC()->query->get_query_vars() as $key => $value ) {
		if ( is_wc_endpoint_url( $key ) ) {
			$classes[] = 'woocommerce-' . sanitize_html_class( $key );
		}
	}

	if ( wc_current_theme_is_fse_theme() ) {

		$classes[] = 'woocommerce-uses-block-theme';

	}

	if ( wc_block_theme_has_styles_for_element( 'button' ) ) {

		$classes[] = 'woocommerce-block-theme-has-button-styles';

	}

	$classes[] = 'woocommerce-no-js';

	add_action( 'wp_footer', 'wc_no_js' );

	return array_unique( $classes );
}