'tab', 'tabname' => __('General', 'woothemes') ), array( 'name' => __('General Options', 'woothemes'), 'type' => 'title', 'desc' => '' ), array( 'name' => __('Demo store', 'woothemes'), 'desc' => '', 'tip' => __('Enable this option to show a banner at the top of the page stating its a demo store.', 'woothemes'), 'id' => 'woocommerce_demo_store', 'css' => 'min-width:100px;', 'std' => 'no', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Enable SKU field', 'woothemes'), 'desc' => '', 'tip' => __('Turning off the SKU field will give products an SKU of their post id.', 'woothemes'), 'id' => 'woocommerce_enable_sku', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Enable weight field', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_enable_weight', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Weight Unit', 'woothemes'), 'desc' => __("This controls what unit you will define weights in.", 'woothemes'), 'tip' => '', 'id' => 'woocommerce_weight_unit', 'css' => 'min-width:200px;', 'std' => 'GBP', 'type' => 'select', 'options' => array( 'kg' => __('kg', 'woothemes'), 'lbs' => __('lbs', 'woothemes') ) ), array( 'name' => __('Base Country/Region', 'woothemes'), 'desc' => '', 'tip' => __('This is the base country for your business. Tax rates will be based on this country.', 'woothemes'), 'id' => 'woocommerce_default_country', 'css' => '', 'std' => 'GB', 'type' => 'single_select_country' ), array( 'name' => __('Allowed Countries', 'woothemes'), 'desc' => '', 'tip' => __('These are countries that you are willing to ship to.', 'woothemes'), 'id' => 'woocommerce_allowed_countries', 'css' => 'min-width:100px;', 'std' => 'all', 'type' => 'select', 'options' => array( 'all' => __('All Countries', 'woothemes'), 'specific' => __('Specific Countries', 'woothemes') ) ), array( 'name' => __('Specific Countries', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_specific_allowed_countries', 'css' => '', 'std' => '', 'type' => 'multi_select_countries' ), array( 'name' => __('Enable guest checkout?', 'woothemes'), 'desc' => '', 'tip' => __('Without guest checkout, all users will require an account in order to checkout.', 'woothemes'), 'id' => 'woocommerce_enable_guest_checkout', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Force SSL on checkout?', 'woothemes'), 'desc' => '', 'tip' => __('Forcing SSL is recommended', 'woothemes'), 'id' => 'woocommerce_force_ssl_checkout', 'css' => 'min-width:100px;', 'std' => 'no', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('ShareThis Publisher ID', 'woothemes'), 'desc' => __("Enter your ShareThis publisher ID to show ShareThis on product pages.", 'woothemes'), 'tip' => __('ShareThis is a small social sharing widget for posting links on popular sites such as Twitter and Facebook.', 'woothemes'), 'id' => 'woocommerce_sharethis', 'css' => 'width:300px;', 'type' => 'text', 'std' => '' ), array( 'name' => __('Disable WooCommerce frontend.css', 'woothemes'), 'desc' => '', 'tip' => __('Useful if you want to disable WooCommerce styles and theme it yourself via your theme.', 'woothemes'), 'id' => 'woocommerce_disable_css', 'css' => 'min-width:100px;', 'std' => 'no', 'type' => 'select', 'options' => array( 'no' => __('No', 'woothemes'), 'yes' => __('Yes', 'woothemes') ) ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Pages', 'woothemes') ), array( 'name' => __('Shop page configuration', 'woothemes'), 'type' => 'title', 'desc' => '' ), array( 'name' => __('Cart Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_cart]', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_cart_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Checkout Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_checkout]', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_checkout_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Pay Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_pay] and usually have "Checkout" as the parent.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_pay_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Thanks Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_thankyou] and usually have "Checkout" as the parent.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_thanks_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('My Account Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_my_account]', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_myaccount_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Edit Address Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_edit_address] and usually have "My Account" as the parent.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_edit_address_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('View Order Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_view_order] and usually have "My Account" as the parent.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_view_order_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Change Password Page', 'woothemes'), 'desc' => __('Your page should contain [woocommerce_change_password] and usually have "My Account" as the parent.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_change_password_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Catalog', 'woothemes') ), array( 'name' => __('Catalog Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ), array( 'name' => __('Products Base Page', 'woothemes'), 'desc' => sprintf( __("IMPORTANT: You must re-save your permalinks for this change to take effect.", 'woothemes'), 'options-permalink.php' ), 'tip' => __('This sets the base page of your shop. You should not change this value once you have launched your site otherwise you risk breaking urls of other sites pointing to yours, etc.', 'woothemes'), 'id' => 'woocommerce_shop_page_id', 'css' => 'min-width:50px;', 'type' => 'single_select_page', 'std' => '' ), array( 'name' => __('Prepend shop categories/tags with base page?', 'woothemes'), 'desc' => sprintf( __("IMPORTANT: You must re-save your permalinks for this change to take effect.", 'woothemes'), 'options-permalink.php' ), 'tip' => __('If set to yes, categories will show up as your_base_page/shop_category instead of just shop_category.', 'woothemes'), 'id' => 'woocommerce_prepend_shop_page_to_urls', 'css' => 'min-width:100px;', 'std' => 'no', 'type' => 'select', 'options' => array( 'no' => __('No', 'woothemes'), 'yes' => __('Yes', 'woothemes') ) ), array( 'name' => __('Terms page ID', 'woothemes'), 'desc' => __('If you define a "Terms" page the customer will be asked if they accept them when checking out.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_terms_page_id', 'css' => 'min-width:50px;', 'std' => '', 'type' => 'single_select_page', 'args' => 'show_option_none=' . __('None', 'woothemes'), ), array( 'name' => __('Pricing Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ), array( 'name' => __('Currency', 'woothemes'), 'desc' => sprintf( __("This controls what currency prices are listed at in the catalog, and which currency PayPal, and other gateways, will take payments in. See the list of supported PayPal currencies.", 'woothemes'), 'https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/mc/mc_intro-outside' ), 'tip' => '', 'id' => 'woocommerce_currency', 'css' => 'min-width:200px;', 'std' => 'GBP', 'type' => 'select', 'options' => apply_filters('woocommerce_currencies', array( 'USD' => __('US Dollars ($)', 'woothemes'), 'EUR' => __('Euros (€)', 'woothemes'), 'GBP' => __('Pounds Sterling (£)', 'woothemes'), 'AUD' => __('Australian Dollars ($)', 'woothemes'), 'BRL' => __('Brazilian Real ($)', 'woothemes'), 'CAD' => __('Canadian Dollars ($)', 'woothemes'), 'CZK' => __('Czech Koruna', 'woothemes'), 'DKK' => __('Danish Krone', 'woothemes'), 'HKD' => __('Hong Kong Dollar ($)', 'woothemes'), 'HUF' => __('Hungarian Forint', 'woothemes'), 'ILS' => __('Israeli Shekel', 'woothemes'), 'JPY' => __('Japanese Yen (¥)', 'woothemes'), 'MYR' => __('Malaysian Ringgits', 'woothemes'), 'MXN' => __('Mexican Peso ($)', 'woothemes'), 'NZD' => __('New Zealand Dollar ($)', 'woothemes'), 'NOK' => __('Norwegian Krone', 'woothemes'), 'PHP' => __('Philippine Pesos', 'woothemes'), 'PLN' => __('Polish Zloty', 'woothemes'), 'SGD' => __('Singapore Dollar ($)', 'woothemes'), 'SEK' => __('Swedish Krona', 'woothemes'), 'CHF' => __('Swiss Franc', 'woothemes'), 'TWD' => __('Taiwan New Dollars', 'woothemes'), 'THB' => __('Thai Baht', 'woothemes') ) ) ), array( 'name' => __('Currency Position', 'woothemes'), 'desc' => __("This controls the position of the currency symbol.", 'woothemes'), 'tip' => '', 'id' => 'woocommerce_currency_pos', 'css' => 'min-width:200px;', 'std' => 'left', 'type' => 'select', 'options' => array( 'left' => __('Left', 'woothemes'), 'right' => __('Right', 'woothemes'), 'left_space' => __('Left (with space)', 'woothemes'), 'right_space' => __('Right (with space)', 'woothemes') ) ), array( 'name' => __('Thousand separator', 'woothemes'), 'desc' => __('This sets the thousand separator of displayed prices.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_price_thousand_sep', 'css' => 'width:30px;', 'std' => ',', 'type' => 'text', ), array( 'name' => __('Decimal separator', 'woothemes'), 'desc' => __('This sets the decimal separator of displayed prices.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_price_decimal_sep', 'css' => 'width:30px;', 'std' => '.', 'type' => 'text', ), array( 'name' => __('Number of decimals', 'woothemes'), 'desc' => __('This sets the number of decimal points shown in displayed prices.', 'woothemes'), 'tip' => '', 'id' => 'woocommerce_price_num_decimals', 'css' => 'width:30px;', 'std' => '2', 'type' => 'text', ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Coupons', 'woothemes') ), array( 'name' => __('Coupon Codes', 'woothemes'), 'type' => 'title', 'desc' => '' ), array( 'name' => __('Coupons', 'woothemes'), 'desc' => 'All fields are required.', 'tip' => 'Coupons allow you to give customers special offers and discounts. Leave product IDs blank to apply to all products/items in the cart.', 'id' => 'woocommerce_coupons', 'css' => 'min-width:50px;', 'type' => 'coupons', 'std' => '' ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Inventory', 'woothemes') ), array( 'name' => __('Inventory Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ), array( 'name' => __('Manage stock?', 'woothemes'), 'desc' => __('If you are not managing stock, turn it off here to disable it in admin and on the front-end.', 'woothemes'), 'tip' => __('You can manage stock on a per-item basis if you leave this option on.', 'woothemes'), 'id' => 'woocommerce_manage_stock', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Low stock notification', 'woothemes'), 'desc' => '', 'tip' => __('Set the minimum threshold for this below.', 'woothemes'), 'id' => 'woocommerce_notify_low_stock', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Low stock threshold', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_notify_low_stock_amount', 'css' => 'min-width:50px;', 'type' => 'text', 'std' => '2' ), array( 'name' => __('Out-of-stock notification', 'woothemes'), 'desc' => '', 'tip' => __('Set the minimum threshold for this below.', 'woothemes'), 'id' => 'woocommerce_notify_no_stock', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Out of stock threshold', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_notify_no_stock_amount', 'css' => 'min-width:50px;', 'type' => 'text', 'std' => '0' ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Shipping', 'woothemes') ), array( 'name' => __('Shipping Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ), array( 'name' => __('Calculate Shipping', 'woothemes'), 'desc' => __('Only set this to no if you are not shipping items, or items have shipping costs included.', 'woothemes'), 'tip' => __('If you are not calculating shipping then you can ignore all other tax options.', 'woothemes'), 'id' => 'woocommerce_calc_shipping', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Enable shipping calculator on cart', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_enable_shipping_calc', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Only ship to billing address?', 'woothemes'), 'desc' => '', 'tip' => '', 'id' => 'woocommerce_ship_to_billing_address_only', 'css' => 'min-width:100px;', 'std' => 'no', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'type' => 'shipping_options'), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Tax', 'woothemes') ), array( 'name' => __('Tax Options', 'woothemes'), 'type' => 'title','desc' => '', 'id' => '' ), array( 'name' => __('Calculate Taxes', 'woothemes'), 'desc' => __('Only set this to no if you are exclusively selling non-taxable items.', 'woothemes'), 'tip' => __('If you are not calculating taxes then you can ignore all other tax options.', 'woothemes'), 'id' => 'woocommerce_calc_taxes', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Catalog Prices include tax?', 'woothemes'), 'desc' => '', 'tip' => __('If prices include tax then tax calculations will work backwards.', 'woothemes'), 'id' => 'woocommerce_prices_include_tax', 'css' => 'min-width:100px;', 'std' => 'yes', 'type' => 'select', 'options' => array( 'yes' => __('Yes', 'woothemes'), 'no' => __('No', 'woothemes') ) ), array( 'name' => __('Cart totals display...', 'woothemes'), 'desc' => '', 'tip' => __('Should the subtotal be shown including or excluding tax on the frontend?', 'woothemes'), 'id' => 'woocommerce_display_totals_tax', 'css' => 'min-width:100px;', 'std' => 'excluding', 'type' => 'select', 'options' => array( 'including' => __('price including tax', 'woothemes'), 'excluding' => __('price excluding tax', 'woothemes') ) ), array( 'name' => __('Additional Tax classes', 'woothemes'), 'desc' => __('List 1 per line. This is in addition to the default Standard Rate.', 'woothemes'), 'tip' => __('List product and shipping tax classes here, e.g. Zero Tax, Reduced Rate.', 'woothemes'), 'id' => 'woocommerce_tax_classes', 'css' => 'width:100%; height: 75px;', 'type' => 'textarea', 'std' => "Reduced Rate\nZero Rate" ), array( 'name' => __('Tax rates', 'woothemes'), 'desc' => 'All fields are required.', 'tip' => 'To avoid rounding errors, insert tax rates with 4 decimal places.', 'id' => 'woocommerce_tax_rates', 'css' => 'min-width:50px;', 'type' => 'tax_rates', 'std' => '' ), array( 'type' => 'tabend'), array( 'type' => 'tab', 'tabname' => __('Payment Gateways', 'woothemes') ), array( 'type' => 'gateway_options'), array( 'type' => 'tabend') ) ); /** * Update options * * Updates the options on the woocommerce settings page. */ function woocommerce_update_options($options) { if(isset($_POST['submitted']) && $_POST['submitted'] == 'yes') { foreach ($options as $value) { if (isset($value['id']) && $value['id']=='woocommerce_tax_rates') : $tax_classes = array(); $tax_countries = array(); $tax_rate = array(); $tax_rates = array(); $tax_shipping = array(); if (isset($_POST['tax_class'])) $tax_classes = $_POST['tax_class']; if (isset($_POST['tax_country'])) $tax_countries = $_POST['tax_country']; if (isset($_POST['tax_rate'])) $tax_rate = $_POST['tax_rate']; if (isset($_POST['tax_shipping'])) $tax_shipping = $_POST['tax_shipping']; for ($i=0; $i $country, 'state' => $state, 'rate' => $rate, 'shipping' => $shipping, 'class' => $class ); endif; endfor; update_option($value['id'], $tax_rates); elseif (isset($value['id']) && $value['id']=='woocommerce_coupons') : $coupon_code = array(); $coupon_type = array(); $coupon_amount = array(); $product_ids = array(); $coupons = array(); $individual = array(); if (isset($_POST['coupon_code'])) $coupon_code = $_POST['coupon_code']; if (isset($_POST['coupon_type'])) $coupon_type = $_POST['coupon_type']; if (isset($_POST['coupon_amount'])) $coupon_amount = $_POST['coupon_amount']; if (isset($_POST['product_ids'])) $product_ids = $_POST['product_ids']; if (isset($_POST['individual'])) $individual = $_POST['individual']; for ($i=0; $i $code, 'amount' => $amount, 'type' => $type, 'products' => $products, 'individual_use' => $individual_use ); endif; endif; endfor; update_option($value['id'], $coupons); elseif (isset($value['type']) && $value['type']=='multi_select_countries') : // Get countries array if (isset($_POST[$value['id']])) $selected_countries = $_POST[$value['id']]; else $selected_countries = array(); update_option($value['id'], $selected_countries); /* price separators get a special treatment as they should allow a spaces (don't trim) */ elseif ( isset($value['id']) && ( $value['id'] == 'woocommerce_price_thousand_sep' || $value['id'] == 'woocommerce_price_decimal_sep' ) ): if( isset( $_POST[ $value['id'] ] ) ) { update_option($value['id'], $_POST[$value['id']] ); } else { @delete_option($value['id']); } else : if(isset($value['id']) && isset($_POST[$value['id']])) { update_option($value['id'], woocommerce_clean($_POST[$value['id']])); } else { @delete_option($value['id']); } endif; } do_action('woocommerce_update_options'); echo '

