是否可以在后端的WooCommerce产品页面中添加一些额外的字段,因为我需要添加12个自定义字段.
我试图找到一些相关的钩子没有成功.我发现的唯一方法是属性,但它不是一个方便的解决方案……
如何在运送选项卡中将自定义字段添加到WooComerce产品设置页面?
谢谢.
解决方法:
这是可能的,你会得到这个(这里我已设置为自定义文本字段):
这是代码:
// Add custom fields to product shipping tab
add_action( 'woocommerce_product_options_shipping', 'add_custom_shipping_option_to_products');
function add_custom_shipping_option_to_products(){
global $post, $product;
echo '</div><div class="options_group">'; // New option group
woocommerce_wp_text_input( array(
'id' => '_custom_text_field1',
'label' => __( 'My Text Field one', 'woocommerce' ),
'placeholder' => 'something',
'desc_tip' => 'true',
'description' => __( 'Enter the custom value here.', 'woocommerce' ),
'value' => get_post_meta( $post->ID, '_custom_meta_field1', true ),
) );
woocommerce_wp_text_input( array(
'id' => '_custom_text_field2',
'label' => __( 'My Text Field two', 'woocommerce' ),
'placeholder' => 'something',
'desc_tip' => 'true',
'description' => __( 'Enter the custom value here.', 'woocommerce' ),
'value' => get_post_meta( $post->ID, '_custom_meta_field2', true ),
) );
}
// Save the custom fields values as meta data
add_action( 'woocommerce_process_product_meta', 'save_custom_shipping_option_to_products' );
function save_custom_shipping_option_to_products( $post_id ){
$custom_text_field1 = $_POST['_custom_text_field1'];
if( isset( $custom_text_field1 ) )
update_post_meta( $post_id, '_custom_meta_field1', esc_attr( $custom_text_field1 ) );
$custom_text_field2 = $_POST['_custom_text_field2'];
if( isset( $custom_text_field2 ) )
update_post_meta( $post_id, '_custom_meta_field2', esc_attr( $custom_text_field2 ) );
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.
此代码在WooCommerce 3上进行测试并正常运行