Fany_VanDaal icon

Zobrazení produktů se stejným tagem

Fany_VanDaal | PRO | 05/21/21 03:28:00 PM UTC (Edited) | 0 ⭐ | 800 👁️ | Never ⏰ | []
PHP |

2.46 KB

|

None

|

0 👍

/

0 👎

// pro zobrazení použijte shortcode [woo_products_by_tags]
// můžete použít doplňující info v shortcode [woo_products_by_tags image_size="shop_thumbnail" title="Další varianty"]
 
function woo_products_by_tags_shortcode( $atts, $content = null ) {
    extract(shortcode_atts(array(
        "image_size"       => 'thumbnail',  // zde si nastavte, jaký obrázek se má zobrazit, pokud nemáte nastavenou velikost v shortcode
        "title" => 'Další barevné varianty obrazu'  // nadpis, který se zobrazí nad sekcí, pokud jsou nalezeny další varianty, pokud jej nemáte nastaven v shortcode
    ), $atts));
    ob_start();
    $current_post_ID = get_the_ID();
    // Define Query Arguments
    $args = array( 
                'post_type'      => 'product', 
                'posts_per_page' => 10,   // počet produktů na řádek (vždy se zobrazí jeden řádek i kdyby bylo nalezeno více produktů)
                'product_tag'    => get_product_tags( $current_post_ID )
                );
    // Create the new query
    $loop = new WP_Query( $args );
    // Get products number
    $product_count = $loop->post_count;
    // If results
    if ( $product_count > 1 ) {
        echo '<h3 class="odstup-nadpisu">'.$title.'</h3>';
        echo '<ul class="products">';
            // Start the loop
            while ( $loop->have_posts() ) : $loop->the_post(); global $product; 
                global $post;
                if($post->ID !== $current_post_ID) {
                    if (has_post_thumbnail( $loop->post->ID )) {
                        echo '<div class="zoom-obrazku"><a href="'.get_permalink($post->ID).'">';
                        echo  get_the_post_thumbnail($loop->post->ID, $image_size, [ 'alt' => esc_html ( get_the_title() ) ]);
                        echo '</a></div>'; 
                    }   
                }
            endwhile;
        echo '</ul><!--/.products-->';
    }
    return ob_get_clean();
}
function get_product_tags( $id ) {
    $output = array();
    $terms  = get_the_terms( $id, 'product_tag' );
    if ( $terms !== false ) {
        foreach ( $terms as &$term ) {
            $output[] = $term->name;
        }
        return implode( ',', $output );
    }
    return $output;
}
add_shortcode("woo_products_by_tags", "woo_products_by_tags_shortcode");
 
// bonus
/*
.odstup-nadpisu {
    padding-bottom: 30px;
    text-align: center;
}
 
.zoom-obrazku {
  padding-bottom: 0px;
  transition: transform 0.5s; // časová délka animace - tuto poznámku odstraňte!
  width: 150px;
  height: 150px;
  margin: 0 auto;
  display: inline-block;
}
 
.zoom-obrazku:hover {
  transform: scale(1.1); // 110% zoom - pokud chcete obrázek zvětšit třeba na 150% zadejte 1.5)  - tuto poznámku odstraňte!
}
*/

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