'.__('Your settings have been saved.', 'woothemes').'

'; } } /** * Admin fields * * Loops though the woocommerce options array and outputs each field. */ function woocommerce_admin_fields($options) { ?>

'; foreach ($options as $value) { if ( 'tab' == $value['type'] ) : echo '
  • '.$value['tabname'].'
  • '. "\n"; $counter = $counter + 1; endif; } echo ''; $counter = 1; foreach ($options as $value) : switch($value['type']) : case 'string': ?> '; echo ''. "\n\n"; break; case 'title': ?>'; $counter = $counter + 1; break; case 'single_select_page' : $page_setting = (int) get_option($value['id']); $args = array( 'name' => $value['id'], 'id' => $value['id']. '" style="width: 200px;', 'sort_column' => 'menu_order', 'sort_order' => 'ASC', 'selected' => $page_setting); if( isset($value['args']) ) $args = wp_parse_args($value['args'], $args); ?>get_coupons(); ?>get_tax_classes(); $tax_rates = get_option('woocommerce_tax_rates'); ?>admin_options(); endforeach; break; case "gateway_options" : foreach (woocommerce_payment_gateways::payment_gateways() as $gateway) : $gateway->admin_options(); endforeach; break; endswitch; endforeach; ?>


     
    :
    :
    :
    :
    :
    :
      $val) : echo '
    • '; endforeach; ?>
    : 0) foreach( $coupon_codes as $coupon ) : $i++; echo ''; endforeach; ?>
    ×

    :
    0) foreach( $tax_rates as $rate ) : $i++; echo '

    % ×

    '; endforeach; ?>