WooCommerce में आइटम कार्ट में होने पर कार्ट बटन की नई शैली
मैं एक कोड का उपयोग करता हूं जो किसी उत्पाद के लिए "कार्ट में जोड़ें" बटन के पाठ को बदलता है यदि आइटम कार्ट में पहले से है।
/* 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;
}
मुझे बताएं कि आप उत्पाद में "कार्ट में जोड़ें" बटन की शैली को कैसे बदल सकते हैं यदि उत्पाद पहले से ही कार्ट में जोड़ा गया है?
मैंने /loop/add-to-cart.php फ़ाइल में कोड जोड़ने की कोशिश की, जैसा कि यहां दिखाया गया है जब कार्ट में वोकॉमर्स में उत्पाद होता है तो कार्ट बटन शैली में बदलाव करें, लेकिन यह मेरे लिए काम नहीं करता है।
क्या कोई अन्य कोड विकल्प हैं जो मेरे प्रश्न को हल करने में मदद करेंगे?
मुझे आपकी मदद के लिए खुशी होगी!
जवाब
एक तरीका यह है jQuery
कि क्या एक निश्चित तत्व (आपके ऐड-टू-कार्ट बटन) के माध्यम से जांच की जाती है , यदि यह मामला है, तो हम एक अतिरिक्त वर्ग जोड़ेंगे, जिसके माध्यम से आप शैली बना सकते हैं CSS
।
: शामिल हैं () चयनकर्ता - उन सभी तत्वों का चयन करें जिनमें निर्दिष्ट पाठ शामिल है।
तो आप प्राप्त करें:
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' );
नोट: चयनकर्ता (वर्ग) को आपके द्वारा उपयोग किए जा रहे विषय के आधार पर अलग-अलग नाम दिया जा सकता है