为 woocommerce 产品选项卡上的自定义字段设置优先级

Set priority for custom fields on woocommerce product tabs

我想在产品比较简单的情况下,在通用数据选项卡中添加两个自定义字段。 但是,我希望这些自定义字段显示在列表顶部。

我试过在挂钩中设置优先级,但那不起作用。

所以我有以下内容:

function add_options_simple() {
    global $woocommerce, $post;
    $id = $post->ID;
    $product = wc_get_product($id)->get_type();
    if ($product == 'simple'){
    woocommerce_wp_text_input(
        array(
            'id'          => '_brand',
            'label'       => 'Brand',
            'type'        => 'text',
        )
    );
    woocommerce_wp_text_input(
        array(
            'id'          => '_EAN',
            'label'       => 'EAN:',
            'type'        => 'text',
        )
    );
    }
}
add_action( 'woocommerce_product_options_general_product_data', 'add_options_simple',1,3 );

但是没有成功。 有什么建议吗?

无法将这些字段添加到顶部。如你所见here

不过你可以试试 jQuery。试试下面的代码。

function add_options_simple() {
    global $woocommerce, $post;
    $id = $post->ID;
    $product = wc_get_product($id)->get_type();
    if ($product == 'simple'){ ?>
        <div class="options_group brand_ean show_if_simple hidden">
            <?php
            woocommerce_wp_text_input(
                array(
                    'id'          => '_brand',
                    'label'       => 'Brand',
                    'type'        => 'text',
                )
            );
            woocommerce_wp_text_input(
                array(
                    'id'          => '_EAN',
                    'label'       => 'EAN:',
                    'type'        => 'text',
                )
            ); 
           ?>
        </div>
        <script type="text/javascript">
            var brand_ean = jQuery('.brand_ean')[0].outerHTML;
            jQuery('.brand_ean').remove();
            jQuery( brand_ean ).insertBefore('.options_group.pricing');
        </script>
    <?php }
}
add_action( 'woocommerce_product_options_general_product_data', 'add_options_simple', 1, 3 );

已测试并有效