2016-09-29 8 views
1

クラスをWooCommerceカートに追加ボタンに追加しようとしています。WooCommerceにクラスを追加するカートボタンに追加ボタン(「オプションを選択」ボタンでない場合のみ)

私はここでwoocommerce/loop/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>&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); 

に私のアドオンツーcart.phpファイルを変更するものです<a>ajax_add_to_cartクラスは単純な製品に適用され、「オプションを選択」テキストのボタンを持つ変数製品には適用されません。他のすべての変更を両方のボタンに適用したいと思います。

どうすればいいですか?

+0

どのように製品がシンプルか変数かを教えてください。いくつかの特定の属性ですか? – lucasnadalutti

+0

カートに追加ボタン(「カートに追加」と「オプションを選択」の両方)を調べました。変数product( "Select options"ボタン)にクラスproduct_type_variableがあり、シンプルな商品( "Add to cart"ボタン)にクラスproduct_type_simpleがあることはわかります 'ajax_add_to_cart'クラスは' add-to-cart.php'ファイルを作成し、正しいボタンにクラスを追加するためにjQueryを使います $( '。products .product_type_simple')addClass( "ajax_add_to_cart"); – xslibx

+0

さて、あなたが私の答えで示唆したように私はあなたが行うことを提案したいPHPコードにアクセスしている場合。私はこれがより洗練されていると思います。なぜなら、ロジック全体を1か所に残すからです。 – lucasnadalutti

答えて

1

の代わりにajax_add_to_cartを置き換え、sprintf機能にもう1つのパラメータを追加してください。

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を型プロパティ ' ' $ product-> product_type ==' simple 'と仮定しますか? 'ajax_add_to_cart': ''、 ' トリックをしています! – xslibx

+0

これは実際には、製品クラスをチェックする条件に変更しました。これは、これが単純か可変かを知る正しい方法だと言っていたからです。 – lucasnadalutti

+0

編集前の最初の回答が機能しました。 '$ product-> type_t'ではなく' $ product-> product_type'である限り、 – xslibx

関連する問題