在 WooCommerce 产品选项编辑页面中,在 SKU 之前显示一个自定义字段
In WooCommerce product options edit page display a custom field before the 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');
有没有办法把 function/field 放在 SKU 之前,也就是在实际挂钩之前,就像 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 字段之后显示您的 'Barcode' 自定义字段 (例如)
为此,您必须在 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+
所以我得到了以下功能,可以在“产品库存”选项卡中添加条形码字段。但是,此字段是在所有其他内容之后添加的,我希望在 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');
有没有办法把 function/field 放在 SKU 之前,也就是在实际挂钩之前,就像 woocommerce_before_product_options_inventory_product_data 一样?
感谢您提前提出任何建议。
IS NOT POSSIBLE TO PLACE ANY CUSTOM FIELD BEFORE THE SKU
You can take a look tohtml-product-data-inventory.php
source code file which displays product inventory fields.
但是您可以在 SKU 字段之后显示您的 'Barcode' 自定义字段 (例如)
为此,您必须在 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+