2011-08-10 17:11:11 +00:00
< ? php
/**
* Functions for the settings page in admin .
*
* The settings page contains options for the WooCommerce plugin - this file contains functions to display
* and save the list of options .
*
* @ author WooThemes
* @ category Admin
* @ package WooCommerce
*/
/**
2011-09-15 16:37:38 +00:00
* Define settings for the WooCommerce settings pages
2011-08-10 17:11:11 +00:00
*/
2011-09-09 14:23:32 +00:00
global $woocommerce_settings ;
2011-08-10 17:11:11 +00:00
2011-09-15 16:37:38 +00:00
$woocommerce_settings [ 'general' ] = apply_filters ( 'woocommerce_general_settings' , array (
2011-08-10 17:11:11 +00:00
2011-09-15 16:37:38 +00:00
array ( 'name' => 'General Options' , 'type' => 'title' , 'desc' => '' , 'id' => 'general_options' ),
2011-08-10 17:11:11 +00:00
array (
'name' => __ ( 'Base Country/Region' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'This is the base country for your business. Tax rates will be based on this country.' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_default_country' ,
2011-08-13 13:57:48 +00:00
'css' => 'min-width:175px;' ,
2011-08-10 17:11:11 +00:00
'std' => 'GB' ,
'type' => 'single_select_country'
),
array (
'name' => __ ( 'Allowed Countries' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'These are countries that you are willing to ship to.' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_allowed_countries' ,
2011-08-13 13:57:48 +00:00
'css' => 'min-width:175px;' ,
2011-08-10 17:11:11 +00:00
'std' => 'all' ,
'type' => 'select' ,
'options' => array (
'all' => __ ( 'All Countries' , 'woothemes' ),
'specific' => __ ( 'Specific Countries' , 'woothemes' )
)
),
array (
'name' => __ ( 'Specific Countries' , 'woothemes' ),
'desc' => '' ,
'id' => 'woocommerce_specific_allowed_countries' ,
'css' => '' ,
'std' => '' ,
'type' => 'multi_select_countries'
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Guest checkout' , 'woothemes' ),
'desc' => __ ( 'Allow guest users to checkout without an account' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_enable_guest_checkout' ,
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Force SSL' , 'woothemes' ),
'desc' => __ ( 'Force SSL on the checkout for added security (SSL Certificate required).' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_force_ssl_checkout' ,
'std' => 'no' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
'name' => __ ( 'ShareThis Publisher ID' , 'woothemes' ),
'desc' => __ ( " Enter your <a href='http://sharethis.com/account/'>ShareThis publisher ID</a> to show ShareThis on product pages. " , 'woothemes' ),
'id' => 'woocommerce_sharethis' ,
'css' => 'width:300px;' ,
'type' => 'text' ,
'std' => ''
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'WooCommerce CSS' , 'woothemes' ),
'desc' => __ ( 'Enable WooCommerce frontend CSS styles' , 'woothemes' ),
'id' => 'woocommerce_frontend_css' ,
'std' => 'yes' ,
'type' => 'checkbox'
),
2011-09-05 09:04:17 +00:00
array (
'name' => __ ( 'Lightbox' , 'woothemes' ),
'desc' => __ ( 'Enable WooCommerce lightbox?' , 'woothemes' ),
'id' => 'woocommerce_enable_lightbox' ,
'std' => 'yes' ,
'type' => 'checkbox'
),
2011-08-13 13:57:48 +00:00
array (
'name' => __ ( 'Demo store' , 'woothemes' ),
'desc' => __ ( 'Enable the "Demo Store" notice on your site' , 'woothemes' ),
'id' => 'woocommerce_demo_store' ,
2011-08-10 17:11:11 +00:00
'std' => 'no' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
2011-09-15 12:59:06 +00:00
array ( 'type' => 'sectionend' , 'id' => 'general_options' ),
2011-09-15 16:37:38 +00:00
)); // End general settings
$woocommerce_settings [ 'pages' ] = apply_filters ( 'woocommerce_page_settings' , array (
2011-09-15 12:59:06 +00:00
array ( 'name' => 'Page setup' , 'type' => 'title' , 'desc' => '' , 'id' => 'page_options' ),
2011-08-13 13:57:48 +00:00
array (
'name' => __ ( 'Shop Base Page' , 'woothemes' ),
'desc' => sprintf ( __ ( " This sets the base page of your shop. IMPORTANT: You must <a target='_blank' href='%s'>re-save your permalinks</a> for this change to take effect. " , 'woothemes' ), 'options-permalink.php' ),
'id' => 'woocommerce_shop_page_id' ,
'css' => 'min-width:175px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Prepend base page' , 'woothemes' ),
'desc' => __ ( 'Prepend shop categories/tags with shop base page' , 'woothemes' ),
'id' => 'woocommerce_prepend_shop_page_to_urls' ,
'std' => 'no' ,
'type' => 'checkbox' ,
),
2011-08-10 17:11:11 +00:00
2011-08-13 13:57:48 +00:00
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 ( 'type' => 'sectionend' ),
array ( 'name' => 'Shop pages' , 'type' => 'title' , 'desc' => 'The following pages need selecting so that WooCommerce knows which are which. These pages should have been created upon installation of the plugin.' ),
2011-08-10 17:11:11 +00:00
array (
'name' => __ ( 'Cart Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_cart]' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_cart_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Checkout Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_checkout]' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_checkout_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Pay Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_pay] Parent: "Checkout"' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_pay_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Thanks Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_thankyou] Parent: "Checkout"' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_thanks_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'My Account Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_my_account]' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_myaccount_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Edit Address Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_edit_address] Parent: "My Account"' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_edit_address_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'View Order Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_view_order] Parent: "My Account"' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_view_order_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
array (
'name' => __ ( 'Change Password Page' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Page contents: [woocommerce_change_password] Parent: "My Account"' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_change_password_page_id' ,
'css' => 'min-width:50px;' ,
'type' => 'single_select_page' ,
'std' => ''
),
2011-09-15 12:59:06 +00:00
array ( 'type' => 'sectionend' , 'id' => 'page_options' ),
2011-09-15 16:37:38 +00:00
)); // End pages settings
$woocommerce_settings [ 'catalog' ] = apply_filters ( 'woocommerce_catalog_settings' , array (
2011-09-09 15:09:22 +00:00
array ( 'name' => __ ( 'Catalog Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'catalog_options' ),
2011-08-10 17:11:11 +00:00
2011-08-13 13:57:48 +00:00
array (
'name' => __ ( 'Product fields' , 'woothemes' ),
'desc' => __ ( 'Enable the SKU field for products' , 'woothemes' ),
'id' => 'woocommerce_enable_sku' ,
'std' => 'yes' ,
'type' => 'checkbox' ,
'checkboxgroup' => 'start'
),
2011-08-10 17:11:11 +00:00
array (
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Enable the weight field for products' , 'woothemes' ),
'id' => 'woocommerce_enable_weight' ,
'std' => 'yes' ,
'type' => 'checkbox' ,
'checkboxgroup' => 'end'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Weight Unit' , 'woothemes' ),
'desc' => __ ( " This controls what unit you will define weights in. " , 'woothemes' ),
'id' => 'woocommerce_weight_unit' ,
'css' => 'min-width:175px;' ,
'std' => 'GBP' ,
2011-08-10 17:11:11 +00:00
'type' => 'select' ,
2011-08-13 13:57:48 +00:00
'options' => array (
'kg' => __ ( 'kg' , 'woothemes' ),
'lbs' => __ ( 'lbs' , 'woothemes' )
2011-08-10 17:11:11 +00:00
)
),
2011-08-18 23:14:35 +00:00
array (
'name' => __ ( 'Cart redirect' , 'woothemes' ),
'desc' => __ ( 'Redirect to cart after adding a product to the cart (on single product pages)' , 'woothemes' ),
'id' => 'woocommerce_cart_redirect_after_add' ,
'std' => 'no' ,
'type' => 'checkbox'
),
2011-09-09 15:09:22 +00:00
array ( 'type' => 'sectionend' , 'id' => 'catalog_options' ),
2011-08-13 13:57:48 +00:00
2011-09-09 15:09:22 +00:00
array ( 'name' => __ ( 'Image Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'image_options' ),
2011-08-27 19:20:28 +00:00
array (
'name' => __ ( 'Catalog images' , 'woothemes' ),
'desc' => '' ,
'id' => 'woocommerce_catalog_image' ,
'css' => '' ,
'type' => 'image_width' ,
'std' => '150'
),
array (
'name' => __ ( 'Single product images' , 'woothemes' ),
'desc' => '' ,
'id' => 'woocommerce_single_image' ,
'css' => '' ,
'type' => 'image_width' ,
'std' => '300'
),
array (
'name' => __ ( 'Thumbnail images' , 'woothemes' ),
'desc' => '' ,
'id' => 'woocommerce_thumbnail_image' ,
'css' => '' ,
'type' => 'image_width' ,
'std' => '90'
),
2011-09-09 15:09:22 +00:00
array ( 'type' => 'sectionend' , 'id' => 'image_options' ),
2011-08-27 19:20:28 +00:00
2011-09-09 15:09:22 +00:00
array ( 'name' => __ ( 'Pricing Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'pricing_options' ),
2011-08-13 13:57:48 +00:00
2011-08-10 17:11:11 +00:00
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 <a target='_new' href='%s'>PayPal currencies</a>. " , 'woothemes' ), 'https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/mc/mc_intro-outside' ),
'tip' => '' ,
'id' => 'woocommerce_currency' ,
2011-08-13 13:57:48 +00:00
'css' => 'min-width:175px;' ,
2011-08-10 17:11:11 +00:00
'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' ,
2011-08-13 13:57:48 +00:00
'css' => 'min-width:175px;' ,
2011-08-10 17:11:11 +00:00
'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' ,
),
2011-09-09 15:09:22 +00:00
array ( 'type' => 'sectionend' , 'id' => 'pricing_options' ),
2011-08-10 17:11:11 +00:00
2011-09-15 16:37:38 +00:00
)); // End catalog settings
$woocommerce_settings [ 'inventory' ] = apply_filters ( 'woocommerce_inventory_settings' , array (
2011-09-09 15:09:22 +00:00
array ( 'name' => __ ( 'Inventory Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'inventory_options' ),
2011-08-10 17:11:11 +00:00
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Manage stock' , 'woothemes' ),
'desc' => __ ( 'Enable stock management' , 'woothemes' ),
'id' => 'woocommerce_manage_stock' ,
'std' => 'yes' ,
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Notifications' , 'woothemes' ),
'desc' => __ ( 'Enable low stock notifications' , 'woothemes' ),
'id' => 'woocommerce_notify_low_stock' ,
2011-08-10 17:11:11 +00:00
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox' ,
'checkboxgroup' => 'start'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Enable out of stock notifications' , 'woothemes' ),
'id' => 'woocommerce_notify_no_stock' ,
2011-08-10 17:11:11 +00:00
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox' ,
'checkboxgroup' => 'end'
2011-08-10 17:11:11 +00:00
),
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 threshold' , 'woothemes' ),
'desc' => '' ,
'tip' => '' ,
'id' => 'woocommerce_notify_no_stock_amount' ,
'css' => 'min-width:50px;' ,
'type' => 'text' ,
'std' => '0'
),
2011-08-17 23:42:07 +00:00
array (
'name' => __ ( 'Out of stock visibility' , 'woothemes' ),
'desc' => __ ( 'Hide out of stock items from the catalog' , 'woothemes' ),
'id' => 'woocommerce_hide_out_of_stock_items' ,
'std' => 'no' ,
'type' => 'checkbox'
),
2011-09-09 15:09:22 +00:00
array ( 'type' => 'sectionend' , 'id' => 'inventory_options' ),
2011-09-15 16:37:38 +00:00
)); // End inventory settings
$woocommerce_settings [ 'shipping' ] = apply_filters ( 'woocommerce_shipping_settings' , array (
array ( 'name' => __ ( 'Shipping Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'shipping_options' ),
2011-08-10 17:11:11 +00:00
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Calculate shipping' , 'woothemes' ),
'desc' => __ ( 'Enable shipping/shipping calculations' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_calc_shipping' ,
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Shipping calculator' , 'woothemes' ),
'desc' => __ ( 'Enable the shipping calculator on the cart page' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_enable_shipping_calc' ,
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Ship to billing' , 'woothemes' ),
'desc' => __ ( 'Only ship to the users billing address' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_ship_to_billing_address_only' ,
'std' => 'no' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
2011-09-15 16:37:38 +00:00
array ( 'type' => 'sectionend' , 'id' => 'shipping_options' ),
)); // End shipping settings
$woocommerce_settings [ 'tax' ] = apply_filters ( 'woocommerce_tax_settings' , array (
2011-08-19 20:11:04 +00:00
2011-09-14 14:55:03 +00:00
array ( 'name' => __ ( 'Tax Options' , 'woothemes' ), 'type' => 'title' , 'desc' => '' , 'id' => 'tax_options' ),
2011-08-10 17:11:11 +00:00
array (
'name' => __ ( 'Calculate Taxes' , 'woothemes' ),
2011-08-13 13:57:48 +00:00
'desc' => __ ( 'Enable taxes and tax calculations' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_calc_taxes' ,
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
array (
2011-08-13 13:57:48 +00:00
'name' => __ ( 'Prices inclusive of tax' , 'woothemes' ),
'desc' => __ ( 'Catalog Prices include tax' , 'woothemes' ),
2011-08-10 17:11:11 +00:00
'id' => 'woocommerce_prices_include_tax' ,
'std' => 'yes' ,
2011-08-13 13:57:48 +00:00
'type' => 'checkbox'
2011-08-10 17:11:11 +00:00
),
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 <em>Standard Rate</em>.' , '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 \n Zero 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' => ''
),
2011-09-14 14:55:03 +00:00
array ( 'type' => 'sectionend' , 'id' => 'tax_options' ),
2011-08-13 13:57:48 +00:00
2011-09-15 16:37:38 +00:00
)); // End tax settings
2011-08-13 13:57:48 +00:00
/**
* Settings page
*
2011-09-09 14:23:32 +00:00
* Handles the display of the main woocommerce settings page in admin .
2011-08-13 13:57:48 +00:00
*/
function woocommerce_settings () {
2011-09-15 16:37:38 +00:00
global $woocommerce , $woocommerce_settings ;
2011-09-09 14:23:32 +00:00
2011-09-15 16:37:38 +00:00
$current_tab = ( isset ( $_GET [ 'tab' ])) ? $_GET [ 'tab' ] : 'general' ;
if ( isset ( $_POST ) && $_POST ) :
if ( ! wp_verify_nonce ( $_REQUEST [ '_wpnonce' ], 'woocommerce-settings' ) ) die ( __ ( 'Action failed. Please refresh the page and retry.' , 'woothemes' ) );
switch ( $current_tab ) :
case " general " :
case " pages " :
case " catalog " :
case " inventory " :
case " shipping " :
case " tax " :
woocommerce_update_options ( $woocommerce_settings [ $current_tab ]);
break ;
endswitch ;
do_action ( 'woocommerce_update_options' );
do_action ( 'woocommerce_update_options_' . $current_tab );
flush_rewrite_rules ( false );
wp_redirect ( add_query_arg ( 'saved' , 'true' , admin_url ( 'admin.php?page=woocommerce&tab=' . $current_tab ) ));
2011-09-09 14:23:32 +00:00
endif ;
2011-09-05 08:28:17 +00:00
if ( isset ( $_GET [ 'saved' ]) && $_GET [ 'saved' ]) :
echo '<div id="message" class="updated fade"><p><strong>' . __ ( 'Your settings have been saved.' , 'woothemes' ) . '</strong></p></div>' ;
flush_rewrite_rules ( false );
endif ;
2011-08-13 13:57:48 +00:00
?>
< div class = " wrap woocommerce " >
< form method = " post " id = " mainform " action = " " >
2011-09-09 14:23:32 +00:00
< div class = " icon32 icon32-woocommerce-settings " id = " icon-woocommerce " >< br ></ div >< h2 class = " nav-tab-wrapper woo-nav-tab-wrapper " >
< ? php
2011-09-15 16:37:38 +00:00
$tabs = array (
'general' => __ ( 'General' , 'woothemes' ),
'pages' => __ ( 'Pages' , 'woothemes' ),
'catalog' => __ ( 'Catalog' , 'woothemes' ),
'inventory' => __ ( 'Inventory' , 'woothemes' ),
'shipping' => __ ( 'Shipping' , 'woothemes' ),
'tax' => __ ( 'Tax' , 'woothemes' ),
'shipping_methods' => __ ( 'Shipping Methods' , 'woothemes' ),
'payment_gateways' => __ ( 'Payment Gateways' , 'woothemes' )
);
foreach ( $tabs as $name => $label ) :
echo '<a href="' . admin_url ( 'admin.php?page=woocommerce&tab=' . $name ) . '" class="nav-tab ' ;
if ( $current_tab == $name ) echo 'nav-tab-active' ;
echo '">' . $label . '</a>' ;
endforeach ;
2011-09-09 14:23:32 +00:00
?>
2011-09-15 16:37:38 +00:00
< ? php do_action ( 'woocommerce_settings_tabs' ); ?>
2011-09-09 14:23:32 +00:00
</ h2 >
2011-08-31 13:40:02 +00:00
< ? php wp_nonce_field ( 'woocommerce-settings' , '_wpnonce' , true , true ); ?>
2011-09-15 16:37:38 +00:00
< ? php
switch ( $current_tab ) :
case " general " :
case " pages " :
case " catalog " :
case " inventory " :
case " shipping " :
case " tax " :
woocommerce_admin_fields ( $woocommerce_settings [ $current_tab ]);
break ;
case " shipping_methods " :
$links = array ();
foreach ( $woocommerce -> shipping -> shipping_methods as $method ) :
$title = ( $method -> method_title ) ? ucwords ( $method -> method_title ) : ucwords ( $method -> id );
$links [] = '<a href="#shipping-' . $method -> id . '">' . $title . '</a>' ;
endforeach ;
echo '<div class="subsubsub_section"><ul class="subsubsub"><li>' . implode ( ' | </li><li>' , $links ) . '</li></ul><br class="clear" />' ;
foreach ( $woocommerce -> shipping -> shipping_methods as $method ) :
echo '<div class="section" id="shipping-' . $method -> id . '">' ;
$method -> admin_options ();
echo '</div>' ;
endforeach ;
echo '</div>' ;
break ;
case " payment_gateways " :
$links = array ();
foreach ( $woocommerce -> payment_gateways -> payment_gateways () as $gateway ) :
2011-09-16 11:15:49 +00:00
$title = ( isset ( $gateway -> method_title ) && $gateway -> method_title ) ? ucwords ( $gateway -> method_title ) : ucwords ( $gateway -> id );
2011-09-15 16:37:38 +00:00
$links [] = '<a href="#gateway-' . $gateway -> id . '">' . $title . '</a>' ;
endforeach ;
echo '<div class="subsubsub_section"><ul class="subsubsub"><li>' . implode ( ' | </li><li>' , $links ) . '</li></ul><br class="clear" />' ;
foreach ( $woocommerce -> payment_gateways -> payment_gateways () as $gateway ) :
echo '<div class="section" id="gateway-' . $gateway -> id . '">' ;
$gateway -> admin_options ();
echo '</div>' ;
endforeach ;
echo '</div>' ;
break ;
default :
do_action ( 'woocommerce_settings_tabs_' . $current_tab );
break ;
endswitch ;
?>
2011-09-09 14:23:32 +00:00
< p class = " submit " >< input name = " save " class = " button-primary " type = " submit " value = " <?php _e('Save changes', 'woothemes') ?> " /></ p >
2011-08-13 13:57:48 +00:00
</ form >
2011-09-15 16:37:38 +00:00
< script type = " text/javascript " >
// Subsubsub tabs
jQuery ( 'ul.subsubsub li a:eq(0)' ) . addClass ( 'current' );
jQuery ( '.subsubsub_section .section:gt(0)' ) . hide ();
jQuery ( 'ul.subsubsub li a' ) . click ( function (){
jQuery ( 'a' , jQuery ( this ) . closest ( 'ul.subsubsub' )) . removeClass ( 'current' );
jQuery ( this ) . addClass ( 'current' );
jQuery ( '.section' , jQuery ( this ) . closest ( '.subsubsub_section' )) . hide ();
jQuery ( jQuery ( this ) . attr ( 'href' ) ) . show ();
return false ;
});
// Countries
jQuery ( 'select#woocommerce_allowed_countries' ) . change ( function (){
if ( jQuery ( this ) . val () == " specific " ) {
jQuery ( this ) . parent () . parent () . next ( 'tr.multi_select_countries' ) . show ();
} else {
jQuery ( this ) . parent () . parent () . next ( 'tr.multi_select_countries' ) . hide ();
}
}) . change ();
// Country Multiselect boxes
jQuery ( " .country_multiselect " ) . multiselect ({
noneSelectedText : '<?php _e(' Select countries / states ', ' woothemes '); ?>' ,
selectedList : 4
});
// Edit prompt
jQuery ( function (){
var changed = false ;
jQuery ( 'input, textarea, select, checkbox' ) . change ( function (){
changed = true ;
});
jQuery ( '.woo-nav-tab-wrapper a' ) . click ( function (){
if ( changed ) {
window . onbeforeunload = function () {
return '<?php echo __(' The changes you made will be lost if you navigate away from this page . ', ' woothemes '); ?>' ;
}
} else {
window . onbeforeunload = '' ;
}
});
jQuery ( '.submit input' ) . click ( function (){
window . onbeforeunload = '' ;
});
});
</ script >
2011-08-13 13:57:48 +00:00
</ div >
< ? php
2011-08-15 16:48:24 +00:00
}