wc_cpdf_fields(); if($fields == null){ return; } foreach ($fields as $key => $fields_array){ foreach ($fields_array as $field) { if(isset($field['tab_name']) && $field['tab_name'] != ''){ $href = "#".$key; echo "
  • ".$field['tab_name']."
  • "; } } } } /** * Adds the panel to the Product Data postbox in the product interface * * @return string */ public function product_write_panel(){ global $post; // Pull the field data out of the database $available_fields = array(); $available_fields[] = maybe_unserialize(get_post_meta($post->ID, 'wc_productdata_options', true)); if($available_fields){ // Display fields panel foreach($available_fields as $available_field){ $fields = $this->wc_cpdf_fields(); if($fields == null){ return; } foreach ($fields as $key => $fields_array){ echo '
    '; foreach ($fields_array as $field) { if( ! isset( $field['tab_name'] ) ){ WC_Product_Data_Fields::wc_product_data_options_fields($field); } } echo '
    '; } } } } /** * Create Fields * * @param $field array * @return string */ public function wc_product_data_options_fields($field){ global $thepostid, $post, $woocommerce; $fieldtype = isset( $field['type'] ) ? $field['type'] : ''; $field_id = isset( $field['id'] ) ? $field['id'] : ''; $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $options_data = maybe_unserialize(get_post_meta($thepostid, 'wc_productdata_options', true)); switch($fieldtype){ case 'text': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true ); $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; $field['type'] = isset( $field['type'] ) ? $field['type'] : 'text'; $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'number': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true ); $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; $field['type'] = isset( $field['type'] ) ? $field['type'] : 'text'; $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'textarea': if(!$thepostid) $thepostid = $post->ID; if(!isset($field['placeholder'])) $field['placeholder'] = ''; if(!isset($field['class'])) $field['class'] = 'short'; if(!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'checkbox': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'checkbox'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; $field['cbvalue'] = isset( $field['cbvalue'] ) ? $field['cbvalue'] : 'yes'; $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'select': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'select short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'radio': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'select short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; echo '
    ' . wp_kses_post( $field['label'] ) . ''; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '
    '; break; case 'hidden': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['value'] = isset( $field['value'] ) ? $field['value'] : $options_data[0][$field_id]; $field['class'] = isset( $field['class'] ) ? $field['class'] : ''; echo ' '; break; case 'multiselect': global $wc_cpdf; if(!$thepostid) $thepostid = $post->ID; if(!isset($field['placeholder'])) $field['placeholder'] = ''; if(!isset($field['class'])) $field['class'] = 'short'; if(!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; $html = '

    '; $html .= ''; $html .= ''; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { $html .= ''; } else { $html .= '' . wp_kses_post( $field['description'] ) . ''; } } $html .= '

    '; echo $html; break; case 'image': global $wc_cpdf; $saved_image = $wc_cpdf->get_value($thepostid, $field['id']); $saved_image_url = wp_get_attachment_image_src($saved_image); $saved_image_url_thumb = wp_get_attachment_image_src($saved_image, 'thumbnail', true); ?>
    '.$field['label'].''; ?>
    plugin_url() ) . '/assets/images/help.png" height="16" width="16" />'; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } ?>
    get_value($thepostid, $field['id']); ?> ID : $thepostid; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true ); $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; $field['type'] = isset( $field['type'] ) ? $field['type'] : 'text'; $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'datepicker': $thepostid = empty( $thepostid ) ? $post->ID : $thepostid; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short'; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : ''; $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true ); $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id']; $field['type'] = isset( $field['type'] ) ? $field['type'] : 'text'; $inputval = isset( $options_data[0][$field_id] ) ? $options_data[0][$field_id] : ''; echo '

    '; if ( ! empty( $field['description'] ) ) { if ( isset( $field['desc_tip'] ) && false !== $field['desc_tip'] ) { echo ''; } else { echo '' . wp_kses_post( $field['description'] ) . ''; } } echo '

    '; break; case 'divider': echo '
    '; break; } } /** * Saves the data inputed into the product boxes, as post meta data * identified by the name 'wc_productdata_options' * * @param int $post_id the post (product) identifier * @param stdClass $post the post (product) * @return void */ public function product_save_data($post_id, $post){ $options_value = array(); /** field name in pairs array **/ $data_args = array(); $fields = $this->wc_cpdf_fields(); if($fields == null){ return; } foreach ($fields as $key => $fields_array){ foreach ($fields_array as $data) { if ( isset( $data['id'] ) ) { $data_args[ $data['id'] ] = maybe_unserialize( $_POST[ $data['id'] ] ); } } } $options_value[] = $data_args; // save the data to the database update_post_meta($post_id, 'wc_productdata_options', $options_value); } } } /** * Instantiate Class */ $GLOBALS['wc_cpdf'] = new WC_Product_Data_Fields();