wc_product_post_class( array $classes, string|array $class = '', int $post_id )
Adds extra post classes for products via the WordPress post_class hook, if used.
Description Description
Note: For performance reasons we instead recommend using wc_product_class/wc_get_product_class instead.
Parameters Parameters
- $classes
-
(Required) Current classes.
- $class
-
(Optional) Additional class.
Default value: ''
- $post_id
-
(Required) Post ID.
Return Return
(array)
Source Source
File: includes/wc-template-functions.php
function wc_product_post_class( $classes, $class = '', $post_id = 0 ) {
if ( ! $post_id || ! in_array( get_post_type( $post_id ), array( 'product', 'product_variation' ), true ) ) {
return $classes;
}
$product = wc_get_product( $post_id );
if ( ! $product ) {
return $classes;
}
$classes[] = 'product';
$classes[] = wc_get_loop_class();
$classes[] = $product->get_stock_status();
if ( $product->is_on_sale() ) {
$classes[] = 'sale';
}
if ( $product->is_featured() ) {
$classes[] = 'featured';
}
if ( $product->is_downloadable() ) {
$classes[] = 'downloadable';
}
if ( $product->is_virtual() ) {
$classes[] = 'virtual';
}
if ( $product->is_sold_individually() ) {
$classes[] = 'sold-individually';
}
if ( $product->is_taxable() ) {
$classes[] = 'taxable';
}
if ( $product->is_shipping_taxable() ) {
$classes[] = 'shipping-taxable';
}
if ( $product->is_purchasable() ) {
$classes[] = 'purchasable';
}
if ( $product->get_type() ) {
$classes[] = 'product-type-' . $product->get_type();
}
if ( $product->is_type( 'variable' ) && $product->get_default_attributes() ) {
$classes[] = 'has-default-attributes';
}
$key = array_search( 'hentry', $classes, true );
if ( false !== $key ) {
unset( $classes[ $key ] );
}
return $classes;
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |