Ürün, WooCommerce'de alışveriş sepetindeyken yeni alışveriş sepeti düğmesi stili
Öğe zaten alışveriş sepetindeyse, bir ürün için "Sepete Ekle" düğmesinin metnini değiştiren bir kod kullanıyorum.
/* for single product */
add_filter( 'woocommerce_product_single_add_to_cart_text', 'single_product_button_text' );
function single_product_button_text( $text ) { if( WC()->cart->find_product_in_cart( WC()->cart->generate_cart_id( get_the_ID() ) ) ) { $text = 'Product in cart';
}
return $text; } /* for archive/category pages */ add_filter( 'woocommerce_product_add_to_cart_text', 'products_button_text', 20, 2 ); function products_button_text( $text, $product ) { if( $product->is_type( 'simple' )
&& $product->is_purchasable() && $product->is_in_stock()
&& WC()->cart->find_product_in_cart( WC()->cart->generate_cart_id( $product->get_id() ) ) ) { $text = 'Product in cart';
}
return $text;
}
Ürün sepete zaten eklenmişse, bir ürün için "Sepete Ekle" düğmesinin stilini nasıl değiştirebileceğinizi söyle.
Burada gösterildiği gibi /loop/add-to-cart.php dosyasına kod eklemeyi denedim. Ürün Woocommerce'de alışveriş sepetindeyken sepete ekle düğmesi stilini değiştir ancak benim için çalışmıyor.
Sorumun çözülmesine yardımcı olacak başka kod seçenekleri var mı?
Yardımın için sevineceğim!
Yanıtlar
Bunun bir yolu, jQuery
belirli bir öğenin (sepete ekle düğmeniz) belirli bir metin içerip içermediğini kontrol etmektir; bu durumda, biçimlendirebileceğiniz ekstra bir sınıf ekleyeceğiz CSS
.
: içerir () Seçici - Belirtilen metni içeren tüm öğeleri seçin.
Böylece şunları elde edersiniz:
function action_wp_footer() {
?>
<script>
jQuery(document).ready(function($) { var selector = '.add_to_cart_text:contains("Product in cart")'; // Selector contains specific text if ( $( selector ).length > 0 ) {
$( selector ).addClass( 'product-is-added' ); } else { $( selector ).removeClass( 'product-is-added' );
}
});
</script>
<?php
}
add_action( 'wp_footer', 'action_wp_footer' );
Not: Seçici (sınıf), kullandığınız temaya bağlı olarak farklı şekilde adlandırılabilir.