/** * Output the frontend styles settings. * * @access public * @return void */ function woocommerce_frontend_styles_setting() { global $woocommerce; ?> <tr valign="top" class="woocommerce_frontend_css_colors"> <th scope="row" class="titledesc"> <label><?php _e('Styles', 'woocommerce'); ?> </label> </th> <td class="forminp"><?php $base_file = $woocommerce->plugin_path() . '/assets/css/woocommerce-base.less'; $css_file = $woocommerce->plugin_path() . '/assets/css/woocommerce.css'; if (is_writable($base_file) && is_writable($css_file)) { // Get settings $colors = array_map('esc_attr', (array) get_option('woocommerce_frontend_css_colors')); // Defaults if (empty($colors['primary'])) { $colors['primary'] = '#ad74a2'; } if (empty($colors['secondary'])) { $colors['secondary'] = '#f7f6f7'; } if (empty($colors['highlight'])) { $colors['highlight'] = '#85ad74'; } if (empty($colors['content_bg'])) { $colors['content_bg'] = '#ffffff'; } if (empty($colors['subtext'])) { $colors['subtext'] = '#777777'; } // Show inputs woocommerce_frontend_css_color_picker(__('Primary', 'woocommerce'), 'woocommerce_frontend_css_primary', $colors['primary'], __('Call to action buttons/price slider/layered nav UI', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Secondary', 'woocommerce'), 'woocommerce_frontend_css_secondary', $colors['secondary'], __('Buttons and tabs', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Highlight', 'woocommerce'), 'woocommerce_frontend_css_highlight', $colors['highlight'], __('Price labels and Sale Flashes', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Content', 'woocommerce'), 'woocommerce_frontend_css_content_bg', $colors['content_bg'], __('Your themes page background - used for tab active states', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Subtext', 'woocommerce'), 'woocommerce_frontend_css_subtext', $colors['subtext'], __('Used for certain text and asides - breadcrumbs, small text etc.', 'woocommerce')); } else { echo '<span class="description">' . __('To edit colours <code>woocommerce/assets/css/woocommerce-base.less</code> and <code>woocommerce.css</code> need to be writable. See <a href="http://codex.wordpress.org/Changing_File_Permissions">the Codex</a> for more information.', 'woocommerce') . '</span>'; } ?> </td> </tr> <script type="text/javascript"> jQuery('input#woocommerce_frontend_css').change(function() { if (jQuery(this).is(':checked')) { jQuery('tr.woocommerce_frontend_css_colors').show(); } else { jQuery('tr.woocommerce_frontend_css_colors').hide(); } }).change(); </script> <?php }
/** * Admin fields * * Loops though the woocommerce options array and outputs each field. */ function woocommerce_admin_fields($options) { global $woocommerce; foreach ($options as $value) { if (!isset($value['type'])) { continue; } if (!isset($value['id'])) { $value['id'] = ''; } if (!isset($value['name'])) { $value['name'] = ''; } if (!isset($value['class'])) { $value['class'] = ''; } if (!isset($value['css'])) { $value['css'] = ''; } if (!isset($value['std'])) { $value['std'] = ''; } if (!isset($value['desc'])) { $value['desc'] = ''; } if (!isset($value['desc_tip'])) { $value['desc_tip'] = false; } if ($value['desc_tip'] === true) { $description = '<img class="help_tip" data-tip="' . esc_attr($value['desc']) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />'; } elseif ($value['desc_tip']) { $description = '<img class="help_tip" data-tip="' . esc_attr($value['desc_tip']) . '" src="' . $woocommerce->plugin_url() . '/assets/images/help.png" />'; } else { $description = '<span class="description">' . $value['desc'] . '</span>'; } switch ($value['type']) { case 'title': if (isset($value['name']) && $value['name']) { echo '<h3>' . $value['name'] . '</h3>'; } if (isset($value['desc']) && $value['desc']) { echo wpautop(wptexturize($value['desc'])); } echo '<table class="form-table">' . "\n\n"; if (isset($value['id']) && $value['id']) { do_action('woocommerce_settings_' . sanitize_title($value['id'])); } break; case 'sectionend': if (isset($value['id']) && $value['id']) { do_action('woocommerce_settings_' . sanitize_title($value['id']) . '_end'); } echo '</table>'; if (isset($value['id']) && $value['id']) { do_action('woocommerce_settings_' . sanitize_title($value['id']) . '_after'); } break; case 'text': ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"><input name="<?php echo esc_attr($value['id']); ?> " id="<?php echo esc_attr($value['id']); ?> " type="<?php echo esc_attr($value['type']); ?> " style="<?php echo esc_attr($value['css']); ?> " value="<?php if (get_option($value['id']) !== false && get_option($value['id']) !== null) { echo esc_attr(stripslashes(get_option($value['id']))); } else { echo esc_attr($value['std']); } ?> " /> <?php echo $description; ?> </td> </tr><?php break; case 'color': ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"><input name="<?php echo esc_attr($value['id']); ?> " id="<?php echo esc_attr($value['id']); ?> " type="text" style="<?php echo esc_attr($value['css']); ?> " value="<?php if (get_option($value['id']) !== false && get_option($value['id']) !== null) { echo esc_attr(stripslashes(get_option($value['id']))); } else { echo esc_attr($value['std']); } ?> " class="colorpick" /> <?php echo $description; ?> <div id="colorPickerDiv_<?php echo esc_attr($value['id']); ?> " class="colorpickdiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;display:none;"></div></td> </tr><?php break; case 'image_width': ?> <tr valign="top"> <th scope="row" class="titledesc"><?php echo $value['name']; ?> </th> <td class="forminp"> <?php _e('Width', 'woocommerce'); ?> <input name="<?php echo esc_attr($value['id']); ?> _width" id="<?php echo esc_attr($value['id']); ?> _width" type="text" size="3" value="<?php if ($size = get_option($value['id'] . '_width')) { echo stripslashes($size); } else { echo $value['std']; } ?> " /> <?php _e('Height', 'woocommerce'); ?> <input name="<?php echo esc_attr($value['id']); ?> _height" id="<?php echo esc_attr($value['id']); ?> _height" type="text" size="3" value="<?php if ($size = get_option($value['id'] . '_height')) { echo stripslashes($size); } else { echo $value['std']; } ?> " /> <label><?php _e('Hard Crop', 'woocommerce'); ?> <input name="<?php echo esc_attr($value['id']); ?> _crop" id="<?php echo esc_attr($value['id']); ?> _crop" type="checkbox" <?php if (get_option($value['id'] . '_crop') != '') { checked(get_option($value['id'] . '_crop'), 1); } else { checked(1); } ?> /></label> <?php echo $description; ?> </td> </tr><?php break; case 'select': ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"><select name="<?php echo esc_attr($value['id']); ?> " id="<?php echo esc_attr($value['id']); ?> " style="<?php echo esc_attr($value['css']); ?> " class="<?php if (isset($value['class'])) { echo $value['class']; } ?> "> <?php foreach ($value['options'] as $key => $val) { $_current = get_option($value['id']); if (!$_current) { $_current = $value['std']; } ?> <option value="<?php echo esc_attr($key); ?> " <?php selected($_current, $key); ?> ><?php echo $val; ?> </option> <?php } ?> </select> <?php echo $description; ?> </td> </tr><?php break; case 'checkbox': if (!isset($value['hide_if_checked'])) { $value['hide_if_checked'] = false; } if (!isset($value['show_if_checked'])) { $value['show_if_checked'] = false; } if (!isset($value['checkboxgroup']) || isset($value['checkboxgroup']) && $value['checkboxgroup'] == 'start') { ?> <tr valign="top" class="<?php if ($value['hide_if_checked'] == 'yes' || $value['show_if_checked'] == 'yes') { echo 'hidden_option'; } if ($value['hide_if_checked'] == 'option') { echo 'hide_options_if_checked'; } if ($value['show_if_checked'] == 'option') { echo 'show_options_if_checked'; } ?> "> <th scope="row" class="titledesc"><?php echo $value['name']; ?> </th> <td class="forminp"> <fieldset> <?php } else { ?> <fieldset class="<?php if ($value['hide_if_checked'] == 'yes' || $value['show_if_checked'] == 'yes') { echo 'hidden_option'; } if ($value['hide_if_checked'] == 'option') { echo 'hide_options_if_checked'; } if ($value['show_if_checked'] == 'option') { echo 'show_options_if_checked'; } ?> "> <?php } ?> <legend class="screen-reader-text"><span><?php echo $value['name']; ?> </span></legend> <label for="<?php echo $value['id']; ?> "> <input name="<?php echo esc_attr($value['id']); ?> " id="<?php echo esc_attr($value['id']); ?> " type="checkbox" value="1" <?php checked(get_option($value['id']), 'yes'); ?> /> <?php echo $value['desc']; ?> </label> <?php if ($value['desc_tip']) { echo $description; } ?> <br /> <?php if (!isset($value['checkboxgroup']) || isset($value['checkboxgroup']) && $value['checkboxgroup'] == 'end') { ?> </fieldset> </td> </tr> <?php } else { ?> </fieldset> <?php } break; case 'textarea': ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"> <textarea <?php if (isset($value['args'])) { echo $value['args'] . ' '; } ?> name="<?php echo esc_attr($value['id']); ?> " id="<?php echo esc_attr($value['id']); ?> " style="<?php echo esc_attr($value['css']); ?> "><?php if (false !== get_option($value['id'])) { echo esc_textarea(stripslashes(get_option($value['id']))); } else { echo esc_textarea($value['std']); } ?> </textarea> <?php echo $description; ?> </td> </tr><?php break; case 'single_select_page': $page_setting = (int) get_option($value['id']); $args = array('name' => $value['id'], 'id' => $value['id'], 'sort_column' => 'menu_order', 'sort_order' => 'ASC', 'show_option_none' => ' ', 'class' => $value['class'], 'echo' => false, 'selected' => $page_setting); if (isset($value['args'])) { $args = wp_parse_args($value['args'], $args); } ?> <tr valign="top" class="single_select_page"> <th scope="row" class="titledesc"><?php echo $value['name']; ?> </th> <td class="forminp"> <?php echo str_replace(' id=', " data-placeholder='" . __('Select a page...', 'woocommerce') . "' style='" . $value['css'] . "' class='" . $value['class'] . "' id=", wp_dropdown_pages($args)); ?> <?php echo $description; ?> </td> </tr><?php break; case 'single_select_country': $countries = $woocommerce->countries->countries; $country_setting = (string) get_option($value['id']); if (strstr($country_setting, ':')) { $country = current(explode(':', $country_setting)); $state = end(explode(':', $country_setting)); } else { $country = $country_setting; $state = '*'; } ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"><select name="<?php echo esc_attr($value['id']); ?> " style="<?php echo esc_attr($value['css']); ?> " data-placeholder="<?php _e('Choose a country…', 'woocommerce'); ?> " title="Country" class="chosen_select"> <?php echo $woocommerce->countries->country_dropdown_options($country, $state); ?> </select> <?php echo $description; ?> </td> </tr><?php break; case 'multi_select_countries': $countries = $woocommerce->countries->countries; asort($countries); $selections = (array) get_option($value['id']); ?> <tr valign="top"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"> <select multiple="multiple" name="<?php echo esc_attr($value['id']); ?> []" style="width:450px;" data-placeholder="<?php _e('Choose countries…', 'woocommerce'); ?> " title="Country" class="chosen_select"> <?php if ($countries) { foreach ($countries as $key => $val) { echo '<option value="' . $key . '" ' . selected(in_array($key, $selections), true, false) . '>' . $val . '</option>'; } } ?> </select> </td> </tr><?php break; case 'tax_rates': $tax_classes = array_filter(array_map('trim', explode("\n", get_option('woocommerce_tax_classes')))); $tax_rates = get_option('woocommerce_tax_rates'); $local_tax_rates = get_option('woocommerce_local_tax_rates'); ?> <tr valign="top"> <th scope="row" class="titledesc"><?php _e('Tax Rates', 'woocommerce'); ?> </th> <td class="forminp"> <!--<a class="button export_rates"><?php _e('Export rates', 'woocommerce'); ?> </a> <a class="button import_rates"><?php _e('Import rates', 'woocommerce'); ?> </a> <p style="margin-top:0;" class="description"><?php printf(__('Define tax rates for countries and states below, or alternatively upload a CSV file containing your rates to <code>wp-content/woocommerce_tax_rates.csv</code> instead. <a href="%s">Download sample csv.</a>', 'woocommerce'), ''); ?> </p>--> <table class="taxrows widefat" cellspacing="0"> <thead> <tr> <th class="check-column"><input type="checkbox"></th> <th class="country"><?php _e('Countries/states', 'woocommerce'); ?> </th> <th><?php _e('Tax Class', 'woocommerce'); ?> </th> <th><?php _e('Label', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Optionally, enter a label for this rate - this will appear in the totals table', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Rate', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Enter a tax rate (percentage) to 4 decimal places.', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Compound', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Choose whether or not this is a compound rate. Compound tax rates are applied on top of other tax rates.', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Shipping', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Choose whether or not this tax rate also gets applied to shipping.', 'woocommerce'); ?> ">[?]</a></th> </tr> </thead> <tfoot> <tr> <th colspan="2"><a href="#" class="add_tax_rate button"><?php _e('+ Add Tax Rate', 'woocommerce'); ?> </a></th> <th colspan="6"> <small><?php _e('All matching rates will be applied, and non-compound rates will be summed.', 'woocommerce'); ?> </small> <a href="#" class="dupe button"><?php _e('Duplicate selected rows', 'woocommerce'); ?> </a> <a href="#" class="remove button"><?php _e('Delete selected rows', 'woocommerce'); ?> </a> </th> </tr> </tfoot> <tbody id="tax_rates"> <?php $i = -1; if ($tax_rates && is_array($tax_rates)) { foreach ($tax_rates as $rate) { $i++; ?> <tr class="tax_rate"> <td class="check-column"><input type="checkbox" name="select" /></td> <td class="country"> <p class="edit"><button class="edit_options button"><?php _e('Edit', 'woocommerce'); ?> </button> <label><?php echo woocommerce_tax_row_label($rate['countries']); ?> </label></p> <div class="options" style="display:none"> <select name="tax_country[<?php echo $i; ?> ][]" data-placeholder="<?php _e('Select countries/states…', 'woocommerce'); ?> " class="tax_chosen_select select" size="10" multiple="multiple"> <?php echo $woocommerce->countries->country_multiselect_options($rate['countries']); ?> </select> <?php echo '<p><button class="select_all button">' . __('All', 'woocommerce') . '</button><button class="select_none button">' . __('None', 'woocommerce') . '</button><button class="button select_us_states">' . __('US States', 'woocommerce') . '</button><button class="button select_europe">' . __('EU States', 'woocommerce') . '</button></p>'; ?> </div> </td> <td class="tax_class"> <select name="tax_class[<?php echo $i; ?> ]" title="Tax Class" class="select"> <option value=""><?php _e('Standard Rate', 'woocommerce'); ?> </option> <?php if ($tax_classes) { foreach ($tax_classes as $class) { echo '<option value="' . sanitize_title($class) . '"'; selected($rate['class'], sanitize_title($class)); echo '>' . $class . '</option>'; } } ?> </select> </td> <td class="label"> <input type="text" class="text" value="<?php if (isset($rate['label'])) { echo esc_attr($rate['label']); } ?> " name="tax_label[<?php echo $i; ?> ]" title="<?php _e('Label', 'woocommerce'); ?> " size="16" /> </td> <td class="rate"> <input type="text" class="text" value="<?php echo esc_attr($rate['rate']); ?> " name="tax_rate[<?php echo $i; ?> ]" title="<?php _e('Rate', 'woocommerce'); ?> " placeholder="<?php _e('Rate', 'woocommerce'); ?> " maxlength="8" size="4" />% </td> <td class="compound"> <input type="checkbox" class="checkbox" name="tax_compound[<?php echo $i; ?> ]" <?php if (isset($rate['compound'])) { checked($rate['compound'], 'yes'); } ?> /> </td> <td class="apply_to_shipping"> <input type="checkbox" class="checkbox" name="tax_shipping[<?php echo $i; ?> ]" <?php if (isset($rate['shipping'])) { checked($rate['shipping'], 'yes'); } ?> /> </td> </tr> <?php } } ?> </tbody> </table> </td> </tr> <tr valign="top"> <th scope="row" class="titledesc"><?php _e('Local Tax Rates', 'woocommerce'); ?> </th> <td class="forminp"> <!--<a class="button export_rates"><?php _e('Export rates', 'woocommerce'); ?> </a> <a class="button import_rates"><?php _e('Import rates', 'woocommerce'); ?> </a> <p style="margin-top:0;" class="description"><?php printf(__('Define local tax rates below, or alternatively upload a CSV file containing your rates to <code>wp-content/woocommerce_local_tax_rates.csv</code> instead. <a href="%s">Download sample csv.</a>', 'woocommerce'), ''); ?> </p>--> <table class="taxrows widefat" cellspacing="0"> <thead> <tr> <th class="check-column"><input type="checkbox"></th> <th class="country"><?php _e('Post/zip codes', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('List postcodes/zips this rate applies to separated by semi-colons. You may also enter ranges for numeric zip codes. e.g. 12345-12349;23456;', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Tax Class', 'woocommerce'); ?> </th> <th><?php _e('Label', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Optionally, enter a label for this rate - this will appear in the totals table', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Rate', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Enter a tax rate (percentage) to 4 decimal places.', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Compound', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Choose whether or not this is a compound rate. Compound tax rates are applied on top of other tax rates.', 'woocommerce'); ?> ">[?]</a></th> <th><?php _e('Shipping', 'woocommerce'); ?> <a class="tips" data-tip="<?php _e('Choose whether or not this tax rate also gets applied to shipping.', 'woocommerce'); ?> ">[?]</a></th> </tr> </thead> <tfoot> <tr> <th colspan="2"><a href="#" class="add_local_tax_rate button"><?php _e('+ Add Tax Rate', 'woocommerce'); ?> </a></th> <th colspan="5"> <small><?php _e('All matching rates will be applied, and non-compound rates will be summed.', 'woocommerce'); ?> </small> <a href="#" class="dupe button"><?php _e('Duplicate selected rows', 'woocommerce'); ?> </a> <a href="#" class="remove button"><?php _e('Delete selected rows', 'woocommerce'); ?> </a> </th> </tr> </tfoot> <tbody id="local_tax_rates"> <?php $i = -1; if ($local_tax_rates && is_array($local_tax_rates)) { foreach ($local_tax_rates as $rate) { $i++; ?> <tr class="tax_rate"> <td class="check-column"><input type="checkbox" name="select" /></td> <td class="local_country"> <select name="local_tax_country[<?php echo $i; ?> ]" class="select"> <option value=""><?php _e('Select a country/state…', 'woocommerce'); ?> </option> <?php echo $woocommerce->countries->country_dropdown_options($rate['country'], $rate['state']); ?> </select> <textarea type="text" placeholder="<?php _e('Post/zip codes', 'woocommerce'); ?> " class="text" name="local_tax_postcode[<?php echo $i; ?> ]"><?php if (isset($rate['postcode'])) { echo implode(';', $rate['postcode']); } ?> </textarea> </td> <td class="tax_class"> <select name="local_tax_class[<?php echo $i; ?> ]" title="Tax Class" class="select"> <option value=""><?php _e('Standard Rate', 'woocommerce'); ?> </option> <?php if ($tax_classes) { foreach ($tax_classes as $class) { echo '<option value="' . sanitize_title($class) . '"'; selected($rate['class'], sanitize_title($class)); echo '>' . $class . '</option>'; } } ?> </select> </td> <td class="label"> <input type="text" class="text" value="<?php if (isset($rate['label'])) { echo esc_attr($rate['label']); } ?> " name="local_tax_label[<?php echo $i; ?> ]" title="<?php _e('Label', 'woocommerce'); ?> " size="16" /> </td> <td class="rate"> <input type="text" class="text" value="<?php echo esc_attr($rate['rate']); ?> " name="local_tax_rate[<?php echo $i; ?> ]" title="<?php _e('Rate', 'woocommerce'); ?> " placeholder="<?php _e('Rate', 'woocommerce'); ?> " maxlength="8" size="4" />% </td> <td class="compound"> <input type="checkbox" class="checkbox" name="local_tax_compound[<?php echo $i; ?> ]" <?php if (isset($rate['compound'])) { checked($rate['compound'], 'yes'); } ?> /> </td> <td class="apply_to_shipping"> <input type="checkbox" class="checkbox" name="local_tax_shipping[<?php echo $i; ?> ]" <?php if (isset($rate['shipping'])) { checked($rate['shipping'], 'yes'); } ?> /> </td> </tr> <?php } } ?> </tbody> </table> </td> </tr> <script type="text/javascript"> jQuery(function() { jQuery('tr.tax_rate .edit_options').live('click', function(){ jQuery(this).closest('td').find('.options').slideToggle(); if (jQuery(this).text()=='<?php _e('Edit', 'woocommerce'); ?> ') { jQuery(this).closest('tr').find("select.tax_chosen_select").chosen(); jQuery(this).text('<?php _e('Done', 'woocommerce'); ?> '); } else { jQuery(this).text('<?php _e('Edit', 'woocommerce'); ?> '); } return false; }); jQuery('tr.tax_rate .select_all').live('click', function(){ jQuery(this).closest('td').find('select option').attr("selected","selected"); jQuery(this).closest('td').find('select.tax_chosen_select').trigger("change"); return false; }); jQuery('tr.tax_rate .select_none').live('click', function(){ jQuery(this).closest('td').find('select option').removeAttr("selected"); jQuery(this).closest('td').find('select.tax_chosen_select').trigger("change"); return false; }); jQuery('tr.tax_rate .select_us_states').live('click', function(){ jQuery(this).closest('td').find('select optgroup[label="United States"] option').attr("selected","selected"); jQuery(this).closest('td').find('select.tax_chosen_select').trigger("change"); return false; }); jQuery('tr.tax_rate .options select').live('change', function(){ jQuery(this).trigger("liszt:updated"); jQuery(this).closest('td').find('label').text( jQuery(":selected", this).length + '<?php _e(' countries/states selected', 'woocommerce'); ?> ' ); }); jQuery('tr.tax_rate .select_europe').live('click', function(){ jQuery(this).closest('td').find('option[value="AL"], option[value="AD"], option[value="AM"], option[value="AT"], option[value="BY"], option[value="BE"], option[value="BA"], option[value="BG"], option[value="CH"], option[value="CY"], option[value="CZ"], option[value="DE"], option[value="DK"], option[value="EE"], option[value="ES"], option[value="FO"], option[value="FI"], option[value="FR"], option[value="GB"], option[value="GE"], option[value="GI"], option[value="GR"], option[value="HU"], option[value="HR"], option[value="IE"], option[value="IS"], option[value="IT"], option[value="LT"], option[value="LU"], option[value="LV"], option[value="MC"], option[value="MK"], option[value="MT"], option[value="NO"], option[value="NL"], option[value="PO"], option[value="PT"], option[value="RO"], option[value="RU"], option[value="SE"], option[value="SI"], option[value="SK"], option[value="SM"], option[value="TR"], option[value="UA"], option[value="VA"]').attr("selected","selected"); jQuery(this).closest('td').find('select.tax_chosen_select').trigger("change"); return false; }); jQuery('.taxrows a.add_tax_rate').live('click', function(){ var size = jQuery('#tax_rates tr').size(); // Add the row jQuery('<tr class="tax_rate new_rate">\ <td class="check-column"><input type="checkbox" name="select" /></td>\ <td class="country">\ <p class="edit"><button class="edit_options button"><?php _e('Edit', 'woocommerce'); ?> </button> <label><?php _e('No countries selected', 'woocommerce'); ?> </label></p>\ <div class="options" style="display:none">\ <select name="tax_country[' + size + '][]" data-placeholder="<?php _e('Select countries/states…', 'woocommerce'); ?> " class="tax_chosen_select select" size="10" multiple="multiple">\ <?php echo $woocommerce->countries->country_multiselect_options(); ?> \ </select>\ <?php echo '<p><button class="select_all button">' . __('All', 'woocommerce') . '</button><button class="select_none button">' . __('None', 'woocommerce') . '</button><button class="button select_us_states">' . __('US States', 'woocommerce') . '</button><button class="button select_europe">' . __('EU States', 'woocommerce') . '</button></p>'; ?> \ </div>\ </td>\ <td class="tax_class">\ <select name="tax_class[' + size + ']" title="Tax Class" class="select">\ <option value=""><?php _e('Standard Rate', 'woocommerce'); ?> </option>\ <?php if ($tax_classes) { foreach ($tax_classes as $class) { echo '<option value="' . sanitize_title($class) . '">' . $class . '</option>'; } } ?> </select>\ </td>\ <td class="label">\ <input type="text" class="text" name="tax_label[' + size + ']" title="<?php _e('Label', 'woocommerce'); ?> " size="16" />\ </td>\ <td class="rate">\ <input type="text" class="text" name="tax_rate[' + size + ']" title="<?php _e('Rate', 'woocommerce'); ?> " placeholder="<?php _e('Rate', 'woocommerce'); ?> " maxlength="8" size="4" />%\ </td>\ <td class="compound">\ <input type="checkbox" class="checkbox" name="tax_compound[' + size + ']" />\ </td>\ <td class="apply_to_shipping">\ <input type="checkbox" class="checkbox" name="tax_shipping[' + size + ']" />\ </td>\ </tr>').appendTo('#tax_rates'); jQuery(".new_rate select.tax_chosen_select").chosen(); jQuery(".new_rate").removeClass('new_rate'); return false; }); jQuery('.taxrows a.add_local_tax_rate').live('click', function(){ var size = jQuery('#local_tax_rates tr').size(); // Add the row jQuery('<tr class="tax_rate new_rate">\ <td class="check-column"><input type="checkbox" name="select" /></td>\ <td class="local_country">\ <select name="local_tax_country[' + size + ']" class="select">\ <option value=""><?php _e('Select a country/state…', 'woocommerce'); ?> </option>\ <?php echo $woocommerce->countries->country_dropdown_options('', '', true); ?> \ </select>\ <textarea type="text" placeholder="<?php _e('Post/zip codes', 'woocommerce'); ?> " class="text" name="local_tax_postcode[' + size + ']"></textarea>\ </td>\ <td class="tax_class">\ <select name="local_tax_class[' + size + ']" title="Tax Class" class="select">\ <option value=""><?php _e('Standard Rate', 'woocommerce'); ?> </option>\ <?php if ($tax_classes) { foreach ($tax_classes as $class) { echo '<option value="' . sanitize_title($class) . '">' . $class . '</option>'; } } ?> </select>\ </td>\ <td class="label">\ <input type="text" class="text" name="local_tax_label[' + size + ']" title="<?php _e('Label', 'woocommerce'); ?> " size="16" />\ </td>\ <td class="rate">\ <input type="text" class="text" name="local_tax_rate[' + size + ']" title="<?php _e('Rate', 'woocommerce'); ?> " placeholder="<?php _e('Rate', 'woocommerce'); ?> " maxlength="8" size="4" />%\ </td>\ <td class="compound">\ <input type="checkbox" class="checkbox" name="local_tax_compound[' + size + ']" />\ </td>\ <td class="apply_to_shipping">\ <input type="checkbox" class="checkbox" name="local_tax_shipping[' + size + ']" />\ </td>\ </tr>').appendTo('#local_tax_rates'); jQuery(".new_rate").removeClass('new_rate'); return false; }); // Remove row jQuery('.taxrows a.remove').live('click', function(){ var answer = confirm("<?php _e('Delete the selected rates?', 'woocommerce'); ?> ") if (answer) { var $rates = jQuery(this).closest('.taxrows').find('tbody'); $rates.find('tr td.check-column input:checked').each(function(i, el){ jQuery(el).closest('tr').find('input.text, input.checkbox, select.select').val(''); jQuery(el).closest('tr').hide(); }); } return false; }); // Dupe row jQuery('.taxrows a.dupe').live('click', function(){ var answer = confirm("<?php _e('Duplicate the selected rates?', 'woocommerce'); ?> ") if (answer) { var $rates = jQuery(this).closest('.taxrows').find('tbody'); $rates.find('tr td.check-column input:checked').each(function(i, el){ var dupe = jQuery(el).closest('tr').clone() // Remove chosen selector dupe.find('.chzn-done').removeClass('chzn-done').removeAttr('id').removeAttr('style'); dupe.find('.chzn-container').remove(); // Append $rates.append( dupe ); }); // Re-index keys var loop = 0; $rates.find('tr.tax_rate').each(function( index, row ){ jQuery('input.text, input.checkbox, select.select', row).each(function( i, el ){ var t = jQuery(el); t.attr('name', t.attr('name').replace(/\[([^[]*)\]/, "[" + loop + "]")); }); loop++; }); } return false; }); }); </script> <?php break; case 'woocommerce_frontend_css_colors': ?> <tr valign="top" class="woocommerce_frontend_css_colors"> <th scope="row" class="titledesc"> <label for="<?php echo esc_attr($value['id']); ?> "><?php echo $value['name']; ?> </label> </th> <td class="forminp"><?php $base_file = $woocommerce->plugin_path() . '/assets/css/woocommerce-base.less'; $css_file = $woocommerce->plugin_path() . '/assets/css/woocommerce.css'; if (is_writable($base_file) && is_writable($css_file)) { // Get settings $colors = (array) get_option('woocommerce_frontend_css_colors'); // Defaults if (empty($colors['primary'])) { $colors['primary'] = '#ad74a2'; } if (empty($colors['secondary'])) { $colors['secondary'] = '#f7f6f7'; } if (empty($colors['highlight'])) { $colors['highlight'] = '#85ad74'; } if (empty($colors['content_bg'])) { $colors['content_bg'] = '#ffffff'; } if (empty($colors['subtext'])) { $colors['subtext'] = '#777777'; } // Show inputs woocommerce_frontend_css_color_picker(__('Primary', 'woocommerce'), 'woocommerce_frontend_css_primary', $colors['primary'], __('Call to action buttons/price slider/layered nav UI', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Secondary', 'woocommerce'), 'woocommerce_frontend_css_secondary', $colors['secondary'], __('Buttons and tabs', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Highlight', 'woocommerce'), 'woocommerce_frontend_css_highlight', $colors['highlight'], __('Price labels and Sale Flashes', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Content', 'woocommerce'), 'woocommerce_frontend_css_content_bg', $colors['content_bg'], __('Your themes page background - used for tab active states', 'woocommerce')); woocommerce_frontend_css_color_picker(__('Subtext', 'woocommerce'), 'woocommerce_frontend_css_subtext', $colors['subtext'], __('Used for certain text and asides - breadcrumbs, small text etc.', 'woocommerce')); } else { echo '<span class="description">' . __('To edit colours <code>woocommerce/assets/css/woocommerce-base.less</code> and <code>woocommerce.css</code> need to be writable. See <a href="http://codex.wordpress.org/Changing_File_Permissions">the Codex</a> for more information.', 'woocommerce') . '</span>'; } ?> </td> </tr> <script type="text/javascript"> jQuery('input#woocommerce_frontend_css').change(function() { if (jQuery(this).is(':checked')) { jQuery('tr.woocommerce_frontend_css_colors').show(); } else { jQuery('tr.woocommerce_frontend_css_colors').hide(); } }).change(); </script> <?php default: do_action('woocommerce_admin_field_' . $value['type'], $value); break; } } }