Viewing File: /home/maglabs/greentech/wp-content/themes/porto/inc/admin/theme_options/woocommerce.php
<?php
// Woocommerce
$all_roles = array();
if ( is_admin() ) {
$roles = wp_roles()->roles;
$roles = apply_filters( 'editable_roles', $roles );
foreach ( $roles as $role_name => $role_info ) {
$initial_assigned_roles = array( $role_name => $role_info['name'] );
$all_roles = array_merge( $all_roles, $initial_assigned_roles );
}
}
$this->sections[] = $this->add_customizer_field(
array(
'icon' => 'icon-plugins',
'icon_class' => 'porto-icon',
'title' => __( 'WooCommerce', 'porto' ),
),
$options_style
);
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'General', 'porto' ),
'transport' => 'postMessage',
'id' => 'wc-general',
'fields' => array(
array(
'id' => 'desc_info_builder_product',
'type' => 'info',
'desc' => wp_kses(
__( '
<span><span style="min-width: 150px;">
<b>Product Type</b>
<span class="description">You can change the product type, product layout, shop layout.</span>
</span>
<span>
<span class="flex-row">
<img src="' . PORTO_OPTIONS_URI . '/builder/loop.svg' . '" style="margin-right: 10px;" />
<span>
<a href="' . $type_url . '" target="_blank">Add or Change Product Type</a>
A Loop is a layout you can customize to display recurring dynamic content - like listings, posts, portfolios, products, , etc.
</span>
</span>
<span class="flex-row">
<img src="' . PORTO_OPTIONS_URI . '/builder/product.svg' . '" style="margin-right: 10px;" />
<span>
<a href="' . $product_url . '" target="_blank">Add or Change Single Product layout</a>
A single product template allows you to easily design the layout and style of WooCommerce single product pages, and apply that template to various conditions that you assign.
</span>
</span>
<span class="flex-row">
<img src="' . PORTO_OPTIONS_URI . '/builder/shop.svg' . '" style="margin-right: 10px;" />
<span>
<a href="' . $shop_url . '" target="_blank">Add or Change Product Archive Layout</a>
A products archive template allows you to easily design the layout and style of your WooCommerce shop page or other product archive pages - those pages that show a list of products, which may be filtered by terms such as categories, tags, etc.
</span>
</span>
</span></span>', 'porto' ),
array(
'b' => array(),
'span' => array(
'class' => array(),
'style' => array(),
),
'img' => array(
'src' => array(),
'style' => array(),
),
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
'class' => 'porto-opt-ux-builder',
),
array(
'title' => __( 'Product Swatch Mode', 'porto' ),
'id' => 'product_variation_display_mode',
'type' => 'button_set',
'default' => 'select',
'options' => array(
'button' => array(
'label' => __( 'Label, Image / Color swatch', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product_variation_display_btn.jpg"/>' ),
),
),
'select' => array(
'label' => __( 'Select Box', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product_variation_display_sel.jpg"/>' ),
),
),
),
),
array(
'id' => 'woo-show-product-border',
'type' => 'switch',
'title' => __( 'Show Border on product images', 'porto' ),
'subtitle' => __( 'To show border( width: 1px, color: #F4F4F4 ) on product image in all products.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-show-product-border.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'shipping-progress-bar',
'type' => 'switch',
'title' => __( 'Free Shipping Progress Bar', 'porto' ),
'subtitle' => __( 'To display a free shipping progress bar on the website.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'shipping-progress-bar.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_product_login_link',
'type' => 'info',
'title' => __( 'Login link on Menu', 'porto' ),
'notice' => false,
),
array(
'id' => 'menu-login-pos',
'type' => 'button_set',
'title' => __( 'Display Login / Register Link', 'porto' ),
'subtitle' => __( 'Show the log in link, log out link(logout) in Top Navigation or Main Menu.', 'porto' ),
'options' => array(
'' => __( 'None', 'porto' ),
'top_nav' => array(
'label' => __( 'In Top Navigation', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'menu-login-pos-top_nav.gif"/>' ),
),
),
'main_menu' => array(
'label' => __( 'In Main Menu', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'menu-login-pos-main_menu.gif"/>' ),
),
),
),
'default' => '',
),
array(
'id' => 'menu-enable-register',
'type' => 'switch',
'title' => __( 'Show Register Link', 'porto' ),
'subtitle' => sprintf( __( 'You should allow to register on your site using %1$sWordPress%2$s or %3$sWooCommerce%4$s settings.', 'porto' ), '<a target="_blank" href="' . ( is_multisite() ? esc_url( network_admin_url( 'settings.php' ) ) : esc_url( admin_url( 'options-general.php' ) ) ) . '">', '</a>', '<a target="_blank" href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=account' ) ) . '">', '</a>' ),
'required' => array( 'menu-login-pos', 'equals', array( 'top_nav', 'main_menu' ) ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'menu-enable-register.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'menu-show-login-icon',
'type' => 'switch',
'title' => __( 'Show Login, Logout Icon', 'porto' ),
'subtitle' => __( 'Show the icon for login link, logout link.' ),
'required' => array( 'menu-login-pos', 'equals', array( 'top_nav', 'main_menu' ) ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'menu-show-login-icon.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'woo-account-login-style',
'type' => 'button_set',
'title' => __( 'Login Style', 'porto' ),
'subtitle' => __( 'Please select lightbox if you want to use login popup instead of displaying login link.', 'porto' ),
'required' => array( 'menu-login-pos', 'equals', array( 'top_nav', 'main_menu' ) ),
'default' => '',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-account-login-style.jpg"/>' ),
),
'options' => array(
'' => __( 'Lightbox', 'porto' ),
'link' => __( 'Link', 'porto' ),
),
),
array(
'id' => 'desc_info_product_label',
'type' => 'info',
'title' => __( 'Product Labels', 'porto' ),
'notice' => false,
),
array(
'id' => 'product-stock',
'type' => 'switch',
'title' => __( 'Show "Out of stock" Status', 'porto' ),
'subtitle' => __( 'To show "Out of stock" text for the out-of-stock products.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-stock.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-labels',
'type' => 'button_set',
'title' => __( 'Select labels to display', 'porto' ),
'subtitle' => __( 'Offers "Featured", "Sale" and "New" lables for Product', 'porto' ),
'multi' => true,
'default' => array( 'hot', 'sale' ),
'options' => array(
'hot' => array(
'label' => __( 'Hot', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-labels-hot.gif"/>' ),
),
),
'sale' => array(
'label' => __( 'Sale', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-labels-sale.gif"/>' ),
),
),
'new' => array(
'label' => __( 'New', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-labels-new.gif"/>' ),
),
),
),
),
array(
'id' => 'product-hot-label',
'type' => 'text',
'required' => array( 'product-labels', 'contains', 'hot' ),
'title' => __( '"Hot" Text', 'porto' ),
'subtitle' => __( 'This will be displayed in the featured product.', 'porto' ),
'default' => '',
),
array(
'id' => 'product-sale-label',
'type' => 'text',
'required' => array( 'product-labels', 'contains', 'sale' ),
'title' => __( '"Sale" Text', 'porto' ),
'subtitle' => __( 'This will be displayed in the product on sale.', 'porto' ),
'default' => '',
),
array(
'id' => 'product-sale-percent',
'type' => 'switch',
'required' => array( 'product-labels', 'contains', 'sale' ),
'title' => __( 'Show Saved Sale Price Percentage', 'porto' ),
'subtitle' => __( 'Select "No" to display "Sale" text instead of sale percentage.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-sale-percent.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-new-label',
'type' => 'text',
'required' => array( 'product-labels', 'contains', 'new' ),
'title' => __( 'New Product Label', 'porto' ),
'subtitle' => __( 'This will be displayed in the new product.', 'porto' ),
'default' => '',
),
array(
'id' => 'product-new-days',
'type' => 'slider',
'title' => __( 'New Product Period (days)', 'porto' ),
'required' => array( 'product-labels', 'contains', 'new' ),
'subtitle' => __( 'The Products which were created over this option will be displayed', 'porto' ),
'default' => 7,
'min' => 1,
'max' => 100,
),
array(
'id' => 'desc_info_sale_popup',
'type' => 'info',
'title' => __( 'Sales Popup : Show products popup in all page.', 'porto' ),
'notice' => false,
),
array(
'id' => 'woo-sales-popup',
'type' => 'select',
'title' => __( 'Sales Popup Content', 'porto' ),
'subtitle' => __( 'Select which products you want to show in sales popup.', 'porto' ),
'default' => '',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-sales-popup.jpg"/>' ),
),
'options' => array(
'' => __( 'Do not show', 'porto' ),
'real' => __( 'Recent sale products', 'porto' ),
'popular' => __( 'Popular products', 'porto' ),
'rating' => __( 'Top rated products', 'porto' ),
'sale' => __( 'Sale products', 'porto' ),
'featured' => __( 'Featured products', 'porto' ),
'recent' => __( 'Recent products', 'porto' ),
),
'transport' => 'refresh',
),
array(
'id' => 'woo-sales-popup-title',
'type' => 'text',
'title' => __( 'Popup Title', 'porto' ),
'default' => __( 'Someone just purchased', 'porto' ),
'subtitle' => __( 'This will show at top of popup dialog.', 'porto' ),
'required' => array( 'woo-sales-popup', '!=', '' ),
'transport' => 'refresh',
),
array(
'id' => 'woo-sales-popup-count',
'type' => 'slider',
'title' => __( 'Products Count', 'porto' ),
'required' => array( 'woo-sales-popup', '!=', '' ),
'default' => 10,
'min' => 1,
'max' => 30,
'transport' => 'refresh',
),
array(
'id' => 'woo-sales-popup-start-delay',
'type' => 'slider',
'title' => __( 'Start Delay(seconds)', 'porto' ),
'subtitle' => __( 'Change delay time to show the first popup after page loading.', 'porto' ),
'required' => array( 'woo-sales-popup', '!=', '' ),
'default' => 10,
'min' => 1,
'max' => 30,
'transport' => 'refresh',
),
array(
'id' => 'woo-sales-popup-interval',
'type' => 'slider',
'title' => __( 'Interval(seconds)', 'porto' ),
'subtitle' => __( 'Change duration between popups. Each sales popup will be disappeared after 4 seconds.', 'porto' ),
'required' => array( 'woo-sales-popup', '!=', '' ),
'default' => 60,
'min' => 1,
'max' => 600,
'transport' => 'refresh',
),
array(
'id' => 'woo-sales-popup-mobile',
'type' => 'switch',
'title' => __( 'Enable on Mobile', 'porto' ),
'subtitle' => __( 'Do you want to enable sales popup on mobile?', 'porto' ),
'required' => array( 'woo-sales-popup', '!=', '' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'refresh',
),
array(
'id' => 'desc_info_pre_order',
'type' => 'info',
'title' => __( 'Pre-Order', 'porto' ),
'notice' => false,
),
array(
'id' => 'woo-pre-order',
'type' => 'switch',
'title' => __( 'Enable Pre-Order', 'porto' ),
'subtitle' => __( 'Pre-Order functionality offers customers the chance to purchase the unavailable products and provide them only after they are officially on sale.', 'porto' ),
'desc' => __( 'Before selecting "ON", You should check "pre-order" meta option of WooCoommerce Product.', 'porto' ),
'transport' => 'refresh',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-pre-order.gif"/>' ),
),
),
array(
'id' => 'woo-pre-order-label',
'type' => 'text',
'title' => __( 'Pre-Order Label', 'porto' ),
'subtitle' => __( 'This text will be used on \'Add to Cart\' button.', 'porto' ),
'required' => array( 'woo-pre-order', 'equals', true ),
'transport' => 'refresh',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-pre-order-label.gif"/>' ),
),
),
array(
'id' => 'woo-pre-order-msg-date',
'type' => 'text',
'title' => __( 'Pre-Order Availability Date Text', 'porto' ),
/* translators: available date */
'subtitle' => __( 'ex: Available date: %1$s (%1$s will be replaced with available date.)', 'porto' ),
'required' => array( 'woo-pre-order', 'equals', true ),
'transport' => 'refresh',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'woo-pre-order-msg-date.gif"/>' ),
),
),
array(
'id' => 'woo-pre-order-msg-nodate',
'type' => 'text',
'title' => __( 'Pre-Order No Date Message', 'porto' ),
'subtitle' => __( 'This text will be used for the product without Available Date.', 'porto' ),
'placeholder' => __( 'Available soon', 'porto' ),
'required' => array( 'woo-pre-order', 'equals', true ),
'transport' => 'refresh',
),
),
);
if ( $this->legacy_mode ) {
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Product Archives', 'porto' ),
'fields' => array(
array(
'id' => 'desc_info_shop',
'type' => 'info',
'desc' => wp_kses(
/* translators: %s: Builder url */
sprintf( __( '<a class="pt-showm-options" href="#"><span>Show More Options</span><i class="fas fa-angle-down"></i></a><strong>Important Note:</strong> <a href="%1$s" target="_blank">Product Archive</a> & <a href="%2$s" target="_blank">Product Type</a> Builders help you to develop shop page easily. Some below options might be overrided because the priority of the builder widget option is <b>higher</b>.<br/><b>We recommend to use Template Builder to customize easily.</b>', 'porto' ), $shop_url, $type_url ),
array(
'strong' => array(),
'b' => array(),
'a' => array(
'href' => array(),
'target' => array(),
'class' => array(),
),
'i' => array(
'class' => array(),
),
'span' => array(),
'br' => array(),
)
),
'class' => 'porto-important-note',
),
array(
'id' => 'desc_info_go_shop_sidebar',
'type' => 'info',
'desc' => wp_kses(
sprintf(
/* translators: %s: widgets url */
__( 'You can control the Woo Category sidebar and <a href="%1$s" target="_blank">secondary</a> sidebar in <a href="%2$s" target="_blank">here</a>.', 'porto' ),
esc_url( admin_url( 'themes.php?page=multiple_sidebars' ) ),
esc_url( admin_url( 'widgets.php' ) )
),
array(
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
'class' => 'pt-always-visible',
),
array(
'id' => 'product-archive-layout',
'type' => 'image_select',
'title' => __( 'Page Layout', 'porto' ),
'subtitle' => __( 'Shop Page Layout', 'porto' ),
'options' => $page_layouts,
'default' => 'left-sidebar',
'class' => 'pt-always-visible',
),
array(
'id' => 'product-archive-sidebar2',
'type' => 'select',
'title' => __( 'Select Sidebar 2', 'porto' ),
'required' => array( 'product-archive-layout', 'equals', $both_sidebars ),
'data' => 'sidebars',
'class' => 'pt-always-visible',
),
array(
'id' => 'category-ajax',
'type' => 'switch',
'title' => __( 'Enable Ajax Filter', 'porto' ),
'subtitle' => __( 'Filter all products including default pagination by Ajax in shop pages. "Load More" and "Infinite Scroll" pagination types don\'t depend on this option.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'category-ajax.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'class' => 'pt-always-visible',
),
array(
'id' => 'product-archive-filter-layout',
'type' => 'image_select',
'class' => 'pt-always-visible',
'title' => __( 'Filter Layout', 'porto' ),
'subtitle' => __( 'Products filtering layout in shop pages.', 'porto' ),
'desc' => wp_kses(
__( '<span style="color: red">Horizontal filter</span> is shown with <a target="_blank" href="' . esc_url( admin_url( 'widgets.php' ) ) . '">Shop Horizontal Widget</a> in Appearance > Widgets.<br/>If you use Shop Builder, filter sidebar should be shown with <span style="color: red">Filter Toggle</span> widget.', 'porto' ),
array(
'span' => array(
'style' => array(),
),
'br' => array(),
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
'default' => '',
'options' => array(
'' => array(
'title' => __( 'Default', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-default.svg',
),
'horizontal' => array(
'title' => __( 'Sidebar with Toggle', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-horizontal1.svg',
),
'horizontal2' => array(
'title' => __( 'Horizontal filters', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-horizontal2.svg',
),
'offcanvas' => array(
'title' => __( 'Off Canvas', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-offcanvas.svg',
),
),
),
array(
'id' => 'product-infinite',
'type' => 'button_set',
'title' => __( 'Pagination style', 'porto' ),
'default' => '',
'subtitle' => __( 'Choose a type for the pagination.', 'porto' ),
'options' => array(
'' => array(
'label' => __( 'Default', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-infinite.gif"/>' ),
),
),
'load_more' => array(
'label' => __( 'Load More', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-infinite-load_more.gif"/>' ),
),
),
'infinite_scroll' => array(
'label' => __( 'Infinite Scroll', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-infinite-infinite_scroll.gif"/>' ),
),
),
),
),
array(
'id' => 'category-item',
'type' => 'text',
'title' => __( 'Products per page (shop products count)', 'porto' ),
'subtitle' => __( 'Comma separated list of product counts. If use shop builder, default value is \'Count(per page)\' option on Type Builder Archives Widget.', 'porto' ),
'default' => '12,24,36',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'category-item.gif"/>' ),
),
'transport' => 'postMessage',
'class' => 'pt-always-visible',
),
array(
'id' => 'category-view-mode',
'type' => 'button_set',
'title' => __( 'View Mode', 'porto' ),
'subtitle' => __( 'Products display mode in non-builder shop pages', 'porto' ),
'options' => porto_ct_category_view_mode( true ),
'default' => '',
'transport' => 'postMessage',
),
array(
'id' => 'shop-product-cols',
'type' => 'slider',
'title' => __( 'Shop Page Product Columns', 'porto' ),
'subtitle' => __( 'Controls the number of columns to display in non-builder shop page.', 'porto' ),
'default' => 3,
'min' => 2,
'max' => 8,
'transport' => 'postMessage',
),
array(
'id' => 'shop-product-cols-mobile',
'type' => 'slider',
'title' => __( 'Shop Page Product Columns on Mobile ( < 576px )', 'porto' ),
'subtitle' => __( 'Controls the number of columns to display for mobile in non-builder shop page.', 'porto' ),
'default' => 2,
'min' => 1,
'max' => 3,
'transport' => 'postMessage',
),
array(
'id' => 'product-cols',
'type' => 'slider',
'title' => __( 'Category Product Columns', 'porto' ),
'subtitle' => __( 'Controls the number of columns to display in non-builder category page.', 'porto' ),
'default' => 3,
'min' => 2,
'max' => 8,
'transport' => 'postMessage',
),
array(
'id' => 'product-cols-mobile',
'type' => 'slider',
'title' => __( 'Category Product Columns on Mobile ( < 576px )', 'porto' ),
'subtitle' => __( 'Controls the number of columns to display for mobile in non-builder category page.', 'porto' ),
'default' => 2,
'min' => 1,
'max' => 3,
'transport' => 'postMessage',
),
array(
'id' => 'cat-view-type',
'type' => 'button_set',
'title' => __( 'Category Content Position', 'porto' ),
'subtitle' => __( 'The position of content section which contains title, description and product count in a product category', 'porto' ),
'default' => '',
'options' => array(
'' => array(
'label' => __( 'Inner Bottom Left', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'cat-view-type.jpg"/>' ),
),
),
'2' => array(
'label' => __( 'Outside Center', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'cat-view-type-2.jpg"/>' ),
),
),
),
'transport' => 'postMessage',
),
array(
'id' => 'desc_info_product_layout',
'type' => 'info',
'title' => __( 'Product Layout Options', 'porto' ),
'notice' => false,
),
array(
'id' => 'category-addlinks-convert',
'type' => 'switch',
'title' => esc_html__( 'Change <a> Tag to <span>', 'porto' ),
'subtitle' => esc_html__( 'To use <span> for the add to cart, quickview and add to wishlist buttons in shop pages.', 'porto' ),
'default' => false,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'category-addlinks-pos',
'type' => 'image_select',
'title' => __( 'Product Layout', 'porto' ),
'subtitle' => __( 'Select position of add to cart, add to wishlist, quickview.', 'porto' ),
'options' => array(
'default' => array(
'title' => __( 'Default', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_default.jpg',
),
'onhover' => array(
'title' => __( 'Default - Show Links on Hover', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_default.jpg',
),
'outimage_aq_onimage' => array(
'title' => __( 'Add to Cart, Quick View On Image', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_outimage_aq_onimage.jpg',
),
'outimage_aq_onimage2' => array(
'title' => __( 'Add to Cart, Quick View On Image with Padding', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_outimage_aq_onimage2.jpg',
),
'awq_onimage' => array(
'title' => __( 'Link On Image', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_awq_onimage.jpg',
),
'outimage' => array(
'title' => __( 'Out of Image', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_outimage.jpg',
),
'onimage' => array(
'title' => __( 'On Image', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_onimage.jpg',
),
'onimage2' => array(
'title' => __( 'On Image with Overlay 1', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_onimage2.jpg',
),
'onimage3' => array(
'title' => __( 'On Image with Overlay 2', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_onimage3.jpg',
),
'quantity' => array(
'title' => __( 'Show Quantity Input', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/product_layouts/product_layout_quantity_input.jpg',
),
),
'default' => 'default',
'transport' => 'postMessage',
),
array(
'id' => 'add-to-cart-notification',
'type' => 'image_select',
'class' => 'pt-always-visible',
'title' => __( 'Add to Cart Notification Type', 'porto' ),
'subtitle' => __( 'Select the notification type whenever product is added to cart.', 'porto' ),
'options' => array(
'' => array(
'title' => __( 'Style 1', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-1.jpg',
),
'2' => array(
'title' => __( 'Style 2', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-2.jpg',
),
'3' => array(
'title' => __( 'Style 3', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-3.jpg',
),
),
'default' => '3',
'transport' => 'postMessage',
),
array(
'id' => 'desc_info_shop_loop',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Show / Hide Elements:</b> If you use <span>type builder</span>, below options <span>aren\'t</span> necessary. Please use the options of builder widgets.', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'category-image-hover',
'type' => 'switch',
'title' => __( 'Show image on hover', 'porto' ),
'subtitle' => __( 'If enabled, the first image of product gallery will be displayed on product hover.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'category-image-hover.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'show_swatch',
'type' => 'switch',
'title' => __( 'Show product swatch', 'porto' ),
'subtitle' => __( 'To show swatch on product loop.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'show_swatch.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-categories',
'type' => 'switch',
'title' => __( 'Show Categories', 'porto' ),
'subtitle' => __( 'To show categories on product loop.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-review',
'type' => 'switch',
'title' => __( 'Show Reviews', 'porto' ),
'subtitle' => __( 'To show reviews on product loop.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-preview.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-price',
'type' => 'switch',
'title' => __( 'Show Price', 'porto' ),
'subtitle' => __( 'To show price on product loop.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-price.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-desc',
'type' => 'switch',
'title' => __( 'Show Description', 'porto' ),
'desc' => __( 'To show description on product loop.', 'porto' ),
'subtitle' => __( 'This option works except product list type.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-desc.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-wishlist',
'type' => 'switch',
'title' => __( 'Show Wishlist', 'porto' ),
'subtitle' => __( 'To show wishlist on product loop.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-wishlist.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-quickview',
'type' => 'switch',
'title' => __( 'Show Quick View', 'porto' ),
'subtitle' => __( 'To show quickview on product loop.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-quickview.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-quickview-label',
'type' => 'text',
'required' => array( 'product-quickview', 'equals', true ),
'title' => __( '"Quick View" Text', 'porto' ),
'subtitle' => __( 'Shows this text instead of "Quick View".', 'porto' ),
'default' => '',
'transport' => 'postMessage',
),
array(
'id' => 'product-compare',
'type' => 'switch',
'title' => __( 'Show Compare', 'porto' ),
'subtitle' => __( 'To show compare on product loop.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'product-compare-title',
'type' => 'text',
'title' => __( 'Compare Popup Title', 'porto' ),
'subtitle' => __( 'Shows this text at the compare popup.', 'porto' ),
'default' => __( 'You just added to compare list.', 'porto' ),
'required' => array( 'product-compare', '!=', false ),
'transport' => 'refresh',
),
),
);
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Single Product', 'porto' ),
'transport' => 'postMessage',
'fields' => array(
array(
'id' => 'desc_info_single_product',
'type' => 'info',
'desc' => wp_kses(
/* translators: %s: Builder url */
sprintf( __( '<a class="pt-showm-options" href="#"><span>Show More Options</span><i class="fas fa-angle-down"></i></a><strong>Important Note:</strong> <a href="%1$s" target="_blank">Single Product</a> & <a href="%2$s" target="_blank">Product Type</a> Builders help you to develop your site easily. Some below options might be overrided because the priority of the builder widget option is <b>higher</b>.<br/><b>We recommend to use Template Builder to customize easily.</b>', 'porto' ), $product_url, $type_url ),
array(
'strong' => array(),
'b' => array(),
'a' => array(
'href' => array(),
'target' => array(),
'class' => array(),
),
'i' => array(
'class' => array(),
),
'span' => array(),
'br' => array(),
)
),
'class' => 'porto-important-note',
),
array(
'id' => 'desc_info_go_product_sidebar',
'type' => 'info',
'class' => 'pt-always-visible',
'desc' => wp_kses(
sprintf(
/* translators: %s: widgets url */
__( 'You can control the Woo Product sidebar and <a href="%1$s" target="_blank">secondary</a> sidebar in <a href="%2$s" target="_blank">here</a>.', 'porto' ),
esc_url( admin_url( 'themes.php?page=multiple_sidebars' ) ),
esc_url( admin_url( 'widgets.php' ) )
),
array(
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
),
array(
'id' => 'product-single-layout',
'type' => 'image_select',
'title' => __( 'Page Layout', 'porto' ),
'subtitle' => __( 'Product Page Layout', 'porto' ),
'options' => $page_layouts,
'default' => 'right-sidebar',
'transport' => 'refresh',
'class' => 'pt-always-visible',
),
array(
'id' => 'product-single-sidebar2',
'type' => 'select',
'title' => __( 'Select Sidebar 2', 'porto' ),
'required' => array( 'product-single-layout', 'equals', $both_sidebars ),
'data' => 'sidebars',
'class' => 'pt-always-visible',
),
array(
'id' => 'product-single-content-layout',
'type' => 'image_select',
'title' => __( 'Product Layout', 'porto' ),
'subtitle' => __( 'Individual product has the meta option for <b>product layout</b>', 'porto' ),
'options' => array(
'default' => array(
'title' => __( 'Default', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/default.jpg',
),
'extended' => array(
'title' => __( 'Extended', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/extended.jpg',
),
'full_width' => array(
'title' => __( 'Full Width', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/full_width.jpg',
),
'grid' => array(
'title' => __( 'Grid Images', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/grid.jpg',
),
'sticky_info' => array(
'title' => __( 'Sticky Info', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/sticky_info.jpg',
),
'sticky_both_info' => array(
'title' => __( 'Sticky Left & Right Info', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/sticky_info_both.jpg',
),
'transparent' => array(
'title' => __( 'Transparent Images', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/transparent.jpg',
),
'centered_vertical_zoom' => array(
'title' => __( 'Centered Vertical Zoom', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/centered_vertical_zoom.jpg',
),
'left_sidebar' => array(
'title' => __( 'Left Sidebar', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/left_sidebar.jpg',
),
'builder' => array(
'title' => __( 'Custom', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/custom.jpg',
),
),
'default' => 'default',
'transport' => 'refresh',
),
array(
'id' => 'product-single-content-builder',
'type' => 'select',
'title' => __( 'Custom Product Layout', 'porto' ),
'subtitle' => __( 'We recommend to use <strong>Display Condition</strong> when creating single product builder instead of this option. This option is overrided by <strong>Display Condition</strong>.', 'porto' ),
'desc' => __( 'Please select a product layout. You can create a product layout in <strong>Porto / Templates Builder / Single Product / Add New</strong>.', 'porto' ),
'options' => $product_layouts,
'default' => '',
'required' => array( 'product-single-content-layout', 'equals', 'builder' ),
),
array(
'id' => 'product-content_bottom',
'type' => 'text',
'title' => __( 'Content Bottom Block', 'porto' ),
'subtitle' => __( 'Please input comma separated block slug names. You can create a block in <strong>Porto / Templates Builder / Block / Add New</strong>.', 'porto' ),
'transport' => 'refresh',
),
/*array(
'id'=>'product-ajax-addcart-button',
'type' => 'switch',
'title' => __( 'Enable AJAX add to cart button', 'porto' ),
'default' => true,
'on' => __('Yes', 'porto'),
'off' => __('No', 'porto'),
),*/
array(
'id' => 'product-sticky-addcart',
'type' => 'image_select',
'title' => __( 'Sticky add to cart section', 'porto' ),
'desc' => __( 'Select the position to display sticky add to cart section in single product page.', 'porto' ),
'subtitle' => __( 'This option can be overrided by <strong>Sticky Add to Cart Widget</strong>.', 'porto' ),
'options' => array(
'' => array(
'title' => __( 'None', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/sticky-cart-none.svg',
),
'top' => array(
'title' => __( 'At the Top', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/sticky-cart-top.svg',
),
'bottom' => array(
'title' => __( 'At the Bottom', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/sticky-cart-bottom.svg',
),
),
'default' => '',
'transport' => 'refresh',
),
array(
'id' => 'desc_info_sp_tab',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Product Tab</b>', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'product-tab-close-mobile',
'type' => 'switch',
'title' => __( 'Collapse the accordion on mobile at first?', 'porto' ),
'subtitle' => __( 'Enable this option to collapse the accordion on mobile.', 'porto' ),
'default' => false,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-tabs-pos',
'type' => 'button_set',
'title' => __( 'Tabs Position', 'porto' ),
'subtitle' => __( 'Select the position of tab where to put.', 'porto' ),
'options' => array(
'' => array(
'label' => __( 'Default', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-tabs-pos.jpg"/>' ),
),
),
'below' => array(
'label' => __( 'Below Price & Short Description', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-tabs-pos-below.jpg"/>' ),
),
),
),
'default' => '',
),
array(
'id' => 'product-custom-tabs-count',
'type' => 'text',
'title' => __( 'Additional Tabs Count', 'porto' ),
'subtitle' => __( 'You can input the tab content in meta fields of "Edit Product".', 'porto' ),
'default' => '2',
),
array(
'id' => 'product-tab-title',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Title', 'porto' ),
'subtitle' => __( 'Input the title of Product Custom Tab.', 'porto' ),
'default' => '',
),
array(
'id' => 'product-tab-block',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Block', 'porto' ),
'subtitle' => __( 'This block will be shown in the Custom Tab Content.', 'porto' ),
'desc' => __( 'Input block slug name', 'porto' ),
'default' => '',
),
array(
'id' => 'product-tab-priority',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Priority', 'porto' ),
'subtitle' => __( 'Input the custom tab priority. (Description: 10, Additional Information: 20, Reviews: 30)', 'porto' ),
'default' => '60',
),
array(
'id' => 'desc_info_sp_show',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Show / Hide Elements:</b> If you use <span>single product builder</span>, below options <span>aren\'t</span> necessary. Please use the options of builder widgets.', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'product-nav',
'type' => 'switch',
'title' => __( 'Show Prev/Next Product', 'porto' ),
'subtitle' => __( 'To show Prev/Next navigation.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-nav.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-short-desc',
'type' => 'switch',
'title' => __( 'Show Short Description', 'porto' ),
'subtitle' => __( 'This is available for Default Product Layouts.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-short-desc.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-metas',
'type' => 'button_set',
'title' => __( 'Show Product Meta', 'porto' ),
'subtitle' => __( 'Select product metas to show.', 'porto' ),
'multi' => true,
'options' => array(
'sku' => __( 'SKU', 'porto' ),
'global_unique_id' => __( 'GTIN, UPC, EAN or ISBN.', 'woocommerce' ),
'cats' => __( 'Categories', 'porto' ),
'tags' => __( 'Tags', 'porto' ),
'-' => 'None',
),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-metas.gif"/>' ),
),
'default' => array( 'sku', 'cats', 'tags', '-' ),
),
array(
'id' => 'product-attr-desc',
'type' => 'switch',
'title' => __( 'Show Description of Selected Attribute', 'porto' ),
'subtitle' => __( 'To show description if it exists when selecting product attribute in the variations.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-attr-desc.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-share',
'type' => 'switch',
'title' => __( 'Show Social Share Links', 'porto' ),
'subtitle' => __( 'To show Social Links.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_single_product_related',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Related Products in Single Product</b>', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'product-related',
'type' => 'switch',
'title' => __( 'Show Related Products', 'porto' ),
'subtitle' => __( 'To show related products in the single product page.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-related-count',
'type' => 'text',
'required' => array( 'product-related', 'equals', true ),
'title' => __( 'Related Products Count', 'porto' ),
'default' => '10',
),
array(
'id' => 'product-related-cols',
'type' => 'button_set',
'required' => array( 'product-related', 'equals', true ),
'title' => __( 'Related Product Columns', 'porto' ),
'options' => porto_ct_related_product_columns(),
'default' => '4',
),
array(
'id' => 'desc_info_single_product_upsell',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Upsell Products in Single Product</b>', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'product-upsells',
'type' => 'switch',
'title' => __( 'Show Up Sells', 'porto' ),
'subtitle' => __( 'To show Upsell products in the cart page.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-upsells-count',
'type' => 'text',
'required' => array( 'product-upsells', 'equals', true ),
'title' => __( 'Up Sells Count', 'porto' ),
'default' => '10',
),
array(
'id' => 'product-upsells-cols',
'type' => 'button_set',
'required' => array( 'product-upsells', 'equals', true ),
'title' => __( 'Up Sells Product Columns', 'porto' ),
'options' => porto_ct_related_product_columns(),
'default' => '4',
),
),
);
} else {
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Product Archives', 'porto' ),
'fields' => array(
array(
'id' => 'desc_info_shop',
'type' => 'info',
'desc' => wp_kses(
/* translators: %s: Builder url */
sprintf( __( '<strong>Important Note:</strong> <a href="%1$s" target="_blank">Product Archive</a> & <a href="%2$s" target="_blank">Product Type</a> Builders help you to develop shop page easily.', 'porto' ), $shop_url, $type_url ),
array(
'strong' => array(),
'b' => array(),
'a' => array(
'href' => array(),
'target' => array(),
'class' => array(),
),
)
),
'class' => 'porto-important-note',
),
array(
'id' => 'desc_info_go_shop_sidebar',
'type' => 'info',
'desc' => wp_kses(
sprintf(
/* translators: %s: widgets url */
__( 'You can control the Woo Category sidebar and <a href="%1$s" target="_blank">secondary</a> sidebar in <a href="%2$s" target="_blank">here</a>.', 'porto' ),
esc_url( admin_url( 'themes.php?page=multiple_sidebars' ) ),
esc_url( admin_url( 'widgets.php' ) )
),
array(
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
),
array(
'id' => 'product-archive-layout',
'type' => 'image_select',
'title' => __( 'Page Layout', 'porto' ),
'subtitle' => __( 'Shop Page Layout', 'porto' ),
'options' => $page_layouts,
'default' => 'left-sidebar',
),
array(
'id' => 'product-archive-sidebar2',
'type' => 'select',
'title' => __( 'Select Sidebar 2', 'porto' ),
'required' => array( 'product-archive-layout', 'equals', $both_sidebars ),
'data' => 'sidebars',
),
array(
'id' => 'category-ajax',
'type' => 'switch',
'title' => __( 'Enable Ajax Filter', 'porto' ),
'subtitle' => __( 'Filter all products including default pagination by Ajax in shop pages. "Load More" and "Infinite Scroll" pagination types don\'t depend on this option.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'category-ajax.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-archive-filter-layout',
'type' => 'image_select',
'title' => __( 'Filter Layout', 'porto' ),
'subtitle' => __( 'Products filtering layout in shop pages.', 'porto' ),
'desc' => wp_kses(
__( '<span style="color: red">Horizontal filter</span> is shown with <a target="_blank" href="' . esc_url( admin_url( 'widgets.php' ) ) . '">Shop Horizontal Widget</a> in Appearance > Widgets.<br/>If you use Shop Builder, filter sidebar should be shown with <span style="color: red">Filter Toggle</span> widget.', 'porto' ),
array(
'span' => array(
'style' => array(),
),
'br' => array(),
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
'default' => '',
'options' => array(
'' => array(
'title' => __( 'Default', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-default.svg',
),
'horizontal' => array(
'title' => __( 'Sidebar with Toggle', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-horizontal1.svg',
),
'horizontal2' => array(
'title' => __( 'Horizontal filters', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-horizontal2.svg',
),
'offcanvas' => array(
'title' => __( 'Off Canvas', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/svg/shop-offcanvas.svg',
),
),
),
array(
'id' => 'category-item',
'type' => 'text',
'title' => __( 'Products per page (shop products count)', 'porto' ),
'subtitle' => __( 'Comma separated list of product counts. If use shop builder, default value is \'Count(per page)\' option on Type Builder Archives Widget.', 'porto' ),
'default' => '12,24,36',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'category-item.gif"/>' ),
),
'transport' => 'postMessage',
),
array(
'id' => 'desc_info_product_layout',
'type' => 'info',
'title' => __( 'Product Layout Options', 'porto' ),
'notice' => false,
),
array(
'id' => 'category-addlinks-convert',
'type' => 'switch',
'title' => esc_html__( 'Change <a> Tag to <span>', 'porto' ),
'subtitle' => esc_html__( 'To use <span> for the add to cart, quickview and add to wishlist buttons in shop pages.', 'porto' ),
'default' => false,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
'transport' => 'postMessage',
),
array(
'id' => 'add-to-cart-notification',
'type' => 'image_select',
'title' => __( 'Add to Cart Notification Type', 'porto' ),
'subtitle' => __( 'Select the notification type whenever product is added to cart.', 'porto' ),
'options' => array(
'' => array(
'title' => __( 'Style 1', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-1.jpg',
),
'2' => array(
'title' => __( 'Style 2', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-2.jpg',
),
'3' => array(
'title' => __( 'Style 3', 'porto' ),
'img' => PORTO_OPTIONS_URI . '/products/addcart-3.jpg',
),
),
'default' => '3',
'transport' => 'postMessage',
),
array(
'id' => 'product-quickview-label',
'type' => 'text',
'title' => __( '"Quick View" Text', 'porto' ),
'subtitle' => __( 'Shows this text instead of "Quick View".', 'porto' ),
'default' => '',
'transport' => 'postMessage',
),
array(
'id' => 'product-compare-title',
'type' => 'text',
'title' => __( 'Compare Popup Title', 'porto' ),
'subtitle' => __( 'Shows this text at the compare popup.', 'porto' ),
'default' => __( 'You just added to compare list.', 'porto' ),
'transport' => 'refresh',
),
),
);
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Single Product', 'porto' ),
'transport' => 'postMessage',
'fields' => array(
array(
'id' => 'desc_info_single_product',
'type' => 'info',
'desc' => wp_kses(
/* translators: %s: Builder url */
sprintf( __( '<strong>Important Note:</strong> <a href="%1$s" target="_blank">Single Product</a> & <a href="%2$s" target="_blank">Product Type</a> Builders help you to develop your site easily.', 'porto' ), $product_url, $type_url ),
array(
'strong' => array(),
'b' => array(),
'a' => array(
'href' => array(),
'target' => array(),
'class' => array(),
),
)
),
'class' => 'porto-important-note',
),
array(
'id' => 'desc_info_go_product_sidebar',
'type' => 'info',
'desc' => wp_kses(
sprintf(
/* translators: %s: widgets url */
__( 'You can control the Woo Product sidebar and <a href="%1$s" target="_blank">secondary</a> sidebar in <a href="%2$s" target="_blank">here</a>.', 'porto' ),
esc_url( admin_url( 'themes.php?page=multiple_sidebars' ) ),
esc_url( admin_url( 'widgets.php' ) )
),
array(
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
),
array(
'id' => 'product-single-layout',
'type' => 'image_select',
'title' => __( 'Page Layout', 'porto' ),
'subtitle' => __( 'Product Page Layout', 'porto' ),
'options' => $page_layouts,
'default' => 'right-sidebar',
'transport' => 'refresh',
),
array(
'id' => 'product-single-sidebar2',
'type' => 'select',
'title' => __( 'Select Sidebar 2', 'porto' ),
'required' => array( 'product-single-layout', 'equals', $both_sidebars ),
'data' => 'sidebars',
),
array(
'id' => 'product-metas',
'type' => 'button_set',
'title' => __( 'Show Product Meta', 'porto' ),
'subtitle' => __( 'Select product metas to show.', 'porto' ),
'multi' => true,
'options' => array(
'sku' => __( 'SKU', 'porto' ),
'global_unique_id' => __( 'GTIN, UPC, EAN or ISBN.', 'woocommerce' ),
'cats' => __( 'Categories', 'porto' ),
'tags' => __( 'Tags', 'porto' ),
'-' => 'None',
),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-metas.gif"/>' ),
),
'default' => array( 'sku', 'cats', 'tags', '-' ),
),
array(
'id' => 'product-attr-desc',
'type' => 'switch',
'title' => __( 'Show Description of Selected Attribute', 'porto' ),
'subtitle' => __( 'To show description if it exists when selecting product attribute in the variations.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-attr-desc.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_sp_tab',
'type' => 'info',
'desc' => wp_kses(
__( '<b>Product Tab</b>', 'porto' ),
array(
'span' => array(),
'b' => array(),
)
),
'notice' => false,
'class' => 'porto-redux-section',
),
array(
'id' => 'product-tab-close-mobile',
'type' => 'switch',
'title' => __( 'Collapse the accordion on mobile at first?', 'porto' ),
'subtitle' => __( 'Enable this option to collapse the accordion on mobile.', 'porto' ),
'default' => false,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-custom-tabs-count',
'type' => 'text',
'title' => __( 'Additional Tabs Count', 'porto' ),
'subtitle' => __( 'You can input the tab content in meta fields of "Edit Product".', 'porto' ),
'default' => '2',
),
array(
'id' => 'product-tab-title',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Title', 'porto' ),
'subtitle' => __( 'Input the title of Product Custom Tab.', 'porto' ),
'default' => '',
),
array(
'id' => 'product-tab-block',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Block', 'porto' ),
'subtitle' => __( 'This block will be shown in the Custom Tab Content.', 'porto' ),
'desc' => __( 'Input block slug name', 'porto' ),
'default' => '',
),
array(
'id' => 'product-tab-priority',
'type' => 'text',
'title' => __( 'Global Product Custom Tab Priority', 'porto' ),
'subtitle' => __( 'Input the custom tab priority. (Description: 10, Additional Information: 20, Reviews: 30)', 'porto' ),
'default' => '60',
),
),
);
}
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Product Image & Zoom', 'porto' ),
'transport' => 'postMessage',
'fields' => array(
array(
'id' => 'product-thumbs',
'type' => 'switch',
'title' => __( 'Show Thumbnails', 'porto' ),
'subtitle' => __( 'To show product thumbnails gallery below the main products slider in single product page.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-thumbs.jpg"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-thumbs-count',
'type' => 'text',
'required' => array( 'product-thumbs', 'equals', true ),
'title' => __( 'Thumbnails Count', 'porto' ),
'subtitle' => __( 'This option is available for default layout of single product image.', 'porto' ),
'default' => '4',
),
array(
'id' => 'product-thumbs-w',
'type' => 'slider',
'required' => array( 'product-thumbs', 'equals', true ),
'title' => __( 'Thumbnails Image Width', 'porto' ),
'subtitle' => __( 'Thumbnails image width in pixel', 'porto' ),
'description' => sprintf( __( 'NOTE: You need to regenerate all thumbnails to apply the changes. Please use this %1$splugin%2$s to do it.', 'porto' ), '<a href="https://wordpress.org/plugins/regenerate-thumbnails/" target="_blank">', '</a>' ),
'default' => 150,
'min' => 50,
'max' => 500,
'step' => 10,
),
/*array(
'id'=>'product-image-border',
'type' => 'switch',
'title' => __('Show Product Image Border', 'porto'),
'desc' => __( 'If you select yes, this will display border on product image.', 'porto' ),
'default' => true,
'on' => __('Yes', 'porto'),
'off' => __('No', 'porto'),
),*/
array(
'id' => 'product-zoom',
'type' => 'switch',
'title' => __( 'Enable Image Zoom', 'porto' ),
'subtitle' => __( 'To show zoom lens on product image hover in single product page.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-zoom.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-zoom-mobile',
'type' => 'switch',
'title' => __( 'Enable Image Zoom on Mobile', 'porto' ),
'required' => array( 'product-zoom', 'equals', true ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-image-popup',
'type' => 'switch',
'title' => __( 'Enable Image Popup', 'porto' ),
'subtitle' => __( 'To show the image gallery popup on click in single product page.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-image-popup.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_zoom_type',
'type' => 'info',
'title' => __( 'Zoom Type For Single Product Page.', 'porto' ),
'notice' => false,
),
array(
'id' => 'zoom-type',
'type' => 'button_set',
'title' => __( 'Zoom Type', 'porto' ),
'subtitle' => __( 'Select the type to zoom in/out image in single product page.', 'porto' ),
'options' => array(
'inner' => __( 'Inner', 'porto' ),
'lens' => __( 'Lens', 'porto' ),
),
'default' => 'inner',
),
array(
'id' => 'zoom-scroll',
'type' => 'switch',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Scroll Zoom', 'porto' ),
'subtitle' => __( 'To zoom in or out the product image by mouse scroll.', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'zoom-lens-size',
'type' => 'text',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Lens Size', 'porto' ),
'subtitle' => __( 'Input the zoom size of magnifier.', 'porto' ),
'default' => '200',
),
array(
'id' => 'zoom-lens-shape',
'type' => 'button_set',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Lens Shape', 'porto' ),
'subtitle' => __( 'Input the type of magnifier.', 'porto' ),
'options' => array(
'round' => array(
'label' => __( 'Round', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'zoom-lens-shape-circle.gif"/>' ),
),
),
'square' => array(
'label' => __( 'Square', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'zoom-lens-shape-square.gif"/>' ),
),
),
),
'default' => 'square',
),
array(
'id' => 'zoom-contain-lens',
'type' => 'switch',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Contain Lens Zoom', 'porto' ),
'default' => true,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'zoom-lens-border',
'type' => 'text',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Lens Border', 'porto' ),
'default' => '1',
),
array(
'id' => 'zoom-border',
'type' => 'text',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Border Size', 'porto' ),
'subtitle' => __( 'Controls the border size of Lens.', 'porto' ),
'default' => '4',
),
array(
'id' => 'zoom-border-color',
'type' => 'color',
'required' => array( 'zoom-type', 'equals', array( 'lens' ) ),
'title' => __( 'Border Color', 'porto' ),
'subtitle' => __( 'Controls the border color of Lens.', 'porto' ),
'default' => '#888888',
'required' => array( 'zoom-border', '!=', '' ),
),
),
);
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Cart & Checkout Page', 'porto' ),
'transport' => 'postMessage',
'fields' => array(
array(
'id' => 'woo-show-default-page-header',
'type' => 'switch',
'title' => __( 'Page header in Cart and Checkout page', 'porto' ),
'default' => true,
// 'on' => __( 'Yes', 'porto' ),
// 'off' => __( 'No', 'porto' ),
'on' => '<img data-original="' . PORTO_OPTIONS_URI . '/svg/ph-progressive.svg" src="' . PORTO_URI . '/images/lazy.png" title="Progressive Page Header" />',
'off' => '<img data-original="' . PORTO_OPTIONS_URI . '/svg/ph-default.svg" src="' . PORTO_URI . '/images/lazy.png" title="Default Page Header" />',
'transport' => 'refresh',
),
array(
'id' => 'product-crosssell',
'type' => 'switch',
'title' => __( 'Show Cross Sells', 'porto' ),
'subtitle' => __( 'To show cross-sell products.', 'porto' ),
'default' => true,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'product-crosssell.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'product-crosssell-count',
'type' => 'text',
'required' => array( 'product-crosssell', 'equals', true ),
'title' => __( 'Cross Sells Count', 'porto' ),
'subtitle' => __( 'Controls the count of product to show.', 'porto' ),
'default' => '8',
),
array(
'id' => 'auto-update-cart',
'type' => 'switch',
'title' => __( 'Auto Update Cart on Quantity Change', 'porto' ),
'subtitle' => __( 'The cart will be refreshed automatically when you increase/decrease the product quantity.', 'porto' ),
'default' => false,
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'auto-update-cart.gif"/>' ),
),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'cart-version',
'type' => 'button_set',
'title' => __( 'Cart Page Type', 'porto' ),
'subtitle' => __( 'Select the type of cart page layout.', 'porto' ),
'options' => array(
'v1' => __( 'Type 1', 'porto' ),
'v2' => __( 'Type 2', 'porto' ),
),
'default' => 'v2',
'transport' => 'refresh',
),
array(
'id' => 'checkout-version',
'type' => 'button_set',
'title' => __( 'Checkout Page Type', 'porto' ),
'subtitle' => __( 'Select the type of checkout page layout.', 'porto' ),
'options' => array(
'v1' => __( 'Type 1', 'porto' ),
'v2' => __( 'Type 2', 'porto' ),
),
'default' => 'v1',
),
),
);
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Catalog Mode', 'porto' ),
'fields' => array(
array(
'id' => 'product-show-price-role',
'type' => 'button_set',
'multi' => true,
'title' => __( 'Select roles to see product price', 'porto' ),
'subtitle' => __( 'Show the product price by roles.', 'porto' ),
'default' => array(),
'options' => $all_roles,
'transport' => 'refresh',
),
array(
'id' => 'catalog-enable',
'type' => 'switch',
'title' => __( 'Enable Catalog Mode', 'porto' ),
'subtitle' => __( 'Catalog mode is generally used to hide some product fields such as price and add to cart button on shop and product detail page.', 'porto' ),
'default' => false,
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'catalog-admin',
'type' => 'switch',
'title' => __( 'Enable also for administrators', 'porto' ),
'subtitle' => __( '"YES" option enables catalog mode to administrator also.', 'porto' ),
'default' => true,
'required' => array( 'catalog-enable', 'equals', true ),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'catalog-price',
'type' => 'switch',
'title' => __( 'Show Price', 'porto' ),
'subtitle' => __( 'To show price on catalog mode.', 'porto' ),
'default' => false,
'required' => array( 'catalog-enable', 'equals', true ),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'catalog-review',
'type' => 'switch',
'title' => __( 'Show Reviews', 'porto' ),
'subtitle' => __( 'To show reviews.', 'porto' ),
'default' => false,
'required' => array( 'catalog-enable', 'equals', true ),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_add_cart',
'type' => 'info',
'title' => __( 'For Add To Cart Button', 'porto' ),
'required' => array( 'catalog-enable', 'equals', true ),
'notice' => false,
),
array(
'id' => 'catalog-cart',
'type' => 'switch',
'title' => __( 'Show Add Cart Button', 'porto' ),
'subtitle' => __( 'To show Add Cart Button on catalog mode.', 'porto' ),
'default' => false,
'required' => array( 'catalog-enable', 'equals', true ),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'catalog-readmore',
'type' => 'switch',
'title' => __( 'Show Read More Button', 'porto' ),
'subtitle' => __( 'To show Read More Button on catalog mode.', 'porto' ),
'default' => false,
'required' => array( 'catalog-cart', 'equals', false ),
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'catalog-readmore-label',
'type' => 'text',
'required' => array( 'catalog-readmore', 'equals', true ),
'title' => __( 'Read More Button Label', 'porto' ),
'subtitle' => __( 'Input the Label instead of "Read More".', 'porto' ),
'default' => 'Read More',
),
array(
'id' => 'catalog-readmore-target',
'type' => 'button_set',
'title' => __( 'Read More Button Target Attribute', 'porto' ),
'subtitle' => __( 'Determines how to display the target of the linked URL.', 'porto' ),
'required' => array( 'catalog-readmore', 'equals', true ),
'options' => array(
'' => __( 'Self', 'porto' ),
'_blank' => __( 'Blank', 'porto' ),
),
'default' => '',
),
array(
'id' => 'catalog-readmore-archive',
'type' => 'button_set',
'title' => __( 'Determines where to use target attribute.', 'porto' ),
'required' => array( 'catalog-readmore', 'equals', true ),
'options' => array(
'all' => __( 'Product and Product Archives', 'porto' ),
'product' => __( 'Product', 'porto' ),
),
'default' => 'all',
),
),
);
// Register form
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Registration form', 'porto' ),
'fields' => array(
array(
'id' => 'reg-form-info',
'type' => 'button_set',
'title' => __( 'Registration Fields', 'porto' ),
'subtitle' => __( 'If select "Full Info", extra fields such as first name, last name and password confirmation are added in registration form.', 'porto' ),
'multi' => false,
'options' => array(
'full' => array(
'label' => __( 'Full Info', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'reg-form-info-full.jpg"/>' ),
),
),
'short' => array(
'label' => __( 'Short Info', 'porto' ),
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'reg-form-info-short.jpg"/>' ),
),
),
),
'default' => 'short',
),
),
);
// WC Vendor
if ( class_exists( 'WC_Vendors' ) ) {
$this->sections[] = array(
'title' => __( 'Wc Vendor', 'porto' ),
'icon' => 'el el-usd',
'customizer' => false,
'fields' => array(
array(
'id' => 'desc_info_wc_vendor',
'type' => 'info',
'title' => __( 'General Wc Vendor Shop Settings', 'porto' ),
),
array(
'id' => 'porto_wcvendors_phone',
'type' => 'switch',
'title' => __( 'Select Vendor Phone Number', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_email',
'type' => 'switch',
'title' => __( 'Show Vendor Email', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_url',
'type' => 'switch',
'title' => __( 'Show Vendor URL', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_vendor_shop',
'type' => 'info',
'title' => __( 'WC Vendors - Shop Page', 'porto' ),
),
array(
'id' => 'porto_wcvendors_shop_description',
'type' => 'switch',
'title' => __( 'Vendor Description on Top of Shop Page', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_shop_avatar',
'type' => 'switch',
'title' => __( 'Show Vendor Avatar in Vendor Description', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_shop_profile',
'type' => 'switch',
'title' => __( 'Show Social and Contact Info in Vendor Description', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_shop_soldby',
'type' => 'switch',
'title' => __( 'Sold by" at Product List', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_vendor_sp',
'type' => 'info',
'title' => __( 'WC Vendors - Single Product Page', 'porto' ),
),
/*array(
'id' => 'porto_single_wcvendors_hide_header',
'type' => 'switch',
'title' => __ ( 'Vendor Single Product Page Show Header', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __('Yes','porto'),
'off' => __('No','porto'),
),*/
array(
'id' => 'porto_single_wcvendors_product_description',
'type' => 'switch',
'title' => __( 'Vendor Description on Top of Single Product Page', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_product_avatar',
'type' => 'switch',
'title' => __( 'Show Vendor Avatar in Vendor Description', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_product_profile',
'type' => 'switch',
'title' => __( 'Show Social and Contact Info in Vendor Description', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_product_tab',
'type' => 'switch',
'title' => __( '"Seller Info" at Product Tab', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_product_moreproducts',
'type' => 'switch',
'title' => __( '"More From This Seller" Products', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'porto_wcvendors_product_soldby',
'type' => 'switch',
'title' => __( 'Sold by" at Product Meta', 'porto' ),
'compiler' => true,
'default' => '0',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
array(
'id' => 'desc_info_vendor_cart',
'type' => 'info',
'title' => __( 'WC Vendors - Cart Page', 'porto' ),
),
array(
'id' => 'porto_wcvendors_cartpage_soldby',
'type' => 'switch',
'title' => __( '"Sold by" at Cart page', 'porto' ),
'compiler' => true,
'default' => '1',
'on' => __( 'Yes', 'porto' ),
'off' => __( 'No', 'porto' ),
),
),
);
}
$this->sections[] = array(
'icon_class' => 'icon',
'subsection' => true,
'title' => __( 'Styling', 'porto' ),
'transport' => 'postMessage',
'fields' => array(
array(
'id' => 'desc_info_styling',
'type' => 'info',
'desc' => wp_kses(
/* translators: %s: Builder url */
sprintf( __( '<a class="pt-showm-options" href="#"><span>Show More Options</span><i class="fas fa-angle-down"></i></a><strong>Important Note:</strong> <a href="%1$s" target="_blank">Single Product</a> & <a href="%2$s" target="_blank">Product Type</a> Builders help you to develop your site easily. Some below options might be overrided because the priority of the builder widget option is <b>higher</b>.<br/><b>We recommend to use Template Builder to customize easily.</b>', 'porto' ), $product_url, $type_url ),
array(
'strong' => array(),
'b' => array(),
'a' => array(
'href' => array(),
'target' => array(),
'class' => array(),
),
'i' => array(
'class' => array(),
),
'span' => array(),
'br' => array(),
)
),
'class' => 'porto-important-note',
),
array(
'id' => 'shop-add-links-color',
'type' => 'color',
'title' => 'Add Links Color',
'subtitle' => __( 'Add to cart, Wishlist and Quick View Color on archive page', 'porto' ),
'default' => '#333333',
'validate' => 'color',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'shop-add-links-color.gif"/>' ),
),
'selector' => array(
'node' => 'ul.products, .porto-posts-grid',
),
),
array(
'id' => 'shop-add-links-bg-color',
'type' => 'color',
'title' => 'Add Links Background Color',
'subtitle' => __( 'Add to cart, Wishlist and Quick View Background Color on archive page', 'porto' ),
'default' => '#ffffff',
'validate' => 'color',
'selector' => array(
'node' => 'ul.products, .porto-posts-grid',
),
),
array(
'id' => 'shop-add-links-border-color',
'type' => 'color',
'title' => 'Add Links Border Color',
'subtitle' => __( 'Add to cart, Wishlist and Quick View Border Color on archive page', 'porto' ),
'default' => '#dddddd',
'validate' => 'color',
'selector' => array(
'node' => 'ul.products, .porto-posts-grid',
),
),
array(
'id' => 'hot-color',
'type' => 'color',
'title' => __( 'Hot Bg Color', 'porto' ),
'subtitle' => __( 'Control the background of Hot label for featured product.', 'porto' ),
'desc' => __( 'To show Hot label, you should check <strong>WooComerce/Select labels to display</strong> option.', 'porto' ),
'default' => '#62b959',
'validate' => 'color',
'selector' => array(
'node' => '.post-date, .onhot',
),
),
array(
'id' => 'hot-color-inverse',
'type' => 'color',
'title' => __( 'Hot Text Color', 'porto' ),
'subtitle' => __( 'Control the text color of Hot label for featured product.', 'porto' ),
'desc' => __( 'To show Hot label, you should check <strong>WooComerce/Select labels to display</strong> option.', 'porto' ),
'default' => '#ffffff',
'validate' => 'color',
'selector' => array(
'node' => '.post-date, .onhot',
),
),
array(
'id' => 'sale-color',
'type' => 'color',
'title' => __( 'Sale Bg Color', 'porto' ),
'subtitle' => __( 'Control the background of Sale label.', 'porto' ),
'desc' => __( 'To show Sale label, you should check <strong>WooComerce/Select labels to display</strong> option.', 'porto' ),
'default' => '#e27c7c',
'validate' => 'color',
'selector' => array(
'node' => '.onsale',
),
),
array(
'id' => 'sale-color-inverse',
'type' => 'color',
'title' => __( 'Sale Text Color', 'porto' ),
'subtitle' => __( 'Control the text color of Sale label.', 'porto' ),
'desc' => __( 'To show Sale label, you should check <strong>WooComerce/Select labels to display</strong> option.', 'porto' ),
'default' => '#ffffff',
'validate' => 'color',
'selector' => array(
'node' => '.onsale',
),
),
array(
'id' => 'new-bgc',
'type' => 'color',
'title' => __( 'New Label Bg Color', 'porto' ),
'subtitle' => __( 'Control the background of New label for products.', 'porto' ),
'desc' => __( 'To show New label, you should check <strong>WooComerce/Select labels to display</strong> option.', 'porto' ),
'default' => '',
'validate' => 'color',
'selector' => array(
'node' => '.onnew',
),
),
array(
'id' => 'add-to-cart-font',
'type' => 'typography',
'title' => __( 'Add to Cart Font', 'porto' ),
'subtitle' => __( 'Used in add to cart button, quickview, wishlist, price, etc', 'porto' ),
'google' => true,
'subsets' => false,
'font-style' => false,
'text-align' => false,
'color' => false,
'font-weight' => false,
'font-size' => false,
'line-height' => false,
'default' => array(
'google' => true,
),
'selector' => array(
'node' => ':root',
),
),
array(
'id' => 'wishlist-color',
'type' => 'color',
'title' => __( 'Product Action Color', 'porto' ),
'subtitle' => __( 'Controls the color of wishlist and compare on single product page.', 'porto' ),
'default' => '#302e2a',
'validate' => 'color',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'wishlist-color.gif"/>' ),
),
'selector' => array(
'node' => '.product-summary-wrap .yith-wcwl-add-to-wishlist, .product-summary-wrap .yith-compare',
),
),
array(
'id' => 'wishlist-color-inverse',
'type' => 'color',
'title' => __( 'Product Action Hover Color', 'porto' ),
'subtitle' => __( 'Controls the hover color of wishlist and compare on single product page.', 'porto' ),
'default' => '',
'validate' => 'color',
'hint' => array(
'content' => esc_html( '<img src="' . PORTO_HINT_URL . 'wishlist-color-inverse.gif"/>' ),
),
'selector' => array(
'node' => '.product-summary-wrap .yith-wcwl-add-to-wishlist, .product-summary-wrap .yith-compare',
),
),
),
);
Back to Directory
File Manager