2015-03-13 95 views
0

當前woo commerce只提供產品名稱和數量框。我的一些產品是不同的顏色或風格。我希望客戶能夠在分組產品的產品名稱旁邊看到縮略圖。另外如果可能的話,如果他們將鼠標懸停在它上面,看它更大。添加縮略圖到Group產品圖片Woocommerce

Grouped.php file: 

<?php 
/** 
* Grouped product add to cart 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  2.1.7 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly 

global $product, $post; 

$parent_product_post = $post; 

do_action('woocommerce_before_add_to_cart_form'); ?> 

<form class="cart" method="post" enctype='multipart/form-data'> 
    <table cellspacing="0" class="group_table"> 
     <tbody> 
     <?php 
     foreach ($grouped_products as $product_id) : 
      $product = wc_get_product($product_id); 
      $post = $product->post; 
      setup_postdata($post); 
      ?> 
      <tr> 
       <td> 
        <?php if ($product->is_sold_individually() || ! $product->is_purchasable()) : ?> 
         <?php woocommerce_template_loop_add_to_cart(); ?> 
        <?php else : ?> 
         <?php 
         $quantites_required = true; 
         woocommerce_quantity_input(array('input_name' => 'quantity[' . $product_id . ']', 'input_value' => '0')); 
         ?> 
        <?php endif; ?> 
       </td> 

       <td class="label"> 
        <label for="product-<?php echo $product_id; ?>"> 
         <?php echo $product->is_visible() ? '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' : get_the_title(); ?> 
        </label> 
       </td> 

       <?php do_action ('woocommerce_grouped_product_list_before_price', $product); ?> 

       <td class="price"> 
        <?php 
        echo $product->get_price_html(); 

        if (($availability = $product->get_availability()) && $availability['availability']) 
         echo apply_filters('woocommerce_stock_html', '<p class="stock ' . esc_attr($availability['class']) . '">' . esc_html($availability['availability']) . '</p>', $availability['availability']); 
        ?> 
       </td> 
      </tr> 
     <?php 
     endforeach; 

     // Reset to parent grouped product 
      $post = $parent_product_post; 
      $product = wc_get_product($parent_product_post->ID); 
      setup_postdata($parent_product_post); 
     ?> 
     </tbody> 
    </table> 

    <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>" /> 

    <?php if ($quantites_required) : ?> 

     <?php do_action('woocommerce_before_add_to_cart_button'); ?> 

     <button type="submit" class="single_add_to_cart_button btn btn-flat"><?php echo apply_filters('add_to_cart_text' , $product->single_add_to_cart_text()); ?></button> 

     <?php do_action('woocommerce_after_add_to_cart_button'); ?> 

    <?php endif; ?> 
</form> 

發現這一點,但似乎並沒有工作

add_action('woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail'); 

function woocommerce_grouped_product_thumbnail($product) { 
$image_size = array(20, 20); // array(width, height) image size in pixel 
$attachment_id = get_post_meta($product->id, '_thumbnail_id', true); 
?> 
<td class="label"> 
    <?php echo wp_get_attachment_image($attachment_id, $image_size); ?> 
</td> 
<?php 
} 

回答

0

我做吧! 我以另一種方式使用此代碼:

<?php 
 
/** 
 
* Grouped product add to cart 
 
* 
 
* @author \t \t WooThemes 
 
* @package \t WooCommerce/Templates 
 
* @version  2.1.7 
 
*/ 
 

 

 
if (! defined('ABSPATH')) { 
 
\t exit; // Exit if accessed directly 
 
} 
 

 
global $product, $post, $image_size; 
 
$image_size = array(50, 50);// array(width, height) image size in pixel 
 

 
$parent_product_post = $post; 
 

 
do_action('woocommerce_before_add_to_cart_form'); ?> 
 

 
<form class="cart" method="post" enctype='multipart/form-data'> 
 
\t <table cellspacing="0" class="group_table"> 
 
\t \t <tbody> 
 
\t \t \t <?php 
 
\t \t \t \t foreach ($grouped_products as $product_id) : 
 
\t \t \t \t \t $product = wc_get_product($product_id); 
 

 
\t \t \t \t \t if ('yes' === get_option('woocommerce_hide_out_of_stock_items') && ! $product->is_in_stock()) { 
 
\t \t \t \t \t \t continue; 
 
\t \t \t \t \t } 
 

 
\t \t \t \t \t $post = $product->post; 
 
