【问题标题】:Add custom field to "Additional Information" tab (WooCommerce)将自定义字段添加到“附加信息”选项卡 (WooCommerce)
【发布时间】:2018-09-12 00:40:52
【问题描述】:

我正在尝试使用 ACF 将自定义属性添加到 WooCommerce 中产品的“附加信息”选项卡。我希望管理员能够上传 PDF,然后应该在“附加信息”选项卡中的表格中设置和链接。

我在 WooCommerce 的插件目录中找到了属性的默认模板,更准确地说是 woocommerce/templates/single-product/product-attributes.phpThis is how the template looks。我可以轻松地将 the_field("pdf") 放在那里以显示自定义字段,但我遇到的问题是附加信息选项卡只会显示是否已通过 WooCommerce 添加属性。

有什么方法可以为何时显示“附加信息”选项卡添加附加条件标记?如果我能以某种方式将if (get_field("pdf")) 添加到该代码中,我认为这将得到解决。

【问题讨论】:

    标签: php wordpress woocommerce tabs product


    【解决方案1】:

    更新:在 Woocommerce 中,如果存在任何尺寸、重量或产品属性(设置为显示在产品上),将显示“附加信息”标签... p>

    因此,如果选项卡已隐藏,并且您在 single-product/product-attributes.php 模板上添加了要显示的自定义字段 get_field("pdf")具有值,您可以强制“附加信息”标签出现使用:

    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 字段?跨度>
    • 成功了!我不得不将isset(get_field("pdf")) 更改为null !== get_field("pdf"),但为了摆脱告诉我isset 不能在get_field() 上使用的错误。因此,如果这是真的,也许应该在您的答案中进行更改。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 2018-05-21
    • 2021-06-28
    • 2020-06-09
    • 1970-01-01
    • 2015-12-30
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多