Woocommerce “将类添加到购物车”按钮(仅当它不是“选择选项”按钮时)
我正在尝试向“添加到购物车”按钮添加一个类 我可以通过Woocommerce “将类添加到购物车”按钮(仅当它不是“选择选项”按钮时),woocommerce,Woocommerce,我正在尝试向“添加到购物车”按钮添加一个类 我可以通过woocmerce/loop/Add to cart.php 以下是我将add-to-cart.php文件更改为 /** * Loop Add to Cart * * @author WooThemes * @package WooCommerce/Templates * @version 2.1.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; //
woocmerce/loop/Add to cart.php
以下是我将add-to-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> %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 );
/**
*循环添加到购物车
*
*@author-WooThemes
*@package/Templates
*@version 2.1.0
*/
如果(!已定义('ABSPATH')){
exit;//如果直接访问,则退出
}
全球$产品;
回显应用过滤器('woocommerce\u loop\u add\u to\u cart\u link',
sprintf(“”,
esc_url($product->add_to_cart_url()),
esc_attr($product->id),
esc_attr($product->get_sku()),
esc_属性(isset($数量)?$数量:1),
$product->is_purchable()&&&$product->is_in_stock()?“添加到购物车按钮”:“,
esc_attr($product->product_type),
esc_html($product->add_to_cart_text())
),
$product);
我只希望
中的ajax\u add\u to\u cart
类应用于简单产品,而不是带有“选择选项”文本按钮的可变产品。但我希望所有其他更改都应用于这两个按钮
如何做到这一点?为
%s
替换ajax\u添加到购物车
,并为您的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> %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() )
),
sprintf(“”,
esc_url($product->add_to_cart_url()),
esc_attr($product->id),
esc_attr($product->get_sku()),
esc_属性(isset($数量)?$数量:1),
$product->is_purchable()&&&$product->is_in_stock()?“添加到购物车按钮”:“,
esc_attr($product->product_type),
$product->product_type=='simple'?'ajax_add_to_cart':'',
esc_html($product->add_to_cart_text())
),
如何区分产品是简单的还是可变的?一些特定属性?我检查了添加到购物车按钮(“添加到购物车”和“选择选项”)。我确实知道可变产品(“选择选项”按钮)有一个类产品类型\u变量
和一个简单产品(“添加到购物车”按钮)有一个类product\u-type\u-simple
我为此做的一项工作是从add-to-cart.php
文件中删除ajax\u-add\u-to-cart
类,并使用jQuery将该类添加到正确的按钮$('.products.product\u-type\u-simple').addClass(“ajax\u-add-to-to-cart”);好吧,如果你确实可以访问PHP代码,我建议你按照我在回答中的建议去做。我认为这更简洁,因为您将把整个逻辑放在一个地方。//假设$product->type作为type属性
$product->product\u type=='simple'?'ajax\u add\u to\u cart':'',
正在发挥作用!实际上,我将其更改为检查product类的条件,因为您说过这是判断它是简单的还是可变的正确方法:)编辑之前的第一个答案有效。只要它是$product->product\u type
而不是$product->type
很好,我会把它改回来的谢谢。非常感谢!