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 ''.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 '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 ''.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 '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 ''.$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 '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 '' . 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 '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 '' . wp_kses_post( $field['label'] ) . ' ';
foreach ( $field['options'] as $key => $value ) {
echo '' . esc_html( $value ) . ' ';
}
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 = ''.$field['label'].' ';
$html .= '';
$html .= '';
$saved_val = $wc_cpdf->get_value($thepostid, $field['id']) ? $wc_cpdf->get_value($thepostid, $field['id']) : array();
foreach ( $field['options'] as $key => $value ) {
$html .= '' . esc_html( $value ) . ' ';
}
$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);
?>
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 ''.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 '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 ''.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 '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();