在WooCommerce产品选项编辑页面中,在SKU之前显示自定义字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WooCommerce产品选项编辑页面中,在SKU之前显示自定义字段相关的知识,希望对你有一定的参考价值。

所以我有以下功能在“产品清单”选项卡中添加条形码字段。但是这个字段是在所有其他内容之后添加的,我希望在SKU代码之前有这个。

function add_barcode(){
    global $woocommerce,$post;
    woocommerce_wp_text_input(
        array(
            'id'          => '_barcode',
            'label'       => __('Barcode','woocommerce'),
            'placeholder' => 'Scan Barcode',
            'desc_tip'    => 'true',
            'description' => __('Scan barcode.','woocommerce')
        ));
}
add_action('woocommerce_product_options_inventory_product_data','add_barcode');

无论如何将函数/字段放在SKU之前,也就是在实际挂钩之前,就像woocommerce_before_product_options_inventory_product_data?

感谢您提前提出的任何建议。

答案

在SKU之前不可能放置任何自定义场 您可以查看显示产品库存字段的html-product-data-inventory.php source code file。

但您可以在SKU字段之后显示“条形码”自定义字段(例如)

为此,你必须在woocommerce_product_options_sku动作钩子中挂钩自定义函数。您的代码中还有一些缺少的东西用于显示保存的值。

最后,在保存或更新产品时,您需要另一个功能来保存该值。

这是完整的代码:

add_action('woocommerce_product_options_sku','add_barcode_custom_field' );
function add_barcode_custom_field(){
    woocommerce_wp_text_input( array(
        'id'          => '_barcode',
        'label'       => __('Barcode','woocommerce'),
        'placeholder' => 'Scan Barcode',
        'desc_tip'    => 'true',
        'description' => __('Scan barcode.','woocommerce')
    ) ); 
}

add_action( 'woocommerce_process_product_meta', 'save_barcode_custom_field', 10, 1 );
function save_barcode_custom_field( $post_id ){
    if( isset($_POST['_barcode']) )
        update_post_meta( $post_id, '_barcode', esc_attr( $_POST['_barcode'] ) );
}

此代码位于活动子主题(或主题)的function.php文件中,或者也可以放在任何插件文件中。

此代码经过测试,适用于WooCommerce版本2.6+和3.0+

以上是关于在WooCommerce产品选项编辑页面中,在SKU之前显示自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce,如何编辑结帐页面

WooCommerce 产品循环中添加 Ajax 选项的复选框添加到购物车

在常规单个产品页面的自定义选项卡中显示“相关产品”

在 Woocommerce 的产品页面中隐藏特定标签

更新变体产品价格 - 在产品页面中不可见 - Woocommerce

在 WooCommerce 单一产品页面上为特定产品添加自定义内容