This commit is contained in:
Mike Jolley 2012-10-15 14:42:36 +01:00
parent 723c3144ec
commit 5d15f30cea
2 changed files with 96 additions and 106 deletions

View File

@ -7,7 +7,7 @@
* @author WooThemes * @author WooThemes
* @category Admin * @category Admin
* @package WooCommerce/Admin/WritePanels * @package WooCommerce/Admin/WritePanels
* @version 1.6.4 * @version 1.7.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -42,7 +42,7 @@ function woocommerce_product_data_box() {
$type_box = '<label for="product-type"><select id="product-type" name="product-type"><optgroup label="' . __( 'Product Type', 'woocommerce' ) . '">'; $type_box = '<label for="product-type"><select id="product-type" name="product-type"><optgroup label="' . __( 'Product Type', 'woocommerce' ) . '">';
foreach ( $product_type_selector as $value => $label ) foreach ( $product_type_selector as $value => $label )
$type_box .= '<option value="' . $value . '" ' . selected( $product_type, $value, false ) .'>' . $label . '</option>'; $type_box .= '<option value="' . esc_attr( $value ) . '" ' . selected( $product_type, $value, false ) .'>' . esc_html( $label ) . '</option>';
$type_box .= '</optgroup></select></label>'; $type_box .= '</optgroup></select></label>';
$product_type_options = apply_filters('product_type_options', array( $product_type_options = apply_filters('product_type_options', array(
@ -62,7 +62,7 @@ function woocommerce_product_data_box() {
foreach ( $product_type_options as $key => $option ) { foreach ( $product_type_options as $key => $option ) {
$selected_value = get_post_meta( $post->ID, '_' . $key, true ); $selected_value = get_post_meta( $post->ID, '_' . $key, true );
$type_box .= '<label for="' . $option['id'] . '" class="'. $option['wrapper_class'] . ' tips" data-tip="' . $option['description'] . '">'. $option['label'] . ': <input type="checkbox" name="' . $option['id'] . '" id="' . $option['id'] . '" ' . checked( $selected_value, 'yes', false ) .' /></label>'; $type_box .= '<label for="' . esc_attr( $option['id'] ) . '" class="'. esc_attr( $option['wrapper_class'] ) . ' tips" data-tip="' . esc_attr( $option['description'] ) . '">' . esc_html( $option['label'] ) . ': <input type="checkbox" name="' . esc_attr( $option['id'] ) . '" id="' . esc_attr( $option['id'] ) . '" ' . checked( $selected_value, 'yes', false ) .' /></label>';
} }
?> ?>
@ -94,11 +94,10 @@ function woocommerce_product_data_box() {
echo '<div class="options_group show_if_simple show_if_variable show_if_external">'; echo '<div class="options_group show_if_simple show_if_variable show_if_external">';
// SKU // SKU
if( get_option('woocommerce_enable_sku', true) !== 'no' ) : if( get_option('woocommerce_enable_sku', true) !== 'no' )
woocommerce_wp_text_input( array( 'id' => '_sku', 'label' => '<abbr title="'. __('Stock Keeping Unit', 'woocommerce') .'">' . __('SKU', 'woocommerce') . '</abbr>', 'desc_tip' => 'true', 'description' => __('SKU refers to a Stock-keeping unit, a unique identifier for each distinct product and service that can be purchased.', 'woocommerce') ) ); woocommerce_wp_text_input( array( 'id' => '_sku', 'label' => '<abbr title="'. __('Stock Keeping Unit', 'woocommerce') .'">' . __('SKU', 'woocommerce') . '</abbr>', 'desc_tip' => 'true', 'description' => __('SKU refers to a Stock-keeping unit, a unique identifier for each distinct product and service that can be purchased.', 'woocommerce') ) );
else: else
echo '<input type="hidden" name="_sku" value="'.get_post_meta($thepostid, '_sku', true).'" />'; echo '<input type="hidden" name="_sku" value="' . esc_attr( get_post_meta( $thepostid, '_sku', true ) ) . '" />';
endif;
do_action('woocommerce_product_options_sku'); do_action('woocommerce_product_options_sku');
@ -123,15 +122,13 @@ function woocommerce_product_data_box() {
woocommerce_wp_text_input( array( 'id' => '_sale_price', 'class' => 'wc_input_price short', 'label' => __('Sale Price', 'woocommerce') . ' ('.get_woocommerce_currency_symbol().')', 'description' => '<a href="#" class="sale_schedule">' . __('Schedule', 'woocommerce') . '</a>' ) ); woocommerce_wp_text_input( array( 'id' => '_sale_price', 'class' => 'wc_input_price short', 'label' => __('Sale Price', 'woocommerce') . ' ('.get_woocommerce_currency_symbol().')', 'description' => '<a href="#" class="sale_schedule">' . __('Schedule', 'woocommerce') . '</a>' ) );
// Special Price date range // Special Price date range
$field = array( 'id' => '_sale_price_dates', 'label' => __('Sale Price Dates', 'woocommerce') ); $sale_price_dates_from = ( $date = get_post_meta( $thepostid, '_sale_price_dates_from', true ) ) ? date_i18n( 'Y-m-d', $date ) : '';
$sale_price_dates_to = ( $date = get_post_meta( $thepostid, '_sale_price_dates_to', true ) ) ? date_i18n( 'Y-m-d', $date ) : '';
$sale_price_dates_from = get_post_meta( $thepostid, '_sale_price_dates_from', true );
$sale_price_dates_to = get_post_meta( $thepostid, '_sale_price_dates_to', true );
echo ' <p class="form-field sale_price_dates_fields"> echo ' <p class="form-field sale_price_dates_fields">
<label for="' . $field['id'] . '_from">' . $field['label'] . '</label> <label for="_sale_price_dates_from">' . __( 'Sale Price Dates', 'woocommerce' ) . '</label>
<input type="text" class="short" name="' . $field['id'] . '_from" id="' . $field['id'] . '_from" value="' . ( $sale_price_dates_from ? date_i18n( 'Y-m-d', $sale_price_dates_from ) : '' ) . '" placeholder="' . _x('From&hellip;', 'placeholder', 'woocommerce') . '" maxlength="10" /> <input type="text" class="short" name="_sale_price_dates_from" id="_sale_price_dates_from" value="' . $sale_price_dates_from . '" placeholder="' . _x( 'From&hellip;', 'placeholder', 'woocommerce' ) . '" maxlength="10" />
<input type="text" class="short" name="' . $field['id'] . '_to" id="' . $field['id'] . '_to" value="' . ( $sale_price_dates_to ? date_i18n( 'Y-m-d', $sale_price_dates_to ) : '' ) . '" placeholder="' . _x( 'To&hellip;', 'placeholder', 'woocommerce' ) . '" maxlength="10" /> <input type="text" class="short" name="_sale_price_dates_to" id="_sale_price_dates_to" value="' . $sale_price_dates_to . '" placeholder="' . _x( 'To&hellip;', 'placeholder', 'woocommerce' ) . '" maxlength="10" />
<a href="#" class="cancel_sale_schedule">'. __( 'Cancel', 'woocommerce' ) .'</a> <a href="#" class="cancel_sale_schedule">'. __( 'Cancel', 'woocommerce' ) .'</a>
</p>'; </p>';
@ -143,11 +140,11 @@ function woocommerce_product_data_box() {
// File URL // File URL
$file_paths = get_post_meta( $post->ID, '_file_paths', true ); $file_paths = get_post_meta( $post->ID, '_file_paths', true );
if ( is_array( $file_paths ) ) $file_paths = implode( "\n", $file_paths ); if ( is_array( $file_paths ) )
$file_paths = implode( "\n", $file_paths );
$field = array( 'id' => '_file_paths', 'label' => __('File paths (one per line)', 'woocommerce' ) ); echo '<p class="form-field"><label for="_file_paths">' . __('File paths (one per line)', 'woocommerce' ) . ':</label>
echo '<p class="form-field"><label for="'.$field['id'].'">'.$field['label'].':</label> <textarea style="float:left;height:5em;" id="_file_paths" class="short file_paths" cols="20" rows="3" placeholder="' . __( 'File paths/URLs, one per line', 'woocommerce' ) . '" name="_file_paths" wrap="off">' . esc_textarea( $file_paths ) . '</textarea>
<textarea style="float:left;height:5em;" id="'.$field['id'].'" class="short file_paths" cols="20" rows="3" placeholder="'.__('File paths/URLs, one per line', 'woocommerce').'" name="'.$field['id'].'" wrap="off">'.$file_paths.'</textarea>
<input type="button" class="upload_file_button button" value="' . __( 'Upload a file', 'woocommerce' ) . '" /> <input type="button" class="upload_file_button button" value="' . __( 'Upload a file', 'woocommerce' ) . '" />
</p>'; </p>';
@ -162,11 +159,9 @@ function woocommerce_product_data_box() {
echo '</div>'; echo '</div>';
do_action( 'woocommerce_product_options_general_product_data' ); do_action( 'woocommerce_product_options_general_product_data' );
?> ?>
</div> </div>
<div id="tax_product_data" class="panel woocommerce_options_panel"> <div id="tax_product_data" class="panel woocommerce_options_panel">
<?php <?php
// Tax // Tax
@ -179,9 +174,9 @@ function woocommerce_product_data_box() {
$tax_classes = array_filter( array_map( 'trim', explode( "\n", get_option( 'woocommerce_tax_classes' ) ) ) ); $tax_classes = array_filter( array_map( 'trim', explode( "\n", get_option( 'woocommerce_tax_classes' ) ) ) );
$classes_options = array(); $classes_options = array();
$classes_options[''] = __( 'Standard', 'woocommerce' ); $classes_options[''] = __( 'Standard', 'woocommerce' );
if ($tax_classes) foreach ($tax_classes as $class) : if ( $tax_classes )
$classes_options[sanitize_title($class)] = $class; foreach ( $tax_classes as $class )
endforeach; $classes_options[ sanitize_title( $class ) ] = esc_html( $class );
woocommerce_wp_select( array( 'id' => '_tax_class', 'label' => __( 'Tax Class', 'woocommerce' ), 'options' => $classes_options ) ); woocommerce_wp_select( array( 'id' => '_tax_class', 'label' => __( 'Tax Class', 'woocommerce' ), 'options' => $classes_options ) );
@ -246,7 +241,7 @@ function woocommerce_product_data_box() {
if( get_option('woocommerce_enable_weight', true) !== 'no' ) : if( get_option('woocommerce_enable_weight', true) !== 'no' ) :
woocommerce_wp_text_input( array( 'id' => '_weight', 'label' => __('Weight', 'woocommerce') . ' ('.get_option('woocommerce_weight_unit').')', 'placeholder' => '0.00', 'description' => __('Weight in decimal form', 'woocommerce') ) ); woocommerce_wp_text_input( array( 'id' => '_weight', 'label' => __('Weight', 'woocommerce') . ' ('.get_option('woocommerce_weight_unit').')', 'placeholder' => '0.00', 'description' => __('Weight in decimal form', 'woocommerce') ) );
else: else:
echo '<input type="hidden" name="_weight" value="'.get_post_meta($thepostid, '_weight', true).'" />'; echo '<input type="hidden" name="_weight" value="' . esc_attr( get_post_meta( $thepostid, '_weight', true ) ) . '" />';
endif; endif;
// Size fields // Size fields
@ -254,16 +249,16 @@ function woocommerce_product_data_box() {
?><p class="form-field dimensions_field"> ?><p class="form-field dimensions_field">
<label for"product_length"><?php echo __( 'Dimensions', 'woocommerce' ) . ' (' . get_option( 'woocommerce_dimension_unit' ) . ')'; ?></label> <label for"product_length"><?php echo __( 'Dimensions', 'woocommerce' ) . ' (' . get_option( 'woocommerce_dimension_unit' ) . ')'; ?></label>
<span class="wrap"> <span class="wrap">
<input id="product_length" placeholder="<?php _e('Length', 'woocommerce'); ?>" class="input-text" size="6" type="text" name="_length" value="<?php echo get_post_meta( $thepostid, '_length', true ); ?>" /> <input id="product_length" placeholder="<?php _e( 'Length', 'woocommerce' ); ?>" class="input-text" size="6" type="text" name="_length" value="<?php echo esc_attr( get_post_meta( $thepostid, '_length', true ) ); ?>" />
<input placeholder="<?php _e('Width', 'woocommerce'); ?>" class="input-text" size="6" type="text" name="_width" value="<?php echo get_post_meta( $thepostid, '_width', true ); ?>" /> <input placeholder="<?php _e( 'Width', 'woocommerce' ); ?>" class="input-text" size="6" type="text" name="_width" value="<?php echo esc_attr( get_post_meta( $thepostid, '_width', true ) ); ?>" />
<input placeholder="<?php _e('Height', 'woocommerce'); ?>" class="input-text last" size="6" type="text" name="_height" value="<?php echo get_post_meta( $thepostid, '_height', true ); ?>" /> <input placeholder="<?php _e( 'Height', 'woocommerce' ); ?>" class="input-text last" size="6" type="text" name="_height" value="<?php echo esc_attr( get_post_meta( $thepostid, '_height', true ) ); ?>" />
</span> </span>
<span class="description"><?php _e( 'LxWxH in decimal form', 'woocommerce' ); ?></span> <span class="description"><?php _e( 'LxWxH in decimal form', 'woocommerce' ); ?></span>
</p><?php </p><?php
else: else:
echo '<input type="hidden" name="_length" value="'.get_post_meta($thepostid, '_length', true).'" />'; echo '<input type="hidden" name="_length" value="' . esc_attr( get_post_meta( $thepostid, '_length', true ) ) . '" />';
echo '<input type="hidden" name="_width" value="'.get_post_meta($thepostid, '_width', true).'" />'; echo '<input type="hidden" name="_width" value="' . esc_attr( get_post_meta( $thepostid, '_width', true ) ) . '" />';
echo '<input type="hidden" name="_height" value="'.get_post_meta($thepostid, '_height', true).'" />'; echo '<input type="hidden" name="_height" value="' . esc_attr( get_post_meta( $thepostid, '_height', true ) ) . '" />';
endif; endif;
do_action( 'woocommerce_product_options_dimensions' ); do_action( 'woocommerce_product_options_dimensions' );

View File

@ -7,7 +7,7 @@
* @author WooThemes * @author WooThemes
* @category Admin * @category Admin
* @package WooCommerce/Admin/WritePanels * @package WooCommerce/Admin/WritePanels
* @version 1.6.4 * @version 1.7.0
*/ */
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
@ -292,7 +292,7 @@ function woocommerce_meta_boxes_show_errors() {
echo '<div id="woocommerce_errors" class="error fade">'; echo '<div id="woocommerce_errors" class="error fade">';
foreach ( $woocommerce_errors as $error ) foreach ( $woocommerce_errors as $error )
echo '<p>' . $error . '</p>'; echo '<p>' . esc_html( $error ) . '</p>';
echo '</div>'; echo '</div>';
// Clear // Clear
@ -314,20 +314,20 @@ add_action( 'admin_notices', 'woocommerce_meta_boxes_show_errors' );
function woocommerce_wp_text_input( $field ) { function woocommerce_wp_text_input( $field ) {
global $thepostid, $post, $woocommerce; global $thepostid, $post, $woocommerce;
if ( ! $thepostid ) $thepostid = $post->ID; $thepostid = empty( $thepostid ) ? $post->ID : $thepostid;
if ( ! isset( $field['placeholder'] ) ) $field['placeholder'] = ''; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : '';
if ( ! isset( $field['class'] ) ) $field['class'] = 'short'; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short';
if ( ! isset( $field['value'] ) ) $field['value'] = get_post_meta( $thepostid, $field['id'], true ); $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true );
if ( ! isset( $field['name'] ) ) $field['name'] = $field['id']; $field['name'] = isset( $field['name'] ) ? $field['name'] : $field['id'];
echo '<p class="form-field '.$field['id'].'_field"><label for="'.$field['id'].'">'.$field['label'].'</label><input type="text" class="'.$field['class'].'" name="'.$field['name'].'" id="'.$field['id'].'" value="'.esc_attr( $field['value'] ).'" placeholder="'.$field['placeholder'].'" /> '; echo '<p class="form-field ' . esc_attr( $field['id'] ) . '_field"><label for="' . esc_attr( $field['id'] ) . '">' . esc_html( $field['label'] ) . '</label><input type="text" class="' . esc_attr( $field['class'] ) . '" name="' . esc_attr( $field['name'] ) . '" id="' . esc_attr( $field['id'] ) . '" value="' . esc_attr( $field['value'] ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" /> ';
if ( isset( $field['description'] ) && $field['description'] ) { if ( ! empty( $field['description'] ) ) {
if ( isset( $field['desc_tip'] ) ) { if ( isset( $field['desc_tip'] ) ) {
echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />'; echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />';
} else { } else {
echo '<span class="description">' . $field['description'] . '</span>'; echo '<span class="description">' . esc_html( $field['description'] ) . '</span>';
} }
} }
@ -344,9 +344,11 @@ function woocommerce_wp_text_input( $field ) {
*/ */
function woocommerce_wp_hidden_input( $field ) { function woocommerce_wp_hidden_input( $field ) {
global $thepostid, $post; global $thepostid, $post;
if (!$thepostid) $thepostid = $post->ID;
if (!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $thepostid = empty( $thepostid ) ? $post->ID : $thepostid;
echo '<input type="hidden" class="'.$field['class'].'" name="'.$field['id'].'" id="'.$field['id'].'" value="'.esc_attr( $field['value'] ).'" /> '; $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true );
echo '<input type="hidden" class="' . esc_attr( $field['class'] ) . '" name="' . esc_attr( $field['id'] ) . '" id="' . esc_attr( $field['id'] ) . '" value="' . esc_attr( $field['value'] ) . '" /> ';
} }
@ -360,19 +362,19 @@ function woocommerce_wp_hidden_input( $field ) {
function woocommerce_wp_textarea_input( $field ) { function woocommerce_wp_textarea_input( $field ) {
global $thepostid, $post, $woocommerce; global $thepostid, $post, $woocommerce;
if (!$thepostid) $thepostid = $post->ID; $thepostid = empty( $thepostid ) ? $post->ID : $thepostid;
if (!isset($field['placeholder'])) $field['placeholder'] = ''; $field['placeholder'] = isset( $field['placeholder'] ) ? $field['placeholder'] : '';
if (!isset($field['class'])) $field['class'] = 'short'; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'short';
if (!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true );
echo '<p class="form-field '.$field['id'].'_field"><label for="'.$field['id'].'">'.$field['label'].'</label><textarea class="'.$field['class'].'" name="'.$field['id'].'" id="'.$field['id'].'" placeholder="'.$field['placeholder'].'" rows="2" cols="20">'.esc_textarea( $field['value'] ).'</textarea> '; echo '<p class="form-field ' . esc_attr( $field['id'] ) . '_field"><label for="' . esc_attr( $field['id'] ) . '">' . esc_html( $field['label'] ) . '</label><textarea class="' . esc_attr( $field['class'] ) . '" name="' . esc_attr( $field['id'] ) . '" id="' . esc_attr( $field['id'] ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" rows="2" cols="20">' . esc_textarea( $field['value'] ) . '</textarea> ';
if ( isset( $field['description'] ) && $field['description'] ) { if ( ! empty( $field['description'] ) ) {
if ( isset( $field['desc_tip'] ) ) { if ( isset( $field['desc_tip'] ) ) {
echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />'; echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />';
} else { } else {
echo '<span class="description">' . $field['description'] . '</span>'; echo '<span class="description">' . esc_html( $field['description'] ) . '</span>';
} }
} }
@ -390,19 +392,15 @@ function woocommerce_wp_textarea_input( $field ) {
function woocommerce_wp_checkbox( $field ) { function woocommerce_wp_checkbox( $field ) {
global $thepostid, $post; global $thepostid, $post;
if (!$thepostid) $thepostid = $post->ID; $thepostid = empty( $thepostid ) ? $post->ID : $thepostid;
if (!isset($field['class'])) $field['class'] = 'checkbox'; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'checkbox';
if (!isset($field['wrapper_class'])) $field['wrapper_class'] = ''; $field['wrapper_class'] = isset( $field['wrapper_class'] ) ? $field['wrapper_class'] : '';
if (!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true );
if (!isset($field['cbvalue'])) $field['cbvalue'] = 'yes'; $field['cbvalue'] = isset( $field['cbvalue'] ) ? $field['cbvalue'] : 'yes';
echo '<p class="form-field '.$field['id'].'_field '.$field['wrapper_class'].'"><label for="'.$field['id'].'">'.$field['label'].'</label><input type="checkbox" class="'.$field['class'].'" name="'.$field['id'].'" id="'.$field['id'].'" value="' . $field['cbvalue'] . '" '; echo '<p class="form-field ' . esc_attr( $field['id'] ) . '_field ' . esc_attr( $field['wrapper_class'] ) . '"><label for="' . esc_attr( $field['id'] ) . '">' . esc_html( $field['label'] ) . '</label><input type="checkbox" class="' . esc_attr( $field['class'] ) . '" name="' . esc_attr( $field['id'] ) . '" id="' . esc_attr( $field['id'] ) . '" value="' . esc_attr( $field['cbvalue'] ) . '" ' . checked( $field['value'], $field['cbvalue'], false ) . ' /> ';
checked($field['value'], $field['cbvalue']); if ( ! empty( $field['description'] ) ) echo '<span class="description">' . esc_html( $field['description'] ) . '</span>';
echo ' /> ';
if (isset($field['description']) && $field['description']) echo '<span class="description">' .$field['description'] . '</span>';
echo '</p>'; echo '</p>';
} }
@ -418,31 +416,28 @@ function woocommerce_wp_checkbox( $field ) {
function woocommerce_wp_select( $field ) { function woocommerce_wp_select( $field ) {
global $thepostid, $post, $woocommerce; global $thepostid, $post, $woocommerce;
if (!$thepostid) $thepostid = $post->ID; $thepostid = empty( $thepostid ) ? $post->ID : $thepostid;
if (!isset($field['class'])) $field['class'] = 'select short'; $field['class'] = isset( $field['class'] ) ? $field['class'] : 'select short';
if (!isset($field['value'])) $field['value'] = get_post_meta($thepostid, $field['id'], true); $field['value'] = isset( $field['value'] ) ? $field['value'] : get_post_meta( $thepostid, $field['id'], true );
echo '<p class="form-field '.$field['id'].'_field"><label for="'.$field['id'].'">'.$field['label'].'</label><select id="'.$field['id'].'" name="'.$field['id'].'" class="'.$field['class'].'">'; echo '<p class="form-field ' . esc_attr( $field['id'] ) . '_field"><label for="' . esc_attr( $field['id'] ) . '">' . esc_html( $field['label'] ) . '</label><select id="' . esc_attr( $field['id'] ) . '" name="' . esc_attr( $field['id'] ) . '" class="' . esc_attr( $field['class'] ) . '">';
foreach ($field['options'] as $key => $value) : foreach ( $field['options'] as $key => $value ) {
echo '<option value="'.$key.'" '; echo '<option value="' . esc_attr( $key ) . '" ' . selected( esc_attr( $field['value'] ), esc_attr( $key ), false ) . '>' . esc_html( $value ) . '</option>';
selected($field['value'], $key);
echo '>'.$value.'</option>';
endforeach; }
echo '</select> '; echo '</select> ';
if ( isset( $field['description'] ) && $field['description'] ) { if ( ! empty( $field['description'] ) ) {
if ( isset( $field['desc_tip'] ) ) { if ( isset( $field['desc_tip'] ) ) {
echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />'; echo '<img class="help_tip" data-tip="' . esc_attr( $field['description'] ) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />';
} else { } else {
echo '<span class="description">' . $field['description'] . '</span>'; echo '<span class="description">' . esc_html( $field['description'] ) . '</span>';
} }
} }
echo '</p>'; echo '</p>';
} }