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

标签 php wordpress woocommerce product inventory

所以我有以下函数可以在“产品库存”选项卡中添加条形码字段。不过,此字段是在所有其他内容之后添加的,我希望将其添加在 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 之前(即实际 Hook 之前),就像 woocommerce_before_product_options_inventory_product_data 中的内容一样?

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

最佳答案

IS NOT POSSIBLE TO PLACE ANY CUSTOM FIELD BEFORE THE SKU

You can take a look to html-product-data-inventory.php source code file which displays product inventory fields.

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

为此,您必须将自定义函数 Hook 到 woocommerce_product_options_sku 操作 Hook 中。您的代码中还缺少一些内容来显示保存的值。

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

这是完整的代码:

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+

关于php - 在 WooCommerce 产品选项编辑页面中,在 SKU 之前显示自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698813/

相关文章:

php - 从产品变体标题中删除属性值并将它们显示在单独的行中

php - PDO 异常 "Could not find driver"(pgsql)

php - mysql 查询中奇怪的额外等号。我该如何删除它?

php - 更新wordpress sql中的两行

php - 如何在联系表 7 中提交表单后重定向?

wordpress - Woocommerce REST API 如何发送自定义元数据?

php - 从Docker容器访问Nginx时出现502错误的网关

javascript - 使用纯 JS 或 jQuery 在 JavaScript 中反序列化 HTML 中的数据

php - Wordpress 3.9.x - 从图形元素中删除内联宽度

php - 将产品添加到 WooCommerce 单一产品的购物车后触发 JQuery 单击