我正在尝试向第二个产品标签添加一些属性,但是我不能。我在Wordpress的Woocommerce产品页面上有6个属性,我想在第一个标签中显示3个属性,在第二个标签中显示其他3个属性。有人可以指导我正确的方法吗?
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
global $product;
if( $product->has_attributes() ) {
$tabs['additional_information']['title'] = __( 'Product Info' );
}
return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
$tabs['test_tab'] = array(
'title' => __( 'Details', 'woocommerce' ),
'priority' => 50,
'callback' => 'woo_new_product_tab_content'
);
return $tabs;
}
function woo_new_product_tab_content() {
// The new tab content
????Please help on this lines?????
}
答案 0 :(得分:0)
您需要更改 product-attributes.php ,您可以在其中找到
woocommerce>单一产品> product-attributes.php
如果您的子主题中没有该主题,则创建一个主题并将 product-attributes.php 内容复制到新文件中。
我们将使用此文件包括要在其他信息标签中显示的某些属性。
然后在同一目录中创建另一个 product-attributes.php 文件,我们将其称为 product-attributes-custom.php
我们将使用此文件显示您其余的属性。
现在,在新功能中添加以下行:
function woo_new_product_tab_content()
{
global $product;
wc_get_template('single-product/product-attributes-custom.php', array(
'product' => $product,
'attributes' => array_filter($product->get_attributes(), 'wc_attributes_array_filter_visible'),
'display_dimensions' => '',
));
}
现在打开第一个 product-attributes.php 文件,然后转到第40行,您可以在其中找到以下内容:
<?php foreach ($attributes as $attribute): ?>
并将其更改为以下内容:
<?php foreach ($attributes as $attribute):
$att = ['att1' , 'att2' , 'att3' ]; // Here you can define what attribute you want to display in the tab content
if (in_array($attribute->get_name(), $att)):
?>
,然后找到包含以下代码的行:
<?php endforeach; ?>
并将其更改为:
<?php endif;endforeach;?>
最后打开第二个文件 product-attributes-custom.php
并执行与上一个相同的操作,并将要显示的其余属性添加到新标签中:
<?php foreach ($attributes as $attribute): ?>
并将其更改为以下内容:
<?php foreach ($attributes as $attribute):
$att = ['att4' , 'att5', 'att6']; // Here you can define what attribute you want to display in the tab content
if (in_array($attribute->get_name(), $att)):
?>
,然后找到包含以下代码的行:
<?php endforeach; ?>
并将其更改为:
<?php endif;endforeach;?>
就这样:)