2016-09-29 63 views
1

我試圖向WooCommerce添加一個類添加到購物車按鈕。將類添加到WooCommerce添加到購物車按鈕(僅當它不是「選項」按鈕時)

我能夠通過woocommerce/loop/add-to-cart.php

這裏進行更改添加到購物車按鈕是我改變了我的附加到cart.php文件

/** 
* Loop Add to Cart 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
    * @version  2.1.0 
    */ 

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

global $product; 

echo apply_filters('woocommerce_loop_add_to_cart_link', 
    sprintf('<div class="add-to-cart-container"><a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="%s product_type_%s single_add_to_cart_button button alt ajax_add_to_cart"><i class="fa fa-shopping-cart"></i>&nbsp; %s</a></div>', 
     esc_url($product->add_to_cart_url()), 
     esc_attr($product->id), 
     esc_attr($product->get_sku()), 
     esc_attr(isset($quantity) ? $quantity : 1), 
     $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', 
     esc_attr($product->product_type), 
     esc_html($product->add_to_cart_text()) 
    ), 
$product); 

我只想<a>中的ajax_add_to_cart類應用於簡單產品,而不是具有帶「選擇選項」文本按鈕的可變產品。但我想要將所有其他更改應用於這兩個按鈕。

這怎麼辦?

+0

如何判斷產品是簡單的還是可變的?一些特定的屬性? – lucasnadalutti

+0

我檢查了添加到購物車按鈕(「添加到購物車」和「選擇選項」)。我知道一個可變的產品(「選擇選項」按鈕)有一個類'product_type_variable'和一個簡單的產品(「添加到購物車」按鈕)有一個類'product_type_simple' 我爲此做的工作是刪除'ajax_add_to_cart'類構成'add-to-cart.php'文件,並使用jQuery將類添加到正確的按鈕中。 – xslibx

+0

好吧,如果你確實有權訪問PHP代碼,我建議你照我的建議回答。我認爲這是更清潔的,因爲你會把整個邏輯放在一個地方。 – lucasnadalutti

回答

1

替換ajax_add_to_cart%s並添加一個參數到您的sprintf函數。

sprintf('<div class="add-to-cart-container"><a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="%s product_type_%s single_add_to_cart_button button alt %s"><i class="fa fa-shopping-cart"></i>&nbsp; %s</a></div>', 
    esc_url($product->add_to_cart_url()), 
    esc_attr($product->id), 
    esc_attr($product->get_sku()), 
    esc_attr(isset($quantity) ? $quantity : 1), 
    $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', 
    esc_attr($product->product_type), 
    $product->product_type == 'simple' ? 'ajax_add_to_cart' : '', 
    esc_html($product->add_to_cart_text()) 
), 
+0

'//假設$ product-> type爲type屬性' '$ product-> product_type =='simple'? 'ajax_add_to_cart':'',' 正在訣竅! – xslibx

+0

我實際上已將其更改爲檢查產品類的條件,因爲您曾說過這是知道它是簡單還是可變的正確方法:) – lucasnadalutti

+0

編輯工作之前的第一個答案。只要它是'$ product-> product_type'而不是'$ product-> type' – xslibx

相關問題