\t \t \t \t \t setup_postdata($post); 
 
\t \t \t \t \t ?> 
 
\t \t \t \t \t <tr> 
 
\t \t \t \t \t \t <?php $attachment_id = get_post_meta($product->id, '_thumbnail_id', true); ?> 
 
\t \t \t \t \t \t <td class="gpThumbs"> 
 
\t \t \t \t \t \t \t <?php echo wp_get_attachment_image($attachment_id, $image_size); ?> \t 
 
\t \t \t \t \t \t </td> 
 
\t \t \t \t \t \t 
 

 
\t \t \t \t \t \t <td class="label"> 
 
\t \t \t \t \t \t \t <label for="product-<?php echo $product_id; ?>"> 
 
\t \t \t \t \t \t \t \t <?php echo $product->is_visible() ? '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' : get_the_title(); ?> 
 
\t \t \t \t \t \t \t </label> 
 
\t \t \t \t \t \t </td> 
 

 
\t \t \t \t \t \t <?php do_action ('woocommerce_grouped_product_list_before_price', $product); ?> 
 
\t \t \t \t \t \t 
 
\t \t \t \t \t \t <td class="price"> 
 
\t \t \t \t \t \t \t <?php 
 
\t \t \t \t \t \t \t \t echo $product->get_price_html(); 
 

 
\t \t \t \t \t \t \t \t if ($availability = $product->get_availability()) { 
 
\t \t \t \t \t \t \t \t \t $availability_html = empty($availability['availability']) ? '' : '<p class="stock ' . esc_attr($availability['class']) . '">' . esc_html($availability['availability']) . '</p>'; 
 
\t \t \t \t \t \t \t \t \t echo apply_filters('woocommerce_stock_html', $availability_html, $availability['availability'], $product); 
 
\t \t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t \t ?> 
 
\t \t \t \t \t \t </td> 
 
\t \t \t \t \t \t <td> 
 
\t \t \t \t \t \t \t <?php if ($product->is_sold_individually() || ! $product->is_purchasable()) : ?> 
 
\t \t \t \t \t \t \t \t <?php woocommerce_template_loop_add_to_cart(); ?> 
 
\t \t \t \t \t \t \t <?php else : ?> 
 
\t \t \t \t \t \t \t \t <?php 
 
\t \t \t \t \t \t \t \t \t $quantites_required = true; 
 
\t \t \t \t \t \t \t \t \t woocommerce_quantity_input(array('input_name' => 'quantity[' . $product_id . ']', 'input_value' => '0', 'min_value' => apply_filters('woocommerce_quantity_input_min', 0, $product), 'max_value' => apply_filters('woocommerce_quantity_input_max', $product->backorders_allowed() ? '' : $product->get_stock_quantity(), $product))); 
 
\t \t \t \t \t \t \t \t ?> 
 
\t \t \t \t \t \t \t <?php endif; ?> 
 
\t \t \t \t \t \t </td> 
 
\t \t \t \t \t \t 
 
\t \t \t \t \t </tr> 
 
\t \t \t \t \t <?php 
 
\t \t \t \t endforeach; 
 

 
\t \t \t \t // Reset to parent grouped product 
 
\t \t \t \t $post = $parent_product_post; 
 
\t \t \t \t $product = wc_get_product($parent_product_post->ID); 
 
\t \t \t \t setup_postdata($parent_product_post); 
 
\t \t \t ?> 
 
\t \t </tbody> 
 
\t </table> 
 

 
\t <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>" /> 
 

 
\t <?php if ($quantites_required) : ?> 
 

 
\t \t <?php do_action('woocommerce_before_add_to_cart_button'); ?> 
 

 
\t \t <button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button> 
 

 
\t \t <?php do_action('woocommerce_after_add_to_cart_button'); ?> 
 

 
\t <?php endif; ?> 
 
</form> 
 

 
<?php do_action('woocommerce_after_add_to_cart_form'); ?>

它workes罰款:)

+0

你在哪裏,在幾個星期前!大聲笑我付了40美元做這件事,你的代碼工作得更好:P – ryanb4614 2015-03-26 23:18:11