ng( 'generate_woocommerce_settings[cart_menu_item_icon]', array( 'default' => $defaults['cart_menu_item_icon'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[cart_menu_item_icon]', array( 'type' => 'select', 'label' => __( 'Menu Item Icon', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'shopping-cart' => __( 'Shopping Cart', 'gp-premium' ), 'shopping-bag' => __( 'Shopping Bag', 'gp-premium' ), 'shopping-basket' => __( 'Shopping Basket', 'gp-premium' ), ), 'settings' => 'generate_woocommerce_settings[cart_menu_item_icon]', 'active_callback' => 'generatepress_wc_menu_cart_active', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[cart_menu_item_content]', array( 'default' => $defaults['cart_menu_item_content'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[cart_menu_item_content]', array( 'type' => 'select', 'label' => __( 'Menu Item Content', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'amount' => __( 'Amount', 'gp-premium' ), 'number' => __( 'Number of Items', 'gp-premium' ), ), 'settings' => 'generate_woocommerce_settings[cart_menu_item_content]', 'active_callback' => 'generatepress_wc_menu_cart_active', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[breadcrumbs]', array( 'default' => $defaults['breadcrumbs'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[breadcrumbs]', array( 'type' => 'checkbox', 'label' => __( 'Display breadcrumbs', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[breadcrumbs]', ) ); $wp_customize->add_control( new GeneratePress_Title_Customize_Control( $wp_customize, 'generate_woocommerce_shop_page_title', array( 'section' => 'generate_woocommerce_layout', 'type' => 'generatepress-customizer-title', 'title' => __( 'Shop', 'gp-premium' ), 'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname' ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[sidebar_layout]', array( 'default' => $defaults['sidebar_layout'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[sidebar_layout]', array( 'type' => 'select', 'label' => __( 'Sidebar Layout', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'left-sidebar' => __( 'Sidebar / Content', 'gp-premium' ), 'right-sidebar' => __( 'Content / Sidebar', 'gp-premium' ), 'no-sidebar' => __( 'Content (no sidebars)', 'gp-premium' ), 'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'gp-premium' ), 'both-left' => __( 'Sidebar / Sidebar / Content', 'gp-premium' ), 'both-right' => __( 'Content / Sidebar / Sidebar', 'gp-premium' ) ), 'settings' => 'generate_woocommerce_settings[sidebar_layout]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[columns]', array( 'default' => $defaults['columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[tablet_columns]', array( 'default' => $defaults['tablet_columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[mobile_columns]', array( 'default' => $defaults['mobile_columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_control( new GeneratePress_Pro_Range_Slider_Control( $wp_customize, 'gp_woocommerce_columns', array( 'label' => __( 'Product Columns', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => array( 'desktop' => 'generate_woocommerce_settings[columns]', 'tablet' => 'generate_woocommerce_settings[tablet_columns]', 'mobile' => 'generate_woocommerce_settings[mobile_columns]', ), 'choices' => array( 'desktop' => array( 'min' => 1, 'max' => 6, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), 'tablet' => array( 'min' => 1, 'max' => 3, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), 'mobile' => array( 'min' => 1, 'max' => 3, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), ), ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[columns_gap]', array( 'default' => $defaults['columns_gap'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[tablet_columns_gap]', array( 'default' => $defaults['tablet_columns_gap'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'generate_premium_sanitize_empty_absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[mobile_columns_gap]', array( 'default' => $defaults['mobile_columns_gap'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'generate_premium_sanitize_empty_absint' ) ); $wp_customize->add_control( new GeneratePress_Pro_Range_Slider_Control( $wp_customize, 'gp_woocommerce_column_gap', array( 'label' => __( 'Column Gap', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => array( 'desktop' => 'generate_woocommerce_settings[columns_gap]', 'tablet' => 'generate_woocommerce_settings[tablet_columns_gap]', 'mobile' => 'generate_woocommerce_settings[mobile_columns_gap]', ), 'choices' => array( 'desktop' => array( 'min' => 0, 'max' => 100, 'step' => 5, 'edit' => true, 'unit' => 'px', ), 'tablet' => array( 'min' => 0, 'max' => 100, 'step' => 5, 'edit' => true, 'unit' => 'px', ), 'mobile' => array( 'min' => 0, 'max' => 100, 'step' => 5, 'edit' => true, 'unit' => 'px', ), ), ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_image_alignment]', array( 'default' => $defaults['product_archive_image_alignment'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_image_alignment]', array( 'type' => 'radio', 'label' => __( 'Image Alignment', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'left' => __( 'Left', 'gp-premium' ), 'center' => __( 'Center', 'gp-premium' ), 'right' => __( 'Right', 'gp-premium' ), ), 'settings' => 'generate_woocommerce_settings[product_archive_image_alignment]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[products_per_page]', array( 'default' => $defaults['products_per_page'], 'type' => 'option', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[products_per_page]', array( 'type' => 'text', 'label' => __( 'Products Per Page', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[products_per_page]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_alignment]', array( 'default' => $defaults['product_archive_alignment'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_alignment]', array( 'type' => 'radio', 'label' => __( 'Text Alignment', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'left' => __( 'Left', 'gp-premium' ), 'center' => __( 'Center', 'gp-premium' ), 'right' => __( 'Right', 'gp-premium' ), ), 'settings' => 'generate_woocommerce_settings[product_archive_alignment]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[off_canvas_panel_on_add_to_cart]', array( 'default' => $defaults['off_canvas_panel_on_add_to_cart'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[off_canvas_panel_on_add_to_cart]', array( 'type' => 'checkbox', 'label' => __( 'Display cart panel on add to cart', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[off_canvas_panel_on_add_to_cart]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[shop_page_title]', array( 'default' => $defaults['shop_page_title'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[shop_page_title]', array( 'type' => 'checkbox', 'label' => __( 'Display page title', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[shop_page_title]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_results_count]', array( 'default' => $defaults['product_results_count'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_results_count]', array( 'type' => 'checkbox', 'label' => __( 'Display product results count', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_results_count]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_sorting]', array( 'default' => $defaults['product_sorting'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_sorting]', array( 'type' => 'checkbox', 'label' => __( 'Display product sorting', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_sorting]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_image]', array( 'default' => $defaults['product_archive_image'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_image]', array( 'type' => 'checkbox', 'label' => __( 'Display product image', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_image]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_secondary_image]', array( 'default' => $defaults['product_secondary_image'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_secondary_image]', array( 'type' => 'checkbox', 'label' => __( 'Display secondary image on hover', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_secondary_image]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_title]', array( 'default' => $defaults['product_archive_title'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_title]', array( 'type' => 'checkbox', 'label' => __( 'Display product title', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_title]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_sale_flash]', array( 'default' => $defaults['product_archive_sale_flash'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_sale_flash]', array( 'type' => 'checkbox', 'label' => __( 'Display sale flash', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_sale_flash]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_sale_flash_overlay]', array( 'default' => $defaults['product_archive_sale_flash_overlay'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_sale_flash_overlay]', array( 'type' => 'checkbox', 'label' => __( 'Sale flash over image', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_sale_flash_overlay]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_rating]', array( 'default' => $defaults['product_archive_rating'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_rating]', array( 'type' => 'checkbox', 'label' => __( 'Display rating', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_rating]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_price]', array( 'default' => $defaults['product_archive_price'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_price]', array( 'type' => 'checkbox', 'label' => __( 'Display price', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_price]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_add_to_cart]', array( 'default' => $defaults['product_archive_add_to_cart'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_add_to_cart]', array( 'type' => 'checkbox', 'label' => __( 'Display add to cart button', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_add_to_cart]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_archive_description]', array( 'default' => $defaults['product_archive_description'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_archive_description]', array( 'type' => 'checkbox', 'label' => __( 'Display short description', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_archive_description]', ) ); $wp_customize->add_control( new GeneratePress_Title_Customize_Control( $wp_customize, 'generate_woocommerce_single_product_title', array( 'section' => 'generate_woocommerce_layout', 'type' => 'generatepress-customizer-title', 'title' => __( 'Single Product', 'gp-premium' ), 'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname' ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[single_sidebar_layout]', array( 'default' => $defaults['single_sidebar_layout'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_choices' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[single_sidebar_layout]', array( 'type' => 'select', 'label' => __( 'Sidebar Layout', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'choices' => array( 'inherit' => __( 'Inherit', 'gp-premium' ), 'left-sidebar' => __( 'Sidebar / Content', 'gp-premium' ), 'right-sidebar' => __( 'Content / Sidebar', 'gp-premium' ), 'no-sidebar' => __( 'Content (no sidebars)', 'gp-premium' ), 'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'gp-premium' ), 'both-left' => __( 'Sidebar / Sidebar / Content', 'gp-premium' ), 'both-right' => __( 'Content / Sidebar / Sidebar', 'gp-premium' ) ), 'settings' => 'generate_woocommerce_settings[single_sidebar_layout]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[single_product_image_width]', array( 'default' => $defaults['single_product_image_width'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_control( new GeneratePress_Pro_Range_Slider_Control( $wp_customize, 'gp_woocommerce_single_product_image_width', array( 'label' => __( 'Product Image Area Width', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => array( 'desktop' => 'generate_woocommerce_settings[single_product_image_width]', ), 'choices' => array( 'desktop' => array( 'min' => 10, 'max' => 100, 'step' => 5, 'edit' => true, 'unit' => '%', ), ), ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[sticky_add_to_cart_panel]', array( 'default' => $defaults['sticky_add_to_cart_panel'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[sticky_add_to_cart_panel]', array( 'type' => 'checkbox', 'label' => __( 'Display add to cart panel on scroll', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[sticky_add_to_cart_panel]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[quantity_buttons]', array( 'default' => $defaults['quantity_buttons'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[quantity_buttons]', array( 'type' => 'checkbox', 'label' => __( 'Display quantity buttons', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[quantity_buttons]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[single_product_sale_flash]', array( 'default' => $defaults['single_product_sale_flash'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[single_product_sale_flash]', array( 'type' => 'checkbox', 'label' => __( 'Display sale flash', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[single_product_sale_flash]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_tabs]', array( 'default' => $defaults['product_tabs'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_tabs]', array( 'type' => 'checkbox', 'label' => __( 'Display product tabs', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_tabs]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_related]', array( 'default' => $defaults['product_related'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_related]', array( 'type' => 'checkbox', 'label' => __( 'Display related products', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_related]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_upsells]', array( 'default' => $defaults['product_upsells'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_upsells]', array( 'type' => 'checkbox', 'label' => __( 'Display upsell products', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_upsells]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[related_upsell_columns]', array( 'default' => $defaults['related_upsell_columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[tablet_related_upsell_columns]', array( 'default' => $defaults['tablet_related_upsell_columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[mobile_related_upsell_columns]', array( 'default' => $defaults['mobile_related_upsell_columns'], 'type' => 'option', 'capability' => 'edit_theme_options', 'sanitize_callback' => 'absint' ) ); $wp_customize->add_control( new GeneratePress_Pro_Range_Slider_Control( $wp_customize, 'gp_woocommerce_related_upsell_columns', array( 'label' => __( 'Related/Upsell Columns', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => array( 'desktop' => 'generate_woocommerce_settings[related_upsell_columns]', 'tablet' => 'generate_woocommerce_settings[tablet_related_upsell_columns]', 'mobile' => 'generate_woocommerce_settings[mobile_related_upsell_columns]', ), 'choices' => array( 'desktop' => array( 'min' => 1, 'max' => 6, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), 'tablet' => array( 'min' => 1, 'max' => 3, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), 'mobile' => array( 'min' => 1, 'max' => 3, 'step' => 1, 'edit' => false, 'unit' => 'Col', ), ), ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_meta]', array( 'default' => $defaults['product_meta'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_meta]', array( 'type' => 'checkbox', 'label' => __( 'Display product meta data', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_meta]', ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[product_description]', array( 'default' => $defaults['product_description'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[product_description]', array( 'type' => 'checkbox', 'label' => __( 'Display short description', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[product_description]', ) ); $wp_customize->add_section( 'generate_woocommerce_colors', array( 'title' => __( 'WooCommerce', 'gp-premium' ), 'capability' => 'edit_theme_options', 'priority' => 200, 'panel' => 'generate_colors_panel' ) ); $wp_customize->add_section( 'generate_woocommerce_typography', array( 'title' => __( 'WooCommerce', 'gp-premium' ), 'capability' => 'edit_theme_options', 'priority' => 200, 'panel' => 'generate_typography_panel' ) ); $wp_customize->add_control( new GeneratePress_Title_Customize_Control( $wp_customize, 'generate_woocommerce_checkout_title', array( 'section' => 'generate_woocommerce_layout', 'type' => 'generatepress-customizer-title', 'title' => __( 'Checkout', 'gp-premium' ), 'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname' ) ) ); $wp_customize->add_setting( 'generate_woocommerce_settings[distraction_free]', array( 'default' => $defaults['distraction_free'], 'type' => 'option', 'sanitize_callback' => 'generate_premium_sanitize_checkbox' ) ); $wp_customize->add_control( 'generate_woocommerce_settings[distraction_free]', array( 'type' => 'checkbox', 'label' => __( 'Distraction-free mode', 'gp-premium' ), 'description' => __( 'Remove unnecessary distractions like sidebars, footer widgets and sticky menus.', 'gp-premium' ), 'section' => 'generate_woocommerce_layout', 'settings' => 'generate_woocommerce_settings[distraction_free]', ) ); } unction add_email_improvements_modal_to_url() { // Check if we're on the WooCommerce Home page. if ( ! isset( $_GET['page'] ) || 'wc-admin' !== $_GET['page'] || isset( $_GET['path'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return; } $dismissed_modal = get_option( 'woocommerce_admin_dismissed_email_improvements_modal' ); if ( 'yes' !== $dismissed_modal && self::is_email_improvements_enabled_for_existing_stores() ) { update_option( 'woocommerce_admin_dismissed_email_improvements_modal', 'yes' ); wp_safe_redirect( add_query_arg( 'emailImprovementsModal', 'enabled' ) ); exit; } $dismissed_modal = get_option( 'woocommerce_admin_dismissed_try_email_improvements_modal' ); if ( 'yes' !== $dismissed_modal && self::should_notify_merchant_about_email_improvements() ) { update_option( 'woocommerce_admin_dismissed_try_email_improvements_modal', 'yes' ); wp_safe_redirect( add_query_arg( 'emailImprovementsModal', 'try' ) ); exit; } } /** * Get all core emails. * * @return array Core emails. */ public static function get_core_emails() { return array_filter( self::get_emails(), function ( $email ) { return strpos( get_class( $email ), 'WC_Email_' ) === 0 && is_string( $email->template_html ); } ); } /** * Get all core email template overrides. * * @param array $template_overrides All template overrides. * @return array Core email template overrides. */ public static function get_core_email_overrides( $template_overrides ) { $core_emails = self::get_core_emails(); $core_email_templates = array_map( function ( $email ) { return basename( $email->template_html ); }, $core_emails ); $all_email_templates = array_merge( $core_email_templates, self::EMAIL_TEMPLATE_PARTS ); return array_intersect( $all_email_templates, $template_overrides ); } /** * Get all enabled email IDs. * * @return array Enabled email IDs. */ public static function get_enabled_emails() { $enabled_emails = array_filter( self::get_emails(), function ( $email ) { return $email->is_enabled() && ! $email->is_manual(); } ); return array_values( array_map( fn( $email ) => get_class( $email ), $enabled_emails ) ); } /** * Get all disabled email IDs. * * @return array Enabled email IDs. */ public static function get_disabled_emails() { $disabled_emails = array_filter( self::get_emails(), function ( $email ) { return ! $email->is_enabled() && ! $email->is_manual(); } ); return array_values( array_map( fn( $email ) => get_class( $email ), $disabled_emails ) ); } /** * Get all enabled or manual emails with Cc or Bcc. * * @return array Enabled or manual emails with Cc or Bcc. */ public static function get_enabled_or_manual_emails_with_cc_or_bcc() { $enabled_or_manual_emails = array_filter( self::get_emails(), function ( $email ) { return $email->is_enabled() || $email->is_manual(); } ); $email_ids_with_cc = array(); $email_ids_with_bcc = array(); foreach ( $enabled_or_manual_emails as $email ) { if ( $email->get_cc_recipient() ) { $email_ids_with_cc[] = get_class( $email ); } if ( $email->get_bcc_recipient() ) { $email_ids_with_bcc[] = get_class( $email ); } } return array( 'ccs' => $email_ids_with_cc, 'bccs' => $email_ids_with_bcc, ); } /** * A helper method to filter out non-WC_Email objects. * * @return \WC_Email[] All WC_Email objects. */ private static function get_emails() { $emails = WC()->mailer()->get_emails(); return array_filter( $emails, fn( $email ) => is_object( $email ) && $email instanceof \WC_Email ); } }