如何添加文本输入字段,以便客户在单个WooCommerce产品页面上留下备注? 时间:2019-03-19 作者:hamburger 我正在使用WordPress、WooCommerce和一个名为Storefront的主题构建一个小网站。我想为客户添加在产品页面上为产品供应商添加自定义注释的功能。注释是可选的。它可以选择性地在产品上绣上个人信息,一件衣服。我是否应该创建一个隐藏的WooCommerce字段,以便使用jQuery将数据复制并粘贴到其中您是否想到了支持WP核心或WooCommerce的功能 1 个回复 最合适的回答,由SO网友:Cadu De Castro Alves 整理而成 扩展WordPress和WooCommerce的最佳方法是使用hooks. 要在“产品”区域中添加自定义选项字段,可以使用以下挂钩:woocommerce_product_options_advanced: 用于在“高级”选项卡中添加自定义字段woocommerce_process_product_meta: 用于在计算机上保存/更新数据库中的字段数据functions.php, 您可以添加以下代码:/* create a new product field*/ add_action( \'woocommerce_product_options_advanced\', \'personalization_product_options_adv\' ); function personalization_product_options_adv() { echo \'<div class="options_group">\'; woocommerce_wp_textarea_input( array( \'id\' => \'product_personalization_note\', \'value\' => get_post_meta( get_the_ID(), \'product_personalization_note\', true ), \'label\' => \'Personalization Note\', \'desc_tip\' => true, \'description\' => \'Allow product personalization for select products\', ) ); echo \'</div>\'; } /* save & update the changes*/ add_action( "woocommerce_process_product_meta", "personalization_save_fields" ); function personalization_save_fields( $post_id ) { // grab the custom data from $_POST $product_personalization_note = isset( $_POST[ \'product_personalization_note\' ] ) ? sanitize_text_field( $_POST[ \'product_personalization_note\' ] ) : \'\'; // grab the product $product = wc_get_product( $post_id ); // save the custom data using WooCommerce built-in functions $product->update_meta_data( \'product_personalization_note\', $product_personalization_note ); //save $product->save(); } /* display the new field on single product pages */ function woocommerce_custom_fields_display() { global $post; $product = wc_get_product($post->ID); $custom_fields_woocommerce_title = $product->get_meta(\'product_personalization_note\'); if ($custom_fields_woocommerce_title) { printf( \'<div><label>%s</label><input type="text" id="woocommerce_product_custom_fields_title" name="woocommerce_product_custom_fields_title" value=""></div>\', esc_html($custom_fields_woocommerce_title) ); } } add_action(\'woocommerce_before_add_to_cart_button\', \'woocommerce_custom_fields_display\'); 要在前端或WooCommerce发送的电子邮件中检索此数据,您可以使用get_post_meta() 功能如下:$product_additional_note = get_post_meta( get_the_ID(), \'product_additional_note \', true ); 资料来源:Extending WooCommerce Products With Custom FieldsHow to add custom fields to WooCommerce Product Data metabox 文章导航