Как читать атрибут продукта woocommerce, если условие

Я пытаюсь написать условие if для WordPress Woocommerce PHP читает текстовую строку, если для определенного слова тогда условие else возвращает false.

Вот пример, который я ищу: cart.php

 <?php /** * Cart Page * * @author WooThemes * @package WooCommerce/Templates * @version 2.3.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } wc_print_notices(); do_action( 'woocommerce_before_cart' ); ?> <form id="cart-table" action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post"> <?php do_action( 'woocommerce_before_cart_table' ); ?> <table class="shop_table cart" cellspacing="0"> <thead> <tr> <th class="product-remove">&nbsp;</th> <th class="product-thumbnail">&nbsp;</th> <th class="product-name"><?php _e('Product', 'yit'); ?></th> <th class="product-price"><?php _e('Price', 'yit'); ?></th> <th class="product-quantity"><?php _e('Quantity', 'yit'); ?></th> <th class="product-subtotal"><?php _e('Total', 'yit'); ?></th> </tr> </thead> <tbody> <?php do_action( 'woocommerce_before_cart_contents' ); ?> <?php foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); $attributes = $_product->get_attributes(); if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) { ?> <tr class = "<?php echo esc_attr( apply_filters('woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>"> <td class="product-remove"> <?php echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf('<a href="%s" class="remove" title="%s">&times;</a>', esc_url( WC()->cart->get_remove_url( $cart_item_key ) ), __('Remove this item', 'yit') ), $cart_item_key ); ?> </td> <td class="product-thumbnail"> <?php $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); if ( ! $_product->is_visible() ) echo $thumbnail; else printf( '<a href="%s">%s</a>', $_product->get_permalink( $cart_item ), $thumbnail ); ?> </td> <td class="product-name"> <?php if ( ! $_product->is_visible() ) echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); else echo apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', $_product->get_permalink( $cart_item ), $_product->get_title() ), $cart_item, $cart_item_key ); // Meta data Remove 'lala' from echo here by Rupom echo ''. WC()->cart->get_item_data( $cart_item ); // Backorder notification if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) echo '<p class="backorder_notification">' . __('Available on backorder', 'yit') . '</p>'; ?> </td> <td class="product-price"> <?php echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); ?> </td> <td class="product-quantity"> <?php if ( $_product->is_sold_individually() ) { $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key ); } elseif ( $_product->is_type('simple') ){ $product_quantity = woocommerce_quantity_input( array( 'input_name' => "cart[{$cart_item_key}][qty]", 'input_value' => $cart_item['quantity'], 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), 'min_value' => '0' ), $_product, false ); } elseif(isset($attributes['Color'])){ $product_quantity = woocommerce_quantity_input( array( 'input_name' => "cart[{$cart_item_key}][qty]", 'input_value' => $cart_item['quantity'], 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), 'min_value' => '0' ), $_product, false ); }else{ $product_quantity = sprintf( '<input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key ); } echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key ); ?> </td> <td class="product-subtotal"> <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?> </td> </tr> <?php } } do_action( 'woocommerce_cart_contents' ); ?> <tr> <td colspan="6" class="actions"> <?php if ( WC()->cart->coupons_enabled() ) { ?> <div class="coupon"> <label for="coupon_code"><?php _e('Coupon', 'yit'); ?>:</label> <input name="coupon_code" class="input-text" id="coupon_code" value="" /> <input type="submit" class="button" name="apply_coupon" value="<?php _e('Apply Coupon', 'yit'); ?>" /> <?php do_action('woocommerce_cart_coupon'); ?> </div> <?php } ?> <input type="submit" class="button" name="update_cart" value="<?php _e('Update Cart', 'yit'); ?>" /> <input type="submit" class="checkout-button button alt" name="proceed" value="<?php _e('Proceed to Checkout &rarr;', 'yit'); ?>" /> <?php do_action('woocommerce_cart_actions'); ?> <?php wp_nonce_field( 'woocommerce-cart') ?> </td> </tr> <?php do_action( 'woocommerce_after_cart_contents' ); ?> </tbody> </table> <?php do_action( 'woocommerce_after_cart_table' ); ?> </form> <div class="cart-collaterals row-fluid"> <?php do_action('woocommerce_cart_collaterals'); ?> <?php //woocommerce_cart_totals(); ?> <?php woocommerce_shipping_calculator(); ?> </div> <?php do_action( 'woocommerce_after_cart' ); ?> 

ВИДЕТЬ КОЛИЧЕСТВО:

 <td class="product-quantity"> <?php if ( $_product->is_sold_individually() ) { $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key ); } elseif ( $_product->is_type('simple') ){ $product_quantity = woocommerce_quantity_input( array( 'input_name' => "cart[{$cart_item_key}][qty]", 'input_value' => $cart_item['quantity'], 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), 'min_value' => '0' ), $_product, false ); } elseif(isset($attributes['Color'])){ $product_quantity = woocommerce_quantity_input( array( 'input_name' => "cart[{$cart_item_key}][qty]", 'input_value' => $cart_item['quantity'], 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), 'min_value' => '0' ), $_product, false ); }else{ $product_quantity = sprintf( '<input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key ); } echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key ); ?> </td> 

ВИДЕТЬ РЕЗУЛЬТАТ Пожалуйста помоги. что должно быть условием if для атрибута продукта.

Я считаю, что вы ищете isset() :

 if ( isset($attributes['Color']) ){ 

Или, если вы ищете определенный цвет:

 if ( isset($attributes['Color']) && $attributes['Color'] == 'somecolor' ){ 

Если вы ищете определенный цвет, то вы также можете использовать –

 global $product; $color = $product->get_attribute( 'Color' ); 

а затем проверьте условие if .

РЕДАКТИРОВАТЬ:

Если вы находитесь на странице корзины, то global $product бесполезен для вас. Вам нужно будет перебрать массив продуктов, добавленных в корзину, а затем проверить атрибуты.

Смотрите, если приведенный ниже код поможет вам –

  global $woocommerce; $cart = $woocommerce->cart->get_cart(); foreach ( $cart as $key => $values ) { $product = $values['data']; $attributes = $product->get_attributes(); if(isset($attributes['Color'])){ //can use in_array() as well //Something } else{ //Another Something } } 

Вам нужно будет поставить выше код в функцию и подключиться к соответствующему фильтру WooCommerce.