【问题标题】:Wordpress Woocommerce custom fieldWordpress Woocommerce 自定义字段
【发布时间】:2017-11-05 05:57:03
【问题描述】:

我正在尝试在单一产品和可变产品(自定义字段价格应根据所选变量选项更改)的 woo-commerce 中创建自定义字段(对插件不感兴趣),因为该客户应该能够输入价格显示在 1st 图片中,客户可以检查该选项。

我的要求

// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woocom_general_product_data_custom_field' );

function woocom_general_product_data_custom_field() {
  // Create a custom text field

  // Text Field
  woocommerce_wp_text_input( 
    array( 
      'id' => '_text_field', 
      'label' => __( 'Enter your choose', 'woocommerce' ), 
      'placeholder' => 'Custom text field',
      'desc_tip' => 'true',
      'description' => __( 'Enter the custom value here.', 'woocommerce' ) 
    )
  );

  // Number Field
  woocommerce_wp_text_input( 
    array( 
      'id' => '_number_field', 
      'label' => __( 'Enter your number', 'woocommerce' ), 
      'placeholder' => '', 
      'description' => __( 'Enter the custom value here.', 'woocommerce' ),
      'type' => 'number', 
      'custom_attributes' => array(
         'step' => 'any',
         'min' => '15'
      ) 
    )
  );

  // Checkbox
  woocommerce_wp_checkbox( 
    array( 
      'id' => '_checkbox', 
      'label' => __('Select', 'woocommerce' ), 
      'description' => __( 'Check me!', 'woocommerce' ) 
    )
  ); 

  // Select
  woocommerce_wp_select( 
    array( 
      'id' => '_select', 
      'label' => __( 'option', 'woocommerce' ), 
      'options' => array(
         '1' => __( 'Custom Option 1', 'woocommerce' ),
         '2' => __( 'Custom Option 2', 'woocommerce' ),
        '3' => __( 'Custom Option 3', 'woocommerce' )
      )
    )
  );

  // Textarea
  woocommerce_wp_textarea_input( 
     array( 
       'id' => '_textarea', 
       'label' => __( 'Description', 'woocommerce' ), 
       'placeholder' => '', 
       'description' => __( 'Enter the custom value here.', 'woocommerce' ) 
     )
 );

}

// Hook to save the data value from the custom fields
add_action( 'woocommerce_process_product_meta', 'woocom_save_general_proddata_custom_field' );

add_action( 'woocommerce_single_product_summary', 'woocommerce_template_top_category_desc', 1 );
    function woocommerce_template_top_category_desc (){
 $terms = get_the_terms( $post->ID, 'wc-attibute-class' );
if ( !empty($terms)) {
        $term = array_pop($terms);
                $text= get_field('txt-field', $term);
                if (!empty($text)) {
                echo $text;
                }
}
        }

/** Hook callback function to save custom fields information */
function woocom_save_general_proddata_custom_field( $post_id ) {
  // Save Text Field
  $text_field = $_POST['_text_field'];
  if( ! empty( $text_field ) ) {
     update_post_meta( $post_id, '_text_field', esc_attr( $text_field ) );
  }

  // Save Number Field
  $number_field = $_POST['_number_field'];
  if( ! empty( $number_field ) ) {
     update_post_meta( $post_id, '_number_field', esc_attr( $number_field ) );
  }
  // Save Textarea
  $textarea = $_POST['_textarea'];
  if( ! empty( $textarea ) ) {
     update_post_meta( $post_id, '_textarea', esc_html( $textarea ) );
  }

  // Save Select
  $select = $_POST['_select'];
  if( ! empty( $select ) ) {
     update_post_meta( $post_id, '_select', esc_attr( $select ) );
  }

  // Save Checkbox
  $checkbox = isset( $_POST['_checkbox'] ) ? 'yes' : 'no';
  update_post_meta( $post_id, '_checkbox', $checkbox );

  // Save Hidden field
  $hidden = $_POST['_hidden_field'];
  if( ! empty( $hidden ) ) {
     update_post_meta( $post_id, '_hidden_field', esc_attr( $hidden ) );
  }
}

我尝试了一些 woocommerce 自定义插件,但它没有解决我的要求,因为我有 25 个以上自定义文件要创建,而且插件似乎对我的工作来说是一个非常漫长的过程

我的输出在图 2 中,这是我从编码中得到的,不是我的要求

我的输出

【问题讨论】:

    标签: wordpress woocommerce custom-fields


    【解决方案1】:

    我知道你对插件不感兴趣,但我强烈推荐 ACF 插件用于自定义字段。看看吧,它会为你节省很多时间。

    【讨论】:

    • 正如我已经提到的,我必须为超过 100 种产品创建超过 25 个自定义字段,所以它会富有成效....
    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多