简体   繁体   中英

Change the “Quantity” text in the woocommerce cart page when 2 products from different categories

So i'll try to be as specific as possible, I have 2 different categories on my woocommerce, each category has a different label:

1.Instead of "quantity" -> "LABEL1".

2.Instead of "quantity" -> "LABEL2".

I've done this by modifying the quantity-input.php :

if (is_page('cart') || is_cart()) {
            // If it's the cart page do this
            foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
                // If Cart has category "CATEGORYNAME" do this
                if (has_term('CATEGORYNAME', 'product_cat', $cart_item['product_id'])) {
                    esc_html_e('LABEL1', 'woocommerce');
                } else {
                    esc_html_e('LABEL2', 'woocommerce');
                }
            }
        }

So this works when the clients only adds products from one category , but when he adds a product from the other category i get LABEL1LABEL2.

Shouldn't the foreach loop , loop for through the categories and give me a different label?

I've been searching but i can't find a solution for this specific thing.

Alright i fixed this , i was wrong trying to loop in the quantity-input.php file ,

I fixed it by modifying the cart.php . Here is what i did:

echo apply_filters('woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item); 

//Add this after this line:

if ($_product->get_category_ids()[0] == 99) {
                    echo '<div>';
                    esc_html_e('LABEL1', 'woocommerce');
                    echo '</div>';
                } else {
                    echo '<div>';
                    esc_html_e('LABEL2', 'woocommerce');
                    echo '</div>';
                }

Thanks for the help!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM