Wordpress woocommerce可以';t使用$\u product->;获取“属性”(pa大小);

Wordpress woocommerce可以';t使用$\u product->;获取“属性”(pa大小);,wordpress,woocommerce,Wordpress,Woocommerce,在我的店面子主题中,在mini cart.php中,我想显示我的产品的size属性。这是代码上下文,您可以在其中看到这一行。我想我可以在foreach中的产品上使用获取属性(),但它返回了一个错误 foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $_product = apply_filters( 'woocommerce_cart_item_product

在我的店面子主题中,在
mini cart.php
中,我想显示我的产品的size属性。这是代码上下文,您可以在其中看到这一行。我想我可以在
foreach
中的
产品上使用
获取属性()
,但它返回了一个错误

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 );

            if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
                $product_name      = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
                $thumbnail         = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
                $product_price     = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
                $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
                ?>
               <li class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
                        <?php
                        echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
                            '<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s">&times;</a>',
                            esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
                            __( 'Remove this item', 'woocommerce' ),
                            esc_attr( $product_id ),
                            esc_attr( $cart_item_key ),
                            esc_attr( $_product->get_sku() )
                        ), $cart_item_key );
                        ?>
                        <?php
                        //split product name and color
                        $pattern = '/ [^a-zA-Z0-9 ]+| –/';
                        $matches = array();
                        $dummy = preg_match($pattern, $product_name, $matches);
                        $posi = strpos($product_name, $matches[0]);
                        $productnamename = substr($product_name, 0, $posi);
                        $dashAndProductcolor    = substr($product_name, $posi);
                        ?>
                        <?php if ( empty( $product_permalink ) ) : ?>
                            <?php echo $thumbnail; ?>
                            <?php echo '<span class="minicart-prod-name">'.$productnamename.'</span><br/>' ?>
                            <?php echo '<span class="minicart-prod-color">'.$dashAndProductcolor.'</span>' ?>
                        <?php else : ?>
                            <a href="<?php echo esc_url( $product_permalink ); ?>">
                                <?php echo $thumbnail; ?>
                                <?php echo '<span class="minicart-prod-name">'.$productnamename.'</span><br/>' ?>
<?php echo $_product->get_attributes("pa_size"); ?>
                                <?php echo '<span class="minicart-prod-color">'.$dashAndProductcolor.'</span>' ?>
                            </a>
                        <?php endif; ?>
                        <?php echo wc_get_formatted_cart_item_data( $cart_item ); ?>
                        <?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); ?>
                    </li>
foreach(WC()->cart->get_cart()作为$cart\u item\u key=>$cart\u item){
$\u product=apply\u过滤器('woocommerce\u cart\u item\u product'、$cart\u item['data']、$cart\u item、$cart\u item\u key);
$product\U id=应用\U过滤器('WOOMerce\U cart\U item\U product\U id'、$cart\U item['product\U id']、$cart\U item、$cart\U item\U key);
如果($\u产品和&$\u产品->存在()&&$cart\u项目['quantity']>0和应用过滤器('woocommerce\u widget\u cart\u项目可见',true,$cart\u项目,$cart\u项目\u key)){
$product\U name=应用\U过滤器('WOOMerce\u cart\u item\u name',$\u product->get\u name(),$cart\u item,$cart\u item\u key);
$thumbnail=应用过滤器('woocommerce\u cart\u item\u thumbnail',$\u product->get\u image(),$cart\u item,$cart\u item\u key);
$product\U price=应用\U过滤器('woocommerce\u cart\u item\u price',WC()->cart->get\u product\u price($\u product),$cart\u item,$cart\u item\u key);
$product\U permalink=apply\u过滤器('woocommerce\u cart\u item\u permalink',$\u product->is\u visible()?$\u product->get\u permalink($cart\u item):'',$cart\u item,$cart\u item\u key);
?>
我最终决定使用
并根据我的需要对文件
cart item data.php
进行微调,如下所示:

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

<?php foreach ( $item_data as $data ) : ?>
    <span class="<?php echo sanitize_html_class( 'variation-' . $data['key'] ); ?>"><?php echo wp_kses_post( wpautop( $data['display'] ) ); ?></span>
<?php endforeach; ?>
if(!defined('ABSPATH')){
出口
}
?>

包括完整的堆栈跟踪和完整的自定义模板代码,以查看此代码行的位置。很抱歉,我的第一版很短。我认为在$产品上使用get\u属性是一个很好的做法!