/home/blackyak/www/wordpress/wp-content/themes/travivu/includes/woocommerce/hooks.php
<?php
add_filter('woocommerce_enqueue_styles', '__return_false');
remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10);
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10);
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 10);
add_action('woocommerce_after_single_product_summary', 'travivu_woocommerce_output_product_data', 10);
remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
add_action('woocommerce_before_main_content', 'travivu_woocommerce_breadcrumb', 20);
remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5);
add_filter('loop_shop_per_page', 'travivu_woocommerce_shop_pre_page', 20);
remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
add_action('woocommerce_before_shop_loop_item_title', 'travivu_swap_images', 10);
// Add save percent next to sale item prices.
remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10);
add_action('woocommerce_before_shop_loop_item_title', 'travivu_woocommerce_custom_sales_price', 10);
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
add_theme_support('wc-product-gallery-zoom');
add_theme_support('wc-product-gallery-lightbox');
add_theme_support('wc-product-gallery-slider');
add_action('woocommerce_product_query', 'travivu_hidden_lt_package_in_shop');
add_action('woocommerce_products_widget_query_args', 'travivu_hidden_lt_package_in_widget');
function travivu_hidden_lt_package_in_shop($wp_query){
$tax_query = array(
array(
'taxonomy' => 'product_type',
'field' => 'slug',
'terms' => array(
'lt_package'
),
'operator' => 'NOT IN'
)
);
$wp_query->set( 'tax_query', $tax_query );
return $wp_query;
}
function travivu_hidden_lt_package_in_widget($query_args){
$query_args['tax_query'] = array(
array(
'taxonomy' => 'product_type',
'field' => 'slug',
'terms' => array(
'lt_package'
),
'operator' => 'NOT IN'
)
);
return $query_args;
}
function travivu_woocommerce_custom_sales_price() {
global $product;
if($product->get_sale_price()){
$percentage = round( ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100);
echo ('<span class="onsale">-' . $percentage . '%</span>' );
}
}
function travivu_woocommerce_shop_pre_page(){
return travivu_get_option('products_per_page', 6);
}
add_theme_support('woocommerce', array(
'gallery_thumbnail_image_width' => 180,
));
function travivu_woocommerce_breadcrumb(){
$woo_breadcrumb = travivu_get_option('woo_breadcrumb', 1);
if(!$woo_breadcrumb){return;}
$breadcrumb_padding_top = travivu_get_option('woo_breadcrumb_padding_top', -1);
$breadcrumb_padding_bottom = travivu_get_option('woo_breadcrumb_padding_bottom', -1);
$breadcrumb_title = travivu_get_option('woo_breadcrumb_title', 0);
$breadcrumb_bg_color = travivu_get_option('woo_breadcrumb_bg_color', '');
$breadcrumb_bg_color_opacity = travivu_get_option('woo_breadcrumb_bg_opacity', '50');
$breadcrumb_bg = travivu_get_option('woo_breadcrumb_bg', 0);
$breadcrumb_bg_image = travivu_get_option('woo_breadcrumb_bg_image', array('id'=> 0));
$breadcrumb_text_style = travivu_get_option('woo_breadcrumb_text_stype', 'text-light');
$breadcrumb_text_align = travivu_get_option('woo_breadcrumb_text_align', 'text-left');
if(is_singular('product')){
$_title = get_the_title();
}elseif(is_shop()){
$title = woocommerce_page_title(false);
}else{
$title = get_the_archive_title();
}
$classes = array();
$styles = array();
$styles_inner = array();
$css = $css_inner = $css_overlay = '';
if(isset($breadcrumb_bg_image['url']) && $breadcrumb_bg_image['url'] && $breadcrumb_bg){
$styles[] = 'background-image: url(\'' . $breadcrumb_bg_image['url'] . '\')';
}
if($breadcrumb_bg_color){
$rgba_color = travivu_convert_hextorgb($breadcrumb_bg_color);
$css_overlay = 'background-color: rgba(' . esc_attr($rgba_color['r']) . ',' . esc_attr($rgba_color['g']) . ',' . esc_attr($rgba_color['b']) . ', ' . ($breadcrumb_bg_color_opacity/100) . ')';
}
if($breadcrumb_padding_top > -1 ){
$styles_inner[] = "padding-top:{$breadcrumb_padding_top}px";
}
if($breadcrumb_padding_bottom > -1){
$styles_inner[] = "padding-bottom:{$breadcrumb_padding_bottom}px";
}
$css = count($styles) ? 'style="' . implode(';', $styles) . '"' : '';
$css_inner = count($styles_inner) > 0 ? 'style="' . implode(';', $styles_inner) . '"' : '';
?>
<div class="custom-breadcrumb" <?php echo html_entity_decode($css) ?>>
<?php if($css_overlay){ ?>
<div class="breadcrumb-overlay" style="<?php echo esc_attr($css_overlay); ?>"></div>
<?php } ?>
<div class="breadcrumb-main">
<div class="container">
<div class="breadcrumb-container-inner" <?php echo html_entity_decode($css_inner) ?>>
<?php if( !empty($title) && $breadcrumb_title ){ ?>
<h2 class="heading-title"><?php echo html_entity_decode($title) ?></h2>
<?php } ?>
<?php travivu_general_breadcrumbs(); ?>
</div>
</div>
</div>
</div>
<?php
}
add_action('travivu_woocommerce_breacrumb', 'travivu_woocommerce_breadcrumb');
function travivu_woocommerce_output_product_data_accordions() {
wc_get_template('single-product/tabs/accordions.php' );
}
function travivu_woocommerce_output_product_data(){
global $post;
$tab_style = get_post_meta($post->ID, 'travivu_product_tab_style', true);
$tab_style = 'tabs';
if($tab_style == 'accordion'){
travivu_woocommerce_output_product_data_accordions();
}else{
woocommerce_output_product_data_tabs();
}
}
function travivu_swap_images(){
global $post, $product, $woocommerce;
$image_size = wc_get_image_size('woocommerce_thumbnail');
$_width = isset($image_size['width']) ? $image_size['width'] : 'auto';
$_height = isset($image_size['height']) ? $image_size['height'] : 'auto';
$output = '';
$class = 'image';
$output .= '<a class="link-overlay" href="' . get_the_permalink() . '"></a>';
if(has_post_thumbnail()){
$output .= '<span class="attachment-shop_catalog">' . get_the_post_thumbnail( $post->ID,'shop_catalog', array('class'=>'') ) . '</span>';
}else{
$output .= '<img src="'.wc_placeholder_img_src().'" alt="'. $post->title .'" class="'.$class.'" width="'.$_width.'" height="'.$_height.'" />';
}
echo trim($output);
}
function travivu_single_page_published_and_draft_posts($query){
$uid = get_current_user_id();
if(is_single()){
$pid = isset($query->query['p']) ? $query->query['p'] : '';
if($pid){
$post = get_post($pid);
if($post){
$author_id = $post->post_author;
if($uid == $author_id){
$query->set('post_status', 'publish,draft');
}
}
}
}
}
add_action('pre_get_posts', 'travivu_single_page_published_and_draft_posts');