将自定义字段添加到“附加信息”选项卡(WooCommerce)

3
我正在尝试使用ACF为WooCommerce产品的“附加信息”选项卡添加自定义属性。我希望管理员能够上传PDF文件,并将其设置并链接到“附加信息”选项卡中的表格中。
我在WooCommerce插件目录中找到了属性的默认模板,更具体地说是woocommerce/templates/single-product/product-attributes.php这是模板的样子。我可以轻松地将the_field("pdf")放在那里以显示自定义字段,但我遇到的问题是,只有通过WooCommerce添加属性才会显示“附加信息”选项卡。
是否有一些方法添加其他条件标签以显示“附加信息”选项卡?如果我可以在那段代码中添加if (get_field("pdf")),我认为这个问题就可以解决了。
1个回答

3

更新: 在Woocommerce中,如果存在任何尺寸、重量或产品属性(设置为显示在产品上),则将显示“附加信息”选项卡…

因此,如果选项卡被隐藏并且您已经添加了一个自定义字段get_field("pdf")以在单个产品/产品属性.php模板中显示该字段有值,您可以使用以下方式强制“附加信息”选项卡出现:

add_filter( 'woocommerce_product_tabs', 'woo_customize_tabs', 100, 1 );
function woo_customize_tabs( $tabs ) {
    if( ! isset($tabs['additional_information']) && null !== get_field("pdf") ){
        $tabs['reviews']['priority'] = 30;
        $reviews = $tabs['reviews'];
        unset($tabs['reviews']);
        $tabs['additional_information'] = array(
            'title'     => __( 'Additional information', 'woocommerce' ),
            'priority'  => '20',
            'callback'  => 'woocommerce_product_additional_information_tab',
        );
        $tabs['reviews'] = $reviews;
    }
    return $tabs;
}

代码放在您的活动子主题(或活动主题)的function.php文件中。已测试并可用。


有没有办法使用 get_field("pdf") 代码,并在特定产品的尺寸属性设置或“pdf”ACF字段设置时显示附加信息选项卡? - tobiasg
1
成功了!不过我必须将 isset(get_field("pdf")) 更改为 null !== get_field("pdf"),以消除一个错误提示我无法在 get_field() 上使用 isset。如果这是真的,那么也许你的答案应该做出更改。非常感谢你的帮助! - tobiasg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接