';
echo '
' . esc_html( get_the_title() ) . '
';
echo '';
}
endif;
/**
* Shop page - Parent Category
*/
if ( ! function_exists( 'astra_woo_shop_parent_category' ) ) :
/**
* Add and/or Remove Categories from shop archive page.
*
* @hooked woocommerce_after_shop_loop_item - 9
*
* @since 1.1.0
*/
function astra_woo_shop_parent_category() {
if ( apply_filters( 'astra_woo_shop_parent_category', true ) ) : ?>
get_categories( ';', '', '' );
$product_categories = htmlspecialchars_decode( wp_strip_all_tags( $product_categories ) );
if ( $product_categories ) {
list( $parent_cat ) = explode( ';', $product_categories );
echo apply_filters( 'astra_woo_shop_product_categories', esc_html( $parent_cat ), get_the_ID() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
get_availability();
$stock_quantity = $product->get_stock_quantity();
$availability = $product_avail['availability'];
$avail_class = $product_avail['class'];
if ( ! empty( $availability ) && $stock_quantity ) {
ob_start();
?>
';
woocommerce_template_loop_product_title();
echo '';
} else {
woocommerce_template_loop_product_title();
}
}
}
if ( ! function_exists( 'astra_woo_woocommerce_shop_product_content' ) ) {
/**
* Show the product title in the product loop. By default this is an H2.
*/
function astra_woo_woocommerce_shop_product_content() {
$shop_structure = apply_filters( 'astra_woo_shop_product_structure', astra_get_option( 'shop-product-structure' ) );
if ( is_array( $shop_structure ) && ! empty( $shop_structure ) ) {
do_action( 'astra_woo_shop_before_summary_wrap' );
echo '';
do_action( 'astra_woo_shop_summary_wrap_top' );
foreach ( $shop_structure as $value ) {
switch ( $value ) {
case 'title':
/**
* Add Product Title on shop page for all products.
*/
do_action( 'astra_woo_shop_title_before' );
astra_woo_woocommerce_template_loop_product_title();
do_action( 'astra_woo_shop_title_after' );
break;
case 'price':
/**
* Add Product Price on shop page for all products.
*/
do_action( 'astra_woo_shop_price_before' );
woocommerce_template_loop_price();
do_action( 'astra_woo_shop_price_after' );
break;
case 'ratings':
/**
* Add rating on shop page for all products.
*/
do_action( 'astra_woo_shop_rating_before' );
woocommerce_template_loop_rating();
do_action( 'astra_woo_shop_rating_after' );
break;
case 'short_desc':
do_action( 'astra_woo_shop_short_description_before' );
astra_woo_shop_product_short_description();
do_action( 'astra_woo_shop_short_description_after' );
break;
case 'add_cart':
do_action( 'astra_woo_shop_add_to_cart_before' );
woocommerce_template_loop_add_to_cart();
do_action( 'astra_woo_shop_add_to_cart_after' );
break;
case 'category':
/**
* Add and/or Remove Categories from shop archive page.
*/
do_action( 'astra_woo_shop_category_before' );
astra_woo_shop_parent_category();
do_action( 'astra_woo_shop_category_after' );
break;
default:
break;
}
}
do_action( 'astra_woo_shop_summary_wrap_bottom' );
echo '
';
do_action( 'astra_woo_shop_after_summary_wrap' );
}
}
}
if ( ! function_exists( 'astra_woo_shop_thumbnail_wrap_start' ) ) {
/**
* Thumbnail wrap start.
*/
function astra_woo_shop_thumbnail_wrap_start() {
echo '';
}
}
if ( ! function_exists( 'astra_woo_shop_thumbnail_wrap_end' ) ) {
/**
* Thumbnail wrap end.
*/
function astra_woo_shop_thumbnail_wrap_end() {
echo '
';
}
}
/**
* Woocommerce filter - Widget Products Tags
*/
if ( ! function_exists( 'astra_widget_product_tag_cloud_args' ) ) {
/**
* Woocommerce filter - Widget Products Tags
*
* @param array $args Tag arguments.
* @return array Modified tag arguments.
*/
function astra_widget_product_tag_cloud_args( $args = array() ) {
$sidebar_link_font_size = astra_get_option( 'font-size-body' );
$sidebar_link_font_size['desktop'] = ( '' != $sidebar_link_font_size['desktop'] ) ? $sidebar_link_font_size['desktop'] : 15;
$args['smallest'] = intval( $sidebar_link_font_size['desktop'] ) - 2;
$args['largest'] = intval( $sidebar_link_font_size['desktop'] ) + 3;
$args['unit'] = 'px';
return apply_filters( 'astra_widget_product_tag_cloud_args', $args );
}
add_filter( 'woocommerce_product_tag_cloud_widget_args', 'astra_widget_product_tag_cloud_args', 90 );
}
/**
* Woocommerce shop/product div close tag.
*/
if ( ! function_exists( 'astra_woocommerce_div_wrapper_close' ) ) :
/**
* Woocommerce shop/product div close tag.
*
* @return void
*/
function astra_woocommerce_div_wrapper_close() {
echo '';
}
endif;
/**
* Checking whether shop page style is selected as modern layout.
*/
if ( ! function_exists( 'astra_is_shop_page_modern_style' ) ) :
/**
* Checking whether shop page style is selected as modern layout.
*
* @return bool true|false.
*/
function astra_is_shop_page_modern_style() {
return ( 'shop-page-modern-style' === astra_get_option( 'shop-style' ) ) ? true : false;
}
endif;
/**
* Check if Woocommerce pro addons is enabled.
*
* @return bool true|false.
*/
function astra_has_pro_woocommerce_addon() {
/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
return ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'woocommerce' ) ) ? true : false;
/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
}
/**
* Support cart color setting to default cart icon, till now with other cart icons have this color compatibility but default one don't have this.
* This case is only for old header layout.
*
* @since 3.9.2
* @return boolean false if it is an existing user, true if not.
*/
function astra_cart_color_default_icon_old_header() {
$astra_settings = get_option( ASTRA_THEME_SETTINGS );
$astra_settings['can-reflect-cart-color-in-old-header'] = isset( $astra_settings['can-reflect-cart-color-in-old-header'] ) ? false : true;
return apply_filters( 'astra_support_default_cart_color_in_old_header', $astra_settings['can-reflect-cart-color-in-old-header'] ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
}
/**
* Function to check the Add to Cart quantity buttons.
*
* @return bool true|false.
* @since 3.9.2
*/
function astra_add_to_cart_quantity_btn_enabled() {
return apply_filters( 'astra_add_to_cart_quantity_btn_enabled', astra_get_option( 'single-product-plus-minus-button' ) );
}
/**
* Woocommerce MyAccount Page Endpoint.
*/
if ( ! function_exists( 'astra_get_wc_endpoints_title' ) ) {
/**
* Woocommerce MyAccount Page Endpoint.
*
* @param string $title for MyAccount title endpoint.
* @return string
*
* @since 4.3.0
*/
function astra_get_wc_endpoints_title( $title ) {
if ( class_exists( 'WooCommerce' ) && is_wc_endpoint_url() && is_account_page() ) {
$endpoint = WC()->query->get_current_endpoint();
$action = isset( $_GET['action'] ) ? $_GET['action'] : '';
$sanitized_action = is_string( $action ) ? sanitize_text_field( wp_unslash( $action ) ) : '';
$ep_title = $endpoint ? WC()->query->get_endpoint_title( $endpoint, $sanitized_action ) : '';
if ( $ep_title ) {
return $ep_title;
}
}
return $title;
}
add_filter( 'astra_the_title', 'astra_get_wc_endpoints_title' );
}