2016-09-29 36 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

相关问题