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">×</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 × %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属性是一个很好的做法!