2017-04-10 96 views
2

在WooCommerce 3.0+中,我創建了一些使用js的選項卡,每個選項卡中包含來自不同類別的產品。我設法修改了簡單產品的加購車鏈接,其中點擊了addtocart按鈕後,它會轉到下一個標籤,而無需刷新,並且產品已成功添加到購物車。自定義添加到購物車按鈕/鏈接在變量單產品頁

if (has_term('jeans-discount', 'product_cat', $post)) { 
     echo apply_filters('woocommerce_loop_add_to_cart_link', 
sprintf('<a rel="nofollow" data-target="2" href="javascript:void(0); %s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="custom %s">%s</a>', 
    esc_url($product->add_to_cart_url()), 
    esc_attr(isset($quantity) ? $quantity : 1), 
    esc_attr($product->get_id()), 
    esc_attr($product->get_sku()), 
    esc_attr(isset($class) ? $class : 'button'), 
    esc_html($product->add_to_cart_text()) 
    ), 
    $product); 
    } 

但是我不能夠修改variation-add-to-cart.php模板文件可變產品addtocart按鈕:

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

對於簡單產品的addtocart鏈接顯示爲href="javascript:void(0); /wordpress/woo-slider/?add-to-cart=73"

有沒有辦法我可以做到這一點的變量產品addtocart鏈接以及?

+0

其woocommerce您正在運行的版本? – LoicTheAztec

+0

@LoicTheAztec這是3.0.0 – SandeepTete

+0

好吧,所以我已經發布了兩個版本的Woocommerce的答案,但我無法真正測試它(因爲您的選項卡系統是自定義的東西)。讓我知道它是否有效。謝謝 – LoicTheAztec

回答

1

對於WooCommerce 3.0以上版本將覆蓋variation-add-to-cart.php模板是這樣的:

<?php 
/** 
* Single variation cart button 
* 
* @see  https://docs.woocommerce.com/document/template-structure/ 
* @author WooThemes 
* @package WooCommerce/Templates 
* @version 3.0.0 
*/ 
if (! defined('ABSPATH')) { 
    exit; 
} 

global $product; 

?> 
<div class="woocommerce-variation-add-to-cart variations_button"> 
    <?php 
     /** 
     * @since 3.0.0. 
     */ 
     do_action('woocommerce_before_add_to_cart_quantity'); 

     woocommerce_quantity_input(array(
      'min_value' => apply_filters('woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product), 
      'max_value' => apply_filters('woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product), 
      'input_value' => isset($_POST['quantity']) ? wc_stock_amount($_POST['quantity']) : $product->get_min_purchase_quantity(), 
     )); 

     /** 
     * @since 3.0.0. 
     */ 
     do_action('woocommerce_after_add_to_cart_quantity'); 

// Set HERE your targeted product category 
if (has_term('jeans-discount', 'product_cat', $product->get_id())) { 

    ?> 
    <button type="submit" data-target="2" class="single_add_to_cart_button button alt" onclick="javascript:void(0);"><?php echo esc_html($product->single_add_to_cart_text()); ?></button> 

<?php } else { // Other product categories 
?> 

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

<?php } ?> 

    <input type="hidden" name="add-to-cart" value="<?php echo absint($product->get_id()); ?>" /> 
    <input type="hidden" name="product_id" value="<?php echo absint($product->get_id()); ?>" /> 
    <input type="hidden" name="variation_id" class="variation_id" value="0" /> 
</div> 

我不能測試它的真正(因爲我沒有標籤的啓用系統),但是這是成功的在我的測試服務器上工作而沒有錯誤問題。


對於WooCommerce 2.6.x的將覆蓋variation-add-to-cart.php模板是這樣的:

<?php 
/** 
* Single variation cart button 
* 
* @see  https://docs.woocommerce.com/document/template-structure/ 
* @author WooThemes 
* @package WooCommerce/Templates 
* @version 2.5.0 
*/ 
if (! defined('ABSPATH')) { 
    exit; 
} 

global $product; 

// Set HERE your targeted product category 
if (has_term('jeans-discount', 'product_cat', $product->id)) { 

?> 
<div class="woocommerce-variation-add-to-cart variations_button"> 
    <?php if (! $product->is_sold_individually()) : ?> 
     <?php woocommerce_quantity_input(array('input_value' => isset($_POST['quantity']) ? wc_stock_amount($_POST['quantity']) : 1)); ?> 
    <?php endif; ?> 
    <button type="submit" data-target="2" class="single_add_to_cart_button button alt" onclick="javascript:void(0);"><?php echo esc_html($product->single_add_to_cart_text()); ?></button> 

<?php } else { // Other product categories 
?> 

<div class="woocommerce-variation-add-to-cart variations_button"> 
    <?php if (! $product->is_sold_individually()) : ?> 
     <?php woocommerce_quantity_input(array('input_value' => isset($_POST['quantity']) ? wc_stock_amount($_POST['quantity']) : 1)); ?> 
    <?php endif; ?> 
    <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html($product->single_add_to_cart_text()); ?></button> 

<?php } ?> 

    <input type="hidden" name="add-to-cart" value="<?php echo absint($product->id); ?>" /> 
    <input type="hidden" name="product_id" value="<?php echo absint($product->id); ?>" /> 
    <input type="hidden" name="variation_id" class="variation_id" value="0" /> 
</div> 
相關問題