diff --git a/includes/admin/settings/class-wc-settings-products.php b/includes/admin/settings/class-wc-settings-products.php index c7b762e14f7..f204c48e1ba 100644 --- a/includes/admin/settings/class-wc-settings-products.php +++ b/includes/admin/settings/class-wc-settings-products.php @@ -77,7 +77,161 @@ class WC_Settings_Products extends WC_Settings_Page { * @return array */ public function get_settings( $current_section = '' ) { - if ( $current_section == 'inventory' ) { + if ( $current_section == 'display' ) { + + // Get shop page + $shop_page_id = wc_get_page_id('shop'); + + $base_slug = ($shop_page_id > 0 && get_post( $shop_page_id )) ? get_page_uri( $shop_page_id ) : 'shop'; + + $woocommerce_prepend_shop_page_to_products_warning = ''; + + if ( $shop_page_id > 0 && sizeof(get_pages("child_of=$shop_page_id")) > 0 ) { + $woocommerce_prepend_shop_page_to_products_warning = ' ' . __( 'Note: The shop page has children - child pages will not work if you enable this option.', 'woocommerce' ) . ''; + } + + $settings = apply_filters( 'woocommerce_product_settings', array( + + array( 'title' => __( 'Shop & Product Pages', 'woocommerce' ), 'type' => 'title','desc' => '', 'id' => 'catalog_options' ), + + array( + 'title' => __( 'Shop Page', 'woocommerce' ), + 'desc' => '
' . sprintf( __( 'The base page can also be used in your product permalinks.', 'woocommerce' ), admin_url( 'options-permalink.php' ) ), + 'id' => 'woocommerce_shop_page_id', + 'type' => 'single_select_page', + 'default' => '', + 'class' => 'chosen_select_nostd', + 'css' => 'min-width:300px;', + 'desc_tip' => __( 'This sets the base page of your shop - this is where your product archive will be.', 'woocommerce' ), + ), + + array( + 'title' => __( 'Shop Page Display', 'woocommerce' ), + 'desc' => __( 'This controls what is shown on the product archive.', 'woocommerce' ), + 'id' => 'woocommerce_shop_page_display', + 'class' => 'chosen_select', + 'css' => 'min-width:300px;', + 'default' => '', + 'type' => 'select', + 'options' => array( + '' => __( 'Show products', 'woocommerce' ), + 'subcategories' => __( 'Show subcategories', 'woocommerce' ), + 'both' => __( 'Show both', 'woocommerce' ), + ), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Default Category Display', 'woocommerce' ), + 'desc' => __( 'This controls what is shown on category archives.', 'woocommerce' ), + 'id' => 'woocommerce_category_archive_display', + 'class' => 'chosen_select', + 'css' => 'min-width:300px;', + 'default' => '', + 'type' => 'select', + 'options' => array( + '' => __( 'Show products', 'woocommerce' ), + 'subcategories' => __( 'Show subcategories', 'woocommerce' ), + 'both' => __( 'Show both', 'woocommerce' ), + ), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Default Product Sorting', 'woocommerce' ), + 'desc' => __( 'This controls the default sort order of the catalog.', 'woocommerce' ), + 'id' => 'woocommerce_default_catalog_orderby', + 'class' => 'chosen_select', + 'css' => 'min-width:300px;', + 'default' => 'title', + 'type' => 'select', + 'options' => apply_filters('woocommerce_default_catalog_orderby_options', array( + 'menu_order' => __( 'Default sorting (custom ordering + name)', 'woocommerce' ), + 'popularity' => __( 'Popularity (sales)', 'woocommerce' ), + 'rating' => __( 'Average Rating', 'woocommerce' ), + 'date' => __( 'Sort by most recent', 'woocommerce' ), + 'price' => __( 'Sort by price (asc)', 'woocommerce' ), + 'price-desc' => __( 'Sort by price (desc)', 'woocommerce' ), + )), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Add to cart behaviour', 'woocommerce' ), + 'desc' => __( 'Redirect to the cart page after successful addition', 'woocommerce' ), + 'id' => 'woocommerce_cart_redirect_after_add', + 'default' => 'no', + 'type' => 'checkbox', + 'checkboxgroup' => 'start' + ), + + array( + 'desc' => __( 'Enable AJAX add to cart buttons on archives', 'woocommerce' ), + 'id' => 'woocommerce_enable_ajax_add_to_cart', + 'default' => 'yes', + 'type' => 'checkbox', + 'checkboxgroup' => 'end' + ), + + array( 'type' => 'sectionend', 'id' => 'catalog_options' ), + + array( 'title' => __( 'Product Images', 'woocommerce' ), 'type' => 'title','desc' => sprintf(__( 'These settings affect the display and dimensions of images in your catalog - the display on the front-end will still be affected by CSS styles. After changing these settings you may need to regenerate your thumbnails.', 'woocommerce' ), 'http://wordpress.org/extend/plugins/regenerate-thumbnails/'), 'id' => 'image_options' ), + + array( + 'title' => __( 'Catalog Images', 'woocommerce' ), + 'desc' => __( 'This size is usually used in product listings', 'woocommerce' ), + 'id' => 'shop_catalog_image_size', + 'css' => '', + 'type' => 'image_width', + 'default' => array( + 'width' => '300', + 'height' => '300', + 'crop' => 1 + ), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Single Product Image', 'woocommerce' ), + 'desc' => __( 'This is the size used by the main image on the product page.', 'woocommerce' ), + 'id' => 'shop_single_image_size', + 'css' => '', + 'type' => 'image_width', + 'default' => array( + 'width' => '600', + 'height' => '600', + 'crop' => 1 + ), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Product Thumbnails', 'woocommerce' ), + 'desc' => __( 'This size is usually used for the gallery of images on the product page.', 'woocommerce' ), + 'id' => 'shop_thumbnail_image_size', + 'css' => '', + 'type' => 'image_width', + 'default' => array( + 'width' => '180', + 'height' => '180', + 'crop' => 1 + ), + 'desc_tip' => true, + ), + + array( + 'title' => __( 'Product Image Gallery', 'woocommerce' ), + 'desc' => __( 'Enable Lightbox for product images', 'woocommerce' ), + 'id' => 'woocommerce_enable_lightbox', + 'default' => 'yes', + 'desc_tip' => __( 'Include WooCommerce\'s lightbox. Product gallery images will open in a lightbox.', 'woocommerce' ), + 'type' => 'checkbox' + ), + + array( 'type' => 'sectionend', 'id' => 'image_options' ) + + )); + } elseif ( $current_section == 'inventory' ) { $settings = apply_filters( 'woocommerce_inventory_settings', array( @@ -234,160 +388,6 @@ class WC_Settings_Products extends WC_Settings_Page { )); - } elseif ( $current_section == 'display' ) { - - // Get shop page - $shop_page_id = wc_get_page_id('shop'); - - $base_slug = ($shop_page_id > 0 && get_post( $shop_page_id )) ? get_page_uri( $shop_page_id ) : 'shop'; - - $woocommerce_prepend_shop_page_to_products_warning = ''; - - if ( $shop_page_id > 0 && sizeof(get_pages("child_of=$shop_page_id")) > 0 ) { - $woocommerce_prepend_shop_page_to_products_warning = ' ' . __( 'Note: The shop page has children - child pages will not work if you enable this option.', 'woocommerce' ) . ''; - } - - $settings = apply_filters( 'woocommerce_product_settings', array( - - array( 'title' => __( 'Shop & Product Pages', 'woocommerce' ), 'type' => 'title','desc' => '', 'id' => 'catalog_options' ), - - array( - 'title' => __( 'Shop Page', 'woocommerce' ), - 'desc' => '
' . sprintf( __( 'The base page can also be used in your product permalinks.', 'woocommerce' ), admin_url( 'options-permalink.php' ) ), - 'id' => 'woocommerce_shop_page_id', - 'type' => 'single_select_page', - 'default' => '', - 'class' => 'chosen_select_nostd', - 'css' => 'min-width:300px;', - 'desc_tip' => __( 'This sets the base page of your shop - this is where your product archive will be.', 'woocommerce' ), - ), - - array( - 'title' => __( 'Shop Page Display', 'woocommerce' ), - 'desc' => __( 'This controls what is shown on the product archive.', 'woocommerce' ), - 'id' => 'woocommerce_shop_page_display', - 'class' => 'chosen_select', - 'css' => 'min-width:300px;', - 'default' => '', - 'type' => 'select', - 'options' => array( - '' => __( 'Show products', 'woocommerce' ), - 'subcategories' => __( 'Show subcategories', 'woocommerce' ), - 'both' => __( 'Show both', 'woocommerce' ), - ), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Default Category Display', 'woocommerce' ), - 'desc' => __( 'This controls what is shown on category archives.', 'woocommerce' ), - 'id' => 'woocommerce_category_archive_display', - 'class' => 'chosen_select', - 'css' => 'min-width:300px;', - 'default' => '', - 'type' => 'select', - 'options' => array( - '' => __( 'Show products', 'woocommerce' ), - 'subcategories' => __( 'Show subcategories', 'woocommerce' ), - 'both' => __( 'Show both', 'woocommerce' ), - ), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Default Product Sorting', 'woocommerce' ), - 'desc' => __( 'This controls the default sort order of the catalog.', 'woocommerce' ), - 'id' => 'woocommerce_default_catalog_orderby', - 'class' => 'chosen_select', - 'css' => 'min-width:300px;', - 'default' => 'title', - 'type' => 'select', - 'options' => apply_filters('woocommerce_default_catalog_orderby_options', array( - 'menu_order' => __( 'Default sorting (custom ordering + name)', 'woocommerce' ), - 'popularity' => __( 'Popularity (sales)', 'woocommerce' ), - 'rating' => __( 'Average Rating', 'woocommerce' ), - 'date' => __( 'Sort by most recent', 'woocommerce' ), - 'price' => __( 'Sort by price (asc)', 'woocommerce' ), - 'price-desc' => __( 'Sort by price (desc)', 'woocommerce' ), - )), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Add to cart behaviour', 'woocommerce' ), - 'desc' => __( 'Redirect to the cart page after successful addition', 'woocommerce' ), - 'id' => 'woocommerce_cart_redirect_after_add', - 'default' => 'no', - 'type' => 'checkbox', - 'checkboxgroup' => 'start' - ), - - array( - 'desc' => __( 'Enable AJAX add to cart buttons on archives', 'woocommerce' ), - 'id' => 'woocommerce_enable_ajax_add_to_cart', - 'default' => 'yes', - 'type' => 'checkbox', - 'checkboxgroup' => 'end' - ), - - array( 'type' => 'sectionend', 'id' => 'catalog_options' ), - - array( 'title' => __( 'Product Images', 'woocommerce' ), 'type' => 'title','desc' => sprintf(__( 'These settings affect the display and dimensions of images in your catalog - the display on the front-end will still be affected by CSS styles. After changing these settings you may need to regenerate your thumbnails.', 'woocommerce' ), 'http://wordpress.org/extend/plugins/regenerate-thumbnails/'), 'id' => 'image_options' ), - - array( - 'title' => __( 'Catalog Images', 'woocommerce' ), - 'desc' => __( 'This size is usually used in product listings', 'woocommerce' ), - 'id' => 'shop_catalog_image_size', - 'css' => '', - 'type' => 'image_width', - 'default' => array( - 'width' => '300', - 'height' => '300', - 'crop' => 1 - ), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Single Product Image', 'woocommerce' ), - 'desc' => __( 'This is the size used by the main image on the product page.', 'woocommerce' ), - 'id' => 'shop_single_image_size', - 'css' => '', - 'type' => 'image_width', - 'default' => array( - 'width' => '600', - 'height' => '600', - 'crop' => 1 - ), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Product Thumbnails', 'woocommerce' ), - 'desc' => __( 'This size is usually used for the gallery of images on the product page.', 'woocommerce' ), - 'id' => 'shop_thumbnail_image_size', - 'css' => '', - 'type' => 'image_width', - 'default' => array( - 'width' => '180', - 'height' => '180', - 'crop' => 1 - ), - 'desc_tip' => true, - ), - - array( - 'title' => __( 'Product Image Gallery', 'woocommerce' ), - 'desc' => __( 'Enable Lightbox for product images', 'woocommerce' ), - 'id' => 'woocommerce_enable_lightbox', - 'default' => 'yes', - 'desc_tip' => __( 'Include WooCommerce\'s lightbox. Product gallery images will open in a lightbox.', 'woocommerce' ), - 'type' => 'checkbox' - ), - - array( 'type' => 'sectionend', 'id' => 'image_options' ) - - )); } else { $settings = apply_filters( 'woocommerce_products_general_settings', array( array( 'title' => __( 'Measurements', 'woocommerce' ), 'type' => 'title', 'id' => 'product_measurement_options' ),