2017-12-25 39 views
1

カートに追加ボタンにアイコン(テキストではありません)があります。 商品がWoocommerceのカートに入っている場合、カートのボタンスタイルに変更します

echo apply_filters('woocommerce_loop_add_to_cart_link', 
    sprintf('<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s fa fa-cart-plus">%s</a>' 

と項目がある場合には、私は彼の色を変更したいと思います:あなたがここに見ることができるように私は、アドオン・ツー・カートアンカーに追加ツーcart.phpファイルのアイコンのクラスを追加しましたすでにカートに入っています。
私は、任意のテキストなしアドオン・ツー・カートボタンを取得する機能を持っている、とだけでなく、私はカートであるアイテムIDを取得:何らかの理由で、私は」することができます素晴らしいですが、

add_filter('woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text'); // 2.1 + 
function woo_archive_custom_cart_button_text() { 

    global $woocommerce; 

    foreach($woocommerce->cart->get_cart() as $cart_item_key => $values) { 
     $_product = $values['data']; 

     if(get_the_ID() == $_product->id) { 
      return __('', 'woocommerce'); 
     } 
    } 
    return __('', 'woocommerce'); 

この新しい情報をアイコンスタイルを変更して使用する方法を考えないでください。私は新しいスタイルを 'エコー'しようとしましたが、CSS(またはjquery)の製品IDに関連付ける方法がわかりません。何か案は?


*これとは別の方法があります。アイテムがカートに追加されると、カートに追加されたアンカーには新しいクラスが追加されたので、CSSで簡単にカスタマイズすることができますが、動作しますが、 '追加'クラスはアイテムが追加されます。ページをリフレッシュした後は存在しません。したがって、私が行ったカスタマイズはもう影響を受けません。

+0

OK、私はそれを助ける私のquestion..Doesを編集しましたか? – yoD

+1

ありがとうございました!私はあなたの答えから学んだ – yoD

答えて

1

あなたがすることによって、それらを置き換え、直接あなたがすでに行っているたloop/add-to-cart.phpテンプレートにいくつかの変更を加える必要がある必要があります:あなたがターゲットとすることができること、これはあなたのボタンに追加is-addedが追加されます

if (! defined('ABSPATH')) { 
    exit; 
} 

global $product; 

// Your icon class is now here 
$add_class = ' fa fa-cart-plus'; 

// Loop through cart items 
foreach(WC()->cart->get_cart() as $cart_item) 
    // If the product is in cart 
    if($product->get_id() == $cart_item['product_id']) { 
     $add_class .= ' is-added'; // We add an additional class 
     break; 
    } 

$add_to_cart_text = ''; 

echo apply_filters('woocommerce_loop_add_to_cart_link', 
    sprintf('<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%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') . $add_class, 
     $add_to_cart_text 
    ), 
$product); 

CSSを使って色を変更してください。これはテストされ、動作します。

あなたはもうあなたの機能woo_archive_custom_cart_button_text()を必要としません...

関連する問題