Changeset 3458319
- Timestamp:
- 02/10/2026 06:01:51 PM (7 weeks ago)
- Location:
- merchant
- Files:
-
- 1130 added
- 30 edited
-
tags/2.2.3 (added)
-
tags/2.2.3/admin (added)
-
tags/2.2.3/admin/class-merchant-admin-loader.php (added)
-
tags/2.2.3/admin/classes (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-menu.php (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-modules.php (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-options.php (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-preview.php (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-statistics-tracking.php (added)
-
tags/2.2.3/admin/classes/class-merchant-admin-utils.php (added)
-
tags/2.2.3/admin/classes/class-merchant-plugin-installer.php (added)
-
tags/2.2.3/admin/classes/class-merchant-silent-upgrader-skin.php (added)
-
tags/2.2.3/admin/components (added)
-
tags/2.2.3/admin/components/all-modules.php (added)
-
tags/2.2.3/admin/components/analytics-overview-cards.php (added)
-
tags/2.2.3/admin/components/analytics-overview.php (added)
-
tags/2.2.3/admin/components/enabled-modules.php (added)
-
tags/2.2.3/admin/notices (added)
-
tags/2.2.3/admin/notices/class-merchant-notice-campaign.php (added)
-
tags/2.2.3/admin/notices/class-merchant-notice-review.php (added)
-
tags/2.2.3/admin/notices/class-merchant-notice-upsell.php (added)
-
tags/2.2.3/admin/notices/class-merchant-notice.php (added)
-
tags/2.2.3/admin/pages (added)
-
tags/2.2.3/admin/pages/page-analytics.php (added)
-
tags/2.2.3/admin/pages/page-campaigns.php (added)
-
tags/2.2.3/admin/pages/page-dashboard.php (added)
-
tags/2.2.3/admin/pages/page-module.php (added)
-
tags/2.2.3/admin/pages/page-modules.php (added)
-
tags/2.2.3/admin/pages/page-patcher.php (added)
-
tags/2.2.3/admin/pages/page-settings.php (added)
-
tags/2.2.3/assets (added)
-
tags/2.2.3/assets/css (added)
-
tags/2.2.3/assets/css/admin (added)
-
tags/2.2.3/assets/css/admin/admin-rtl.css (added)
-
tags/2.2.3/assets/css/admin/admin-rtl.min.css (added)
-
tags/2.2.3/assets/css/admin/admin.css (added)
-
tags/2.2.3/assets/css/admin/admin.min.css (added)
-
tags/2.2.3/assets/css/admin/analytics.css (added)
-
tags/2.2.3/assets/css/admin/analytics.min.css (added)
-
tags/2.2.3/assets/css/admin/metabox.css (added)
-
tags/2.2.3/assets/css/admin/metabox.min.css (added)
-
tags/2.2.3/assets/css/admin/notices.css (added)
-
tags/2.2.3/assets/css/admin/notices.min.css (added)
-
tags/2.2.3/assets/css/carousel.css (added)
-
tags/2.2.3/assets/css/carousel.min.css (added)
-
tags/2.2.3/assets/css/compatibility (added)
-
tags/2.2.3/assets/css/compatibility/avada (added)
-
tags/2.2.3/assets/css/compatibility/avada/style.css (added)
-
tags/2.2.3/assets/css/compatibility/avada/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/blocksy (added)
-
tags/2.2.3/assets/css/compatibility/blocksy/style.css (added)
-
tags/2.2.3/assets/css/compatibility/blocksy/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/botiga (added)
-
tags/2.2.3/assets/css/compatibility/botiga/style.css (added)
-
tags/2.2.3/assets/css/compatibility/botiga/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/flatsome (added)
-
tags/2.2.3/assets/css/compatibility/flatsome/style.css (added)
-
tags/2.2.3/assets/css/compatibility/flatsome/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/kadence (added)
-
tags/2.2.3/assets/css/compatibility/kadence/style.css (added)
-
tags/2.2.3/assets/css/compatibility/kadence/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/oceanwp (added)
-
tags/2.2.3/assets/css/compatibility/oceanwp/style.css (added)
-
tags/2.2.3/assets/css/compatibility/oceanwp/style.min.css (added)
-
tags/2.2.3/assets/css/compatibility/twenty-twenty-four (added)
-
tags/2.2.3/assets/css/compatibility/twenty-twenty-four/style.css (added)
-
tags/2.2.3/assets/css/compatibility/twenty-twenty-four/style.min.css (added)
-
tags/2.2.3/assets/css/grid.css (added)
-
tags/2.2.3/assets/css/grid.min.css (added)
-
tags/2.2.3/assets/css/merchant.css (added)
-
tags/2.2.3/assets/css/merchant.min.css (added)
-
tags/2.2.3/assets/css/modal.css (added)
-
tags/2.2.3/assets/css/modal.min.css (added)
-
tags/2.2.3/assets/css/modules (added)
-
tags/2.2.3/assets/css/modules/add-to-cart-text (added)
-
tags/2.2.3/assets/css/modules/add-to-cart-text/admin (added)
-
tags/2.2.3/assets/css/modules/add-to-cart-text/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/add-to-cart-text/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/added-to-cart-popup (added)
-
tags/2.2.3/assets/css/modules/added-to-cart-popup/admin (added)
-
tags/2.2.3/assets/css/modules/added-to-cart-popup/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/added-to-cart-popup/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/address-autocomplete (added)
-
tags/2.2.3/assets/css/modules/address-autocomplete/admin (added)
-
tags/2.2.3/assets/css/modules/address-autocomplete/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/address-autocomplete/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews/admin (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews/advanced-reviews.css (added)
-
tags/2.2.3/assets/css/modules/advanced-reviews/advanced-reviews.min.css (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox/admin (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox/agree-to-terms-checkbox.css (added)
-
tags/2.2.3/assets/css/modules/agree-to-terms-checkbox/agree-to-terms-checkbox.min.css (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart/admin (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart/animated-add-to-cart.css (added)
-
tags/2.2.3/assets/css/modules/animated-add-to-cart/animated-add-to-cart.min.css (added)
-
tags/2.2.3/assets/css/modules/auto-external-links (added)
-
tags/2.2.3/assets/css/modules/auto-external-links/admin (added)
-
tags/2.2.3/assets/css/modules/auto-external-links/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/auto-external-links/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/buy-now (added)
-
tags/2.2.3/assets/css/modules/buy-now/admin (added)
-
tags/2.2.3/assets/css/modules/buy-now/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/buy-now/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/buy-now/buy-now.css (added)
-
tags/2.2.3/assets/css/modules/buy-now/buy-now.min.css (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y/admin (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y/buy-x-get-y.css (added)
-
tags/2.2.3/assets/css/modules/buy-x-get-y/buy-x-get-y.min.css (added)
-
tags/2.2.3/assets/css/modules/cart-count-favicon (added)
-
tags/2.2.3/assets/css/modules/cart-count-favicon/admin (added)
-
tags/2.2.3/assets/css/modules/cart-count-favicon/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/cart-count-favicon/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer/admin (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer/cart-reserved-timer.css (added)
-
tags/2.2.3/assets/css/modules/cart-reserved-timer/cart-reserved-timer.min.css (added)
-
tags/2.2.3/assets/css/modules/checkout (added)
-
tags/2.2.3/assets/css/modules/checkout/admin (added)
-
tags/2.2.3/assets/css/modules/checkout/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/checkout/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/clear-cart (added)
-
tags/2.2.3/assets/css/modules/clear-cart/admin (added)
-
tags/2.2.3/assets/css/modules/clear-cart/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/clear-cart/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/clear-cart/clear-cart.css (added)
-
tags/2.2.3/assets/css/modules/clear-cart/clear-cart.min.css (added)
-
tags/2.2.3/assets/css/modules/complementary-products (added)
-
tags/2.2.3/assets/css/modules/complementary-products/admin (added)
-
tags/2.2.3/assets/css/modules/complementary-products/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/complementary-products/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/cookie-banner (added)
-
tags/2.2.3/assets/css/modules/cookie-banner/admin (added)
-
tags/2.2.3/assets/css/modules/cookie-banner/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/cookie-banner/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/cookie-banner/cookie-banner.css (added)
-
tags/2.2.3/assets/css/modules/cookie-banner/cookie-banner.min.css (added)
-
tags/2.2.3/assets/css/modules/countdown-timer (added)
-
tags/2.2.3/assets/css/modules/countdown-timer/admin (added)
-
tags/2.2.3/assets/css/modules/countdown-timer/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/countdown-timer/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/countdown-timer/countdown-timer.css (added)
-
tags/2.2.3/assets/css/modules/countdown-timer/countdown-timer.min.css (added)
-
tags/2.2.3/assets/css/modules/free-gifts (added)
-
tags/2.2.3/assets/css/modules/free-gifts/admin (added)
-
tags/2.2.3/assets/css/modules/free-gifts/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/free-gifts/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/free-gifts/free-gifts.css (added)
-
tags/2.2.3/assets/css/modules/free-gifts/free-gifts.min.css (added)
-
tags/2.2.3/assets/css/modules/free-shipping-progress-bar (added)
-
tags/2.2.3/assets/css/modules/free-shipping-progress-bar/admin (added)
-
tags/2.2.3/assets/css/modules/free-shipping-progress-bar/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/free-shipping-progress-bar/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/frequently-bought-together (added)
-
tags/2.2.3/assets/css/modules/frequently-bought-together/admin (added)
-
tags/2.2.3/assets/css/modules/frequently-bought-together/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/frequently-bought-together/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/inactive-tab-message (added)
-
tags/2.2.3/assets/css/modules/inactive-tab-message/admin (added)
-
tags/2.2.3/assets/css/modules/inactive-tab-message/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/inactive-tab-message/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/login-popup (added)
-
tags/2.2.3/assets/css/modules/login-popup/admin (added)
-
tags/2.2.3/assets/css/modules/login-popup/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/login-popup/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/login-popup/login-popup.css (added)
-
tags/2.2.3/assets/css/modules/login-popup/login-popup.min.css (added)
-
tags/2.2.3/assets/css/modules/payment-logos (added)
-
tags/2.2.3/assets/css/modules/payment-logos/admin (added)
-
tags/2.2.3/assets/css/modules/payment-logos/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/payment-logos/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/payment-logos/payment-logos.css (added)
-
tags/2.2.3/assets/css/modules/payment-logos/payment-logos.min.css (added)
-
tags/2.2.3/assets/css/modules/pre-orders (added)
-
tags/2.2.3/assets/css/modules/pre-orders/admin (added)
-
tags/2.2.3/assets/css/modules/pre-orders/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/pre-orders/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/pre-orders/pre-orders.css (added)
-
tags/2.2.3/assets/css/modules/pre-orders/pre-orders.min.css (added)
-
tags/2.2.3/assets/css/modules/product-audio (added)
-
tags/2.2.3/assets/css/modules/product-audio/admin (added)
-
tags/2.2.3/assets/css/modules/product-audio/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-audio/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-audio/product-audio.css (added)
-
tags/2.2.3/assets/css/modules/product-audio/product-audio.min.css (added)
-
tags/2.2.3/assets/css/modules/product-brand-image (added)
-
tags/2.2.3/assets/css/modules/product-brand-image/admin (added)
-
tags/2.2.3/assets/css/modules/product-brand-image/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-brand-image/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-brand-image/product-brand-image.css (added)
-
tags/2.2.3/assets/css/modules/product-brand-image/product-brand-image.min.css (added)
-
tags/2.2.3/assets/css/modules/product-bundles (added)
-
tags/2.2.3/assets/css/modules/product-bundles/admin (added)
-
tags/2.2.3/assets/css/modules/product-bundles/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-bundles/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-labels (added)
-
tags/2.2.3/assets/css/modules/product-labels/admin (added)
-
tags/2.2.3/assets/css/modules/product-labels/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-labels/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-labels/product-labels.css (added)
-
tags/2.2.3/assets/css/modules/product-labels/product-labels.min.css (added)
-
tags/2.2.3/assets/css/modules/product-navigation-links (added)
-
tags/2.2.3/assets/css/modules/product-navigation-links/admin (added)
-
tags/2.2.3/assets/css/modules/product-navigation-links/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-navigation-links/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-swatches (added)
-
tags/2.2.3/assets/css/modules/product-swatches/admin (added)
-
tags/2.2.3/assets/css/modules/product-swatches/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-swatches/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-video (added)
-
tags/2.2.3/assets/css/modules/product-video/admin (added)
-
tags/2.2.3/assets/css/modules/product-video/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/product-video/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/product-video/product-video.css (added)
-
tags/2.2.3/assets/css/modules/product-video/product-video.min.css (added)
-
tags/2.2.3/assets/css/modules/quick-social-links (added)
-
tags/2.2.3/assets/css/modules/quick-social-links/admin (added)
-
tags/2.2.3/assets/css/modules/quick-social-links/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/quick-social-links/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/quick-social-links/quick-social-links.css (added)
-
tags/2.2.3/assets/css/modules/quick-social-links/quick-social-links.min.css (added)
-
tags/2.2.3/assets/css/modules/quick-view (added)
-
tags/2.2.3/assets/css/modules/quick-view/admin (added)
-
tags/2.2.3/assets/css/modules/quick-view/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/quick-view/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/quick-view/quick-view.css (added)
-
tags/2.2.3/assets/css/modules/quick-view/quick-view.min.css (added)
-
tags/2.2.3/assets/css/modules/real-time-search (added)
-
tags/2.2.3/assets/css/modules/real-time-search/admin (added)
-
tags/2.2.3/assets/css/modules/real-time-search/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/real-time-search/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/real-time-search/real-time-search.css (added)
-
tags/2.2.3/assets/css/modules/real-time-search/real-time-search.min.css (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy/admin (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy/reasons-to-buy.css (added)
-
tags/2.2.3/assets/css/modules/reasons-to-buy/reasons-to-buy.min.css (added)
-
tags/2.2.3/assets/css/modules/recent-sales-notifications (added)
-
tags/2.2.3/assets/css/modules/recent-sales-notifications/admin (added)
-
tags/2.2.3/assets/css/modules/recent-sales-notifications/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/recent-sales-notifications/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products/admin (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products/recently-viewed-products.css (added)
-
tags/2.2.3/assets/css/modules/recently-viewed-products/recently-viewed-products.min.css (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button/admin (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button/scroll-to-top-button.css (added)
-
tags/2.2.3/assets/css/modules/scroll-to-top-button/scroll-to-top-button.min.css (added)
-
tags/2.2.3/assets/css/modules/side-cart (added)
-
tags/2.2.3/assets/css/modules/side-cart/admin (added)
-
tags/2.2.3/assets/css/modules/side-cart/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/side-cart/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/side-cart/side-cart.css (added)
-
tags/2.2.3/assets/css/modules/side-cart/side-cart.min.css (added)
-
tags/2.2.3/assets/css/modules/size-chart (added)
-
tags/2.2.3/assets/css/modules/size-chart/admin (added)
-
tags/2.2.3/assets/css/modules/size-chart/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/size-chart/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/size-chart/size-chart.css (added)
-
tags/2.2.3/assets/css/modules/size-chart/size-chart.min.css (added)
-
tags/2.2.3/assets/css/modules/spending-goal (added)
-
tags/2.2.3/assets/css/modules/spending-goal/admin (added)
-
tags/2.2.3/assets/css/modules/spending-goal/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/spending-goal/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/spending-goal/spending-goal.css (added)
-
tags/2.2.3/assets/css/modules/spending-goal/spending-goal.min.css (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart/admin (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart/sticky-add-to-cart.css (added)
-
tags/2.2.3/assets/css/modules/sticky-add-to-cart/sticky-add-to-cart.min.css (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity/admin (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity/stock-scarcity.css (added)
-
tags/2.2.3/assets/css/modules/stock-scarcity/stock-scarcity.min.css (added)
-
tags/2.2.3/assets/css/modules/storewide-sale (added)
-
tags/2.2.3/assets/css/modules/storewide-sale/admin (added)
-
tags/2.2.3/assets/css/modules/storewide-sale/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/storewide-sale/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/trust-badges (added)
-
tags/2.2.3/assets/css/modules/trust-badges/admin (added)
-
tags/2.2.3/assets/css/modules/trust-badges/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/trust-badges/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/trust-badges/trust-badges.css (added)
-
tags/2.2.3/assets/css/modules/trust-badges/trust-badges.min.css (added)
-
tags/2.2.3/assets/css/modules/volume-discounts (added)
-
tags/2.2.3/assets/css/modules/volume-discounts/admin (added)
-
tags/2.2.3/assets/css/modules/volume-discounts/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/volume-discounts/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/volume-discounts/volume-discounts.css (added)
-
tags/2.2.3/assets/css/modules/volume-discounts/volume-discounts.min.css (added)
-
tags/2.2.3/assets/css/modules/wait-list (added)
-
tags/2.2.3/assets/css/modules/wait-list/admin (added)
-
tags/2.2.3/assets/css/modules/wait-list/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/wait-list/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/wait-list/wait-list.css (added)
-
tags/2.2.3/assets/css/modules/wait-list/wait-list.min.css (added)
-
tags/2.2.3/assets/css/modules/wishlist (added)
-
tags/2.2.3/assets/css/modules/wishlist/admin (added)
-
tags/2.2.3/assets/css/modules/wishlist/admin/preview.css (added)
-
tags/2.2.3/assets/css/modules/wishlist/admin/preview.min.css (added)
-
tags/2.2.3/assets/css/modules/wishlist/wishlist-button.css (added)
-
tags/2.2.3/assets/css/modules/wishlist/wishlist-button.min.css (added)
-
tags/2.2.3/assets/css/pagination.css (added)
-
tags/2.2.3/assets/css/pagination.min.css (added)
-
tags/2.2.3/assets/css/tooltip.css (added)
-
tags/2.2.3/assets/css/tooltip.min.css (added)
-
tags/2.2.3/assets/images (added)
-
tags/2.2.3/assets/images/admin (added)
-
tags/2.2.3/assets/images/admin-hand-icon.png (added)
-
tags/2.2.3/assets/images/admin/calendar.svg (added)
-
tags/2.2.3/assets/images/admin/info.svg (added)
-
tags/2.2.3/assets/images/admin/no-active-modules.svg (added)
-
tags/2.2.3/assets/images/admin/no-campaigns.svg (added)
-
tags/2.2.3/assets/images/admin/notice-thumbnail.png (added)
-
tags/2.2.3/assets/images/admin/products-search-icon.svg (added)
-
tags/2.2.3/assets/images/arrow-1.svg (added)
-
tags/2.2.3/assets/images/arrow-2.svg (added)
-
tags/2.2.3/assets/images/arrow-3.svg (added)
-
tags/2.2.3/assets/images/arrow-4.svg (added)
-
tags/2.2.3/assets/images/arrow-down.svg (added)
-
tags/2.2.3/assets/images/athemes-logo.svg (added)
-
tags/2.2.3/assets/images/cart.svg (added)
-
tags/2.2.3/assets/images/chevron-right-small.svg (added)
-
tags/2.2.3/assets/images/dashboard-hero.svg (added)
-
tags/2.2.3/assets/images/dummy (added)
-
tags/2.2.3/assets/images/dummy/Glamifiedpeach.jpeg (added)
-
tags/2.2.3/assets/images/dummy/Glamifiedviola.jpeg (added)
-
tags/2.2.3/assets/images/dummy/Pearlville.jpeg (added)
-
tags/2.2.3/assets/images/enable-module.png (added)
-
tags/2.2.3/assets/images/eye.svg (added)
-
tags/2.2.3/assets/images/icon-1.svg (added)
-
tags/2.2.3/assets/images/icon-2.svg (added)
-
tags/2.2.3/assets/images/icon-3.svg (added)
-
tags/2.2.3/assets/images/icons (added)
-
tags/2.2.3/assets/images/icons/cart-reserved-timer (added)
-
tags/2.2.3/assets/images/icons/cart-reserved-timer/cancel.svg (added)
-
tags/2.2.3/assets/images/icons/cart-reserved-timer/clock.svg (added)
-
tags/2.2.3/assets/images/icons/cart-reserved-timer/fire.svg (added)
-
tags/2.2.3/assets/images/icons/cart-reserved-timer/hour-glass.svg (added)
-
tags/2.2.3/assets/images/icons/countdown-timer (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/cards.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/circles.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/classic.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/minimalist.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/modern.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/progress.png (added)
-
tags/2.2.3/assets/images/icons/countdown-timer/admin/squares.png (added)
-
tags/2.2.3/assets/images/icons/free-gifts (added)
-
tags/2.2.3/assets/images/icons/free-gifts/icon-1.svg (added)
-
tags/2.2.3/assets/images/icons/free-gifts/icon-2.svg (added)
-
tags/2.2.3/assets/images/icons/free-gifts/icon-3.svg (added)
-
tags/2.2.3/assets/images/icons/free-gifts/icon-4.svg (added)
-
tags/2.2.3/assets/images/icons/free-gifts/icon-5.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-icon.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-1.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-10.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-11.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-12.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-13.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-14.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-15.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-16.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-17.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-18.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-19.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-2.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-20.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-21.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-22.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-23.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-24.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-3.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-4.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-5.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-6.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-7.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-8.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/image-shape-9.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-icon.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-1.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-2.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-3.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-4.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-5.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-6.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-7.svg (added)
-
tags/2.2.3/assets/images/icons/product-labels/text-shape-8.svg (added)
-
tags/2.2.3/assets/images/icons/side-cart (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin/cart-icon-1.svg (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin/cart-icon-2.svg (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin/cart-icon-3.svg (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin/cart-icon-4.svg (added)
-
tags/2.2.3/assets/images/icons/side-cart/admin/cart-icon-5.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/cloth-size-guide-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/icon-size-chart.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/measurement-vertical-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/measuring-tape-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/pencil-rule.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/admin/scale-ruler-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/cloth-size-guide-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/icon-size-chart.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/measurement-vertical-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/measuring-tape-icon.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/pencil-rule.svg (added)
-
tags/2.2.3/assets/images/icons/size-chart/scale-ruler-icon.svg (added)
-
tags/2.2.3/assets/images/merchant-logo.svg (added)
-
tags/2.2.3/assets/images/modules (added)
-
tags/2.2.3/assets/images/modules-hero.svg (added)
-
tags/2.2.3/assets/images/modules/added-to-cart-popup (added)
-
tags/2.2.3/assets/images/modules/added-to-cart-popup/admin (added)
-
tags/2.2.3/assets/images/modules/added-to-cart-popup/admin/layout-1.png (added)
-
tags/2.2.3/assets/images/modules/added-to-cart-popup/admin/layout-2.png (added)
-
tags/2.2.3/assets/images/modules/added-to-cart-popup/admin/layout-3.png (added)
-
tags/2.2.3/assets/images/modules/agree-to-terms-checkbox.png (added)
-
tags/2.2.3/assets/images/modules/animated-add-to-cart.png (added)
-
tags/2.2.3/assets/images/modules/auto-external-links.png (added)
-
tags/2.2.3/assets/images/modules/buy-now.png (added)
-
tags/2.2.3/assets/images/modules/cart-count-favicon.png (added)
-
tags/2.2.3/assets/images/modules/code-snippets.png (added)
-
tags/2.2.3/assets/images/modules/cookie-banner.png (added)
-
tags/2.2.3/assets/images/modules/inactive-tab-messsage.png (added)
-
tags/2.2.3/assets/images/modules/payment-logos.png (added)
-
tags/2.2.3/assets/images/modules/pre-orders.png (added)
-
tags/2.2.3/assets/images/modules/product-labels.png (added)
-
tags/2.2.3/assets/images/modules/quick-view.png (added)
-
tags/2.2.3/assets/images/modules/real-time-search.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/black_friday.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/christmas.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/cyber_monday.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/halloween.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/layout-1.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/layout-2.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/layout-3.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/layout-4.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/new_year.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/spring.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/thanks_giving.png (added)
-
tags/2.2.3/assets/images/modules/recent-sales-notifications/valentine.png (added)
-
tags/2.2.3/assets/images/modules/scroll-to-top-button.png (added)
-
tags/2.2.3/assets/images/modules/trust-badges.png (added)
-
tags/2.2.3/assets/images/qlb.svg (added)
-
tags/2.2.3/assets/images/qlbf.svg (added)
-
tags/2.2.3/assets/images/qll.svg (added)
-
tags/2.2.3/assets/images/qlr.svg (added)
-
tags/2.2.3/assets/images/upload-icon.svg (added)
-
tags/2.2.3/assets/js (added)
-
tags/2.2.3/assets/js/admin (added)
-
tags/2.2.3/assets/js/admin/admin.js (added)
-
tags/2.2.3/assets/js/admin/admin.min.js (added)
-
tags/2.2.3/assets/js/admin/analytics.js (added)
-
tags/2.2.3/assets/js/admin/analytics.min.js (added)
-
tags/2.2.3/assets/js/admin/merchant-metabox.js (added)
-
tags/2.2.3/assets/js/admin/merchant-metabox.min.js (added)
-
tags/2.2.3/assets/js/admin/merchant-preview.js (added)
-
tags/2.2.3/assets/js/admin/merchant-preview.min.js (added)
-
tags/2.2.3/assets/js/admin/plugin-installer.js (added)
-
tags/2.2.3/assets/js/admin/plugin-installer.min.js (added)
-
tags/2.2.3/assets/js/admin/settings.js (added)
-
tags/2.2.3/assets/js/admin/settings.min.js (added)
-
tags/2.2.3/assets/js/carousel.js (added)
-
tags/2.2.3/assets/js/carousel.min.js (added)
-
tags/2.2.3/assets/js/copy-to-clipboard.js (added)
-
tags/2.2.3/assets/js/copy-to-clipboard.min.js (added)
-
tags/2.2.3/assets/js/custom-addtocart-button.js (added)
-
tags/2.2.3/assets/js/custom-addtocart-button.min.js (added)
-
tags/2.2.3/assets/js/merchant.js (added)
-
tags/2.2.3/assets/js/merchant.min.js (added)
-
tags/2.2.3/assets/js/modal.js (added)
-
tags/2.2.3/assets/js/modal.min.js (added)
-
tags/2.2.3/assets/js/modules (added)
-
tags/2.2.3/assets/js/modules/added-to-cart-popup (added)
-
tags/2.2.3/assets/js/modules/added-to-cart-popup/admin (added)
-
tags/2.2.3/assets/js/modules/added-to-cart-popup/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/added-to-cart-popup/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/address-autocomplete (added)
-
tags/2.2.3/assets/js/modules/address-autocomplete/admin (added)
-
tags/2.2.3/assets/js/modules/address-autocomplete/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/address-autocomplete/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/auto-external-links (added)
-
tags/2.2.3/assets/js/modules/auto-external-links/auto-external-links.js (added)
-
tags/2.2.3/assets/js/modules/auto-external-links/auto-external-links.min.js (added)
-
tags/2.2.3/assets/js/modules/buy-now (added)
-
tags/2.2.3/assets/js/modules/buy-now/admin (added)
-
tags/2.2.3/assets/js/modules/buy-now/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/buy-now/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/buy-now/buy-now.js (added)
-
tags/2.2.3/assets/js/modules/buy-now/buy-now.min.js (added)
-
tags/2.2.3/assets/js/modules/buy-x-get-y (added)
-
tags/2.2.3/assets/js/modules/buy-x-get-y/admin (added)
-
tags/2.2.3/assets/js/modules/buy-x-get-y/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/buy-x-get-y/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/cart-count-favicon (added)
-
tags/2.2.3/assets/js/modules/cart-count-favicon/cart-count-favicon.js (added)
-
tags/2.2.3/assets/js/modules/cart-count-favicon/cart-count-favicon.min.js (added)
-
tags/2.2.3/assets/js/modules/clear-cart (added)
-
tags/2.2.3/assets/js/modules/clear-cart/admin (added)
-
tags/2.2.3/assets/js/modules/clear-cart/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/clear-cart/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/clear-cart/clear-cart.js (added)
-
tags/2.2.3/assets/js/modules/clear-cart/clear-cart.min.js (added)
-
tags/2.2.3/assets/js/modules/complementary-products (added)
-
tags/2.2.3/assets/js/modules/complementary-products/admin (added)
-
tags/2.2.3/assets/js/modules/complementary-products/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/complementary-products/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/cookie-banner (added)
-
tags/2.2.3/assets/js/modules/cookie-banner/cookie-banner.js (added)
-
tags/2.2.3/assets/js/modules/cookie-banner/cookie-banner.min.js (added)
-
tags/2.2.3/assets/js/modules/countdown-timer (added)
-
tags/2.2.3/assets/js/modules/countdown-timer/admin (added)
-
tags/2.2.3/assets/js/modules/countdown-timer/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/countdown-timer/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/countdown-timer/countdown-timer.js (added)
-
tags/2.2.3/assets/js/modules/countdown-timer/countdown-timer.min.js (added)
-
tags/2.2.3/assets/js/modules/free-gifts (added)
-
tags/2.2.3/assets/js/modules/free-gifts/admin (added)
-
tags/2.2.3/assets/js/modules/free-gifts/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/free-gifts/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/free-shipping-progress-bar (added)
-
tags/2.2.3/assets/js/modules/free-shipping-progress-bar/admin (added)
-
tags/2.2.3/assets/js/modules/free-shipping-progress-bar/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/free-shipping-progress-bar/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/frequently-bought-together (added)
-
tags/2.2.3/assets/js/modules/frequently-bought-together/admin (added)
-
tags/2.2.3/assets/js/modules/frequently-bought-together/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/frequently-bought-together/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/inactive-tab-message (added)
-
tags/2.2.3/assets/js/modules/inactive-tab-message/inactive-tab-message.js (added)
-
tags/2.2.3/assets/js/modules/inactive-tab-message/inactive-tab-message.min.js (added)
-
tags/2.2.3/assets/js/modules/login-popup (added)
-
tags/2.2.3/assets/js/modules/login-popup/login-popup.js (added)
-
tags/2.2.3/assets/js/modules/login-popup/login-popup.min.js (added)
-
tags/2.2.3/assets/js/modules/payment-logos (added)
-
tags/2.2.3/assets/js/modules/payment-logos/admin (added)
-
tags/2.2.3/assets/js/modules/payment-logos/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/payment-logos/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/pre-orders (added)
-
tags/2.2.3/assets/js/modules/pre-orders/admin (added)
-
tags/2.2.3/assets/js/modules/pre-orders/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/pre-orders/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/pre-orders/pre-orders.js (added)
-
tags/2.2.3/assets/js/modules/pre-orders/pre-orders.min.js (added)
-
tags/2.2.3/assets/js/modules/product-bundles (added)
-
tags/2.2.3/assets/js/modules/product-bundles/admin (added)
-
tags/2.2.3/assets/js/modules/product-bundles/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/product-bundles/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/product-labels (added)
-
tags/2.2.3/assets/js/modules/product-labels/admin (added)
-
tags/2.2.3/assets/js/modules/product-labels/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/product-labels/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/product-labels/product-labels.js (added)
-
tags/2.2.3/assets/js/modules/product-labels/product-labels.min.js (added)
-
tags/2.2.3/assets/js/modules/product-swatches (added)
-
tags/2.2.3/assets/js/modules/product-swatches/admin (added)
-
tags/2.2.3/assets/js/modules/product-swatches/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/product-swatches/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/quick-social-links (added)
-
tags/2.2.3/assets/js/modules/quick-social-links/admin (added)
-
tags/2.2.3/assets/js/modules/quick-social-links/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/quick-social-links/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/quick-view (added)
-
tags/2.2.3/assets/js/modules/quick-view/quick-view.js (added)
-
tags/2.2.3/assets/js/modules/quick-view/quick-view.min.js (added)
-
tags/2.2.3/assets/js/modules/real-time-search (added)
-
tags/2.2.3/assets/js/modules/real-time-search/real-time-search.js (added)
-
tags/2.2.3/assets/js/modules/real-time-search/real-time-search.min.js (added)
-
tags/2.2.3/assets/js/modules/reasons-to-buy (added)
-
tags/2.2.3/assets/js/modules/reasons-to-buy/admin (added)
-
tags/2.2.3/assets/js/modules/reasons-to-buy/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/reasons-to-buy/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/recent-sales-notifications (added)
-
tags/2.2.3/assets/js/modules/recent-sales-notifications/admin (added)
-
tags/2.2.3/assets/js/modules/recent-sales-notifications/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/recent-sales-notifications/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/scroll-to-top-button (added)
-
tags/2.2.3/assets/js/modules/scroll-to-top-button/scroll-to-top-button.js (added)
-
tags/2.2.3/assets/js/modules/scroll-to-top-button/scroll-to-top-button.min.js (added)
-
tags/2.2.3/assets/js/modules/side-cart (added)
-
tags/2.2.3/assets/js/modules/side-cart/admin (added)
-
tags/2.2.3/assets/js/modules/side-cart/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/side-cart/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/side-cart/side-cart.js (added)
-
tags/2.2.3/assets/js/modules/side-cart/side-cart.min.js (added)
-
tags/2.2.3/assets/js/modules/size-chart (added)
-
tags/2.2.3/assets/js/modules/size-chart/size-chart.js (added)
-
tags/2.2.3/assets/js/modules/size-chart/size-chart.min.js (added)
-
tags/2.2.3/assets/js/modules/spending-goal (added)
-
tags/2.2.3/assets/js/modules/spending-goal/admin (added)
-
tags/2.2.3/assets/js/modules/spending-goal/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/spending-goal/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/modules/spending-goal/spending-goal.js (added)
-
tags/2.2.3/assets/js/modules/spending-goal/spending-goal.min.js (added)
-
tags/2.2.3/assets/js/modules/volume-discounts (added)
-
tags/2.2.3/assets/js/modules/volume-discounts/admin (added)
-
tags/2.2.3/assets/js/modules/volume-discounts/admin/preview.js (added)
-
tags/2.2.3/assets/js/modules/volume-discounts/admin/preview.min.js (added)
-
tags/2.2.3/assets/js/pagination.js (added)
-
tags/2.2.3/assets/js/pagination.min.js (added)
-
tags/2.2.3/assets/js/scroll-direction.js (added)
-
tags/2.2.3/assets/js/scroll-direction.min.js (added)
-
tags/2.2.3/assets/js/scroll-to.js (added)
-
tags/2.2.3/assets/js/scroll-to.min.js (added)
-
tags/2.2.3/assets/js/toggle-class.js (added)
-
tags/2.2.3/assets/js/toggle-class.min.js (added)
-
tags/2.2.3/assets/js/vendor (added)
-
tags/2.2.3/assets/js/vendor/apexcharts.min.js (added)
-
tags/2.2.3/assets/js/vendor/favico.js (added)
-
tags/2.2.3/assets/vendor (added)
-
tags/2.2.3/assets/vendor/air-datepicker (added)
-
tags/2.2.3/assets/vendor/air-datepicker/air-datepicker.css (added)
-
tags/2.2.3/assets/vendor/air-datepicker/air-datepicker.js (added)
-
tags/2.2.3/assets/vendor/jquery-form (added)
-
tags/2.2.3/assets/vendor/jquery-form/jquery.form.min.js (added)
-
tags/2.2.3/assets/vendor/pickr (added)
-
tags/2.2.3/assets/vendor/pickr/pickr.min.js (added)
-
tags/2.2.3/assets/vendor/select2 (added)
-
tags/2.2.3/assets/vendor/select2/select2.full.min.js (added)
-
tags/2.2.3/assets/vendor/select2/select2.min.css (added)
-
tags/2.2.3/assets/vendor/slick-slider (added)
-
tags/2.2.3/assets/vendor/slick-slider/slick.css (added)
-
tags/2.2.3/assets/vendor/slick-slider/slick.min.js (added)
-
tags/2.2.3/inc (added)
-
tags/2.2.3/inc/MultiLang (added)
-
tags/2.2.3/inc/MultiLang/class-merchant-no-plugin-support.php (added)
-
tags/2.2.3/inc/MultiLang/class-merchant-polylang-support.php (added)
-
tags/2.2.3/inc/MultiLang/class-merchant-translator.php (added)
-
tags/2.2.3/inc/MultiLang/class-merchant-wpml-support.php (added)
-
tags/2.2.3/inc/MultiLang/interface-language-strategy.php (added)
-
tags/2.2.3/inc/analytics (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-data-ajax.php (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-data-hooks.php (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-data-provider.php (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-data-reports.php (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-db-orm.php (added)
-
tags/2.2.3/inc/analytics/class-merchant-analytics-logger.php (added)
-
tags/2.2.3/inc/class-merchant-loader.php (added)
-
tags/2.2.3/inc/classes (added)
-
tags/2.2.3/inc/classes/class-merchant-ajax-callbacks.php (added)
-
tags/2.2.3/inc/classes/class-merchant-custom-css.php (added)
-
tags/2.2.3/inc/classes/class-merchant-db-tables.php (added)
-
tags/2.2.3/inc/classes/class-merchant-general-hooks.php (added)
-
tags/2.2.3/inc/classes/class-merchant-metabox.php (added)
-
tags/2.2.3/inc/classes/class-merchant-modules.php (added)
-
tags/2.2.3/inc/classes/class-merchant-option.php (added)
-
tags/2.2.3/inc/classes/class-merchant-svg-icons.php (added)
-
tags/2.2.3/inc/compatibility (added)
-
tags/2.2.3/inc/compatibility/class-merchant-astra-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-avada-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-blocksy-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-botiga-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-breakdance-builder.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-bricks-builder.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-divi-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-elementor-builder.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-flatsome-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-kadence-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-oceanwp-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-ohio-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-twenty-twenty-four-theme.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-woo-multi-currency.php (added)
-
tags/2.2.3/inc/compatibility/class-merchant-woo-payments-plugin.php (added)
-
tags/2.2.3/inc/functions.php (added)
-
tags/2.2.3/inc/helpers.php (added)
-
tags/2.2.3/inc/modules (added)
-
tags/2.2.3/inc/modules/add-to-cart-text (added)
-
tags/2.2.3/inc/modules/add-to-cart-text/admin (added)
-
tags/2.2.3/inc/modules/add-to-cart-text/admin/class-add-to-cart-text-metabox.php (added)
-
tags/2.2.3/inc/modules/add-to-cart-text/admin/options.php (added)
-
tags/2.2.3/inc/modules/add-to-cart-text/class-add-to-cart-text.php (added)
-
tags/2.2.3/inc/modules/added-to-cart-popup (added)
-
tags/2.2.3/inc/modules/added-to-cart-popup/admin (added)
-
tags/2.2.3/inc/modules/added-to-cart-popup/admin/options.php (added)
-
tags/2.2.3/inc/modules/added-to-cart-popup/class-added-to-cart-popup.php (added)
-
tags/2.2.3/inc/modules/address-autocomplete (added)
-
tags/2.2.3/inc/modules/address-autocomplete/admin (added)
-
tags/2.2.3/inc/modules/address-autocomplete/admin/options.php (added)
-
tags/2.2.3/inc/modules/address-autocomplete/class-address-autocomplete.php (added)
-
tags/2.2.3/inc/modules/advanced-reviews (added)
-
tags/2.2.3/inc/modules/advanced-reviews/admin (added)
-
tags/2.2.3/inc/modules/advanced-reviews/admin/class-reviews-table.php (added)
-
tags/2.2.3/inc/modules/advanced-reviews/admin/options.php (added)
-
tags/2.2.3/inc/modules/advanced-reviews/class-advanced-reviews-analytics.php (added)
-
tags/2.2.3/inc/modules/advanced-reviews/class-advanced-reviews.php (added)
-
tags/2.2.3/inc/modules/advanced-reviews/class-product-dummy-data.php (added)
-
tags/2.2.3/inc/modules/agree-to-terms-checkbox (added)
-
tags/2.2.3/inc/modules/agree-to-terms-checkbox/admin (added)
-
tags/2.2.3/inc/modules/agree-to-terms-checkbox/admin/options.php (added)
-
tags/2.2.3/inc/modules/agree-to-terms-checkbox/class-agree-to-terms-checkbox.php (added)
-
tags/2.2.3/inc/modules/animated-add-to-cart (added)
-
tags/2.2.3/inc/modules/animated-add-to-cart/admin (added)
-
tags/2.2.3/inc/modules/animated-add-to-cart/admin/options.php (added)
-
tags/2.2.3/inc/modules/animated-add-to-cart/class-animated-add-to-cart.php (added)
-
tags/2.2.3/inc/modules/auto-external-links (added)
-
tags/2.2.3/inc/modules/auto-external-links/admin (added)
-
tags/2.2.3/inc/modules/auto-external-links/admin/images (added)
-
tags/2.2.3/inc/modules/auto-external-links/admin/images/preview-auto-external-links.png (added)
-
tags/2.2.3/inc/modules/auto-external-links/admin/options.php (added)
-
tags/2.2.3/inc/modules/auto-external-links/class-auto-external-links.php (added)
-
tags/2.2.3/inc/modules/buy-now (added)
-
tags/2.2.3/inc/modules/buy-now/admin (added)
-
tags/2.2.3/inc/modules/buy-now/admin/options.php (added)
-
tags/2.2.3/inc/modules/buy-now/class-buy-now-exclusion.php (added)
-
tags/2.2.3/inc/modules/buy-now/class-buy-now.php (added)
-
tags/2.2.3/inc/modules/buy-x-get-y (added)
-
tags/2.2.3/inc/modules/buy-x-get-y/admin (added)
-
tags/2.2.3/inc/modules/buy-x-get-y/admin/options.php (added)
-
tags/2.2.3/inc/modules/buy-x-get-y/class-buy-x-get-y.php (added)
-
tags/2.2.3/inc/modules/cart-count-favicon (added)
-
tags/2.2.3/inc/modules/cart-count-favicon/admin (added)
-
tags/2.2.3/inc/modules/cart-count-favicon/admin/images (added)
-
tags/2.2.3/inc/modules/cart-count-favicon/admin/images/wplogo.svg (added)
-
tags/2.2.3/inc/modules/cart-count-favicon/admin/options.php (added)
-
tags/2.2.3/inc/modules/cart-count-favicon/class-cart-count-favicon.php (added)
-
tags/2.2.3/inc/modules/cart-reserved-timer (added)
-
tags/2.2.3/inc/modules/cart-reserved-timer/admin (added)
-
tags/2.2.3/inc/modules/cart-reserved-timer/admin/options.php (added)
-
tags/2.2.3/inc/modules/cart-reserved-timer/class-cart-reserved-timer.php (added)
-
tags/2.2.3/inc/modules/checkout (added)
-
tags/2.2.3/inc/modules/checkout/admin (added)
-
tags/2.2.3/inc/modules/checkout/admin/images (added)
-
tags/2.2.3/inc/modules/checkout/admin/images/preview-layout-multi-step.png (added)
-
tags/2.2.3/inc/modules/checkout/admin/images/preview-layout-one-step.png (added)
-
tags/2.2.3/inc/modules/checkout/admin/images/preview-layout-shopify.png (added)
-
tags/2.2.3/inc/modules/checkout/admin/options.php (added)
-
tags/2.2.3/inc/modules/checkout/class-checkout.php (added)
-
tags/2.2.3/inc/modules/class-add-module.php (added)
-
tags/2.2.3/inc/modules/clear-cart (added)
-
tags/2.2.3/inc/modules/clear-cart/admin (added)
-
tags/2.2.3/inc/modules/clear-cart/admin/options.php (added)
-
tags/2.2.3/inc/modules/clear-cart/class-clear-cart.php (added)
-
tags/2.2.3/inc/modules/complementary-products (added)
-
tags/2.2.3/inc/modules/complementary-products/admin (added)
-
tags/2.2.3/inc/modules/complementary-products/admin/options.php (added)
-
tags/2.2.3/inc/modules/complementary-products/class-complementary-products.php (added)
-
tags/2.2.3/inc/modules/cookie-banner (added)
-
tags/2.2.3/inc/modules/cookie-banner/admin (added)
-
tags/2.2.3/inc/modules/cookie-banner/admin/options.php (added)
-
tags/2.2.3/inc/modules/cookie-banner/class-cookie-banner.php (added)
-
tags/2.2.3/inc/modules/countdown-timer (added)
-
tags/2.2.3/inc/modules/countdown-timer/admin (added)
-
tags/2.2.3/inc/modules/countdown-timer/admin/options.php (added)
-
tags/2.2.3/inc/modules/countdown-timer/class-countdown-timer.php (added)
-
tags/2.2.3/inc/modules/free-gifts (added)
-
tags/2.2.3/inc/modules/free-gifts/admin (added)
-
tags/2.2.3/inc/modules/free-gifts/admin/options.php (added)
-
tags/2.2.3/inc/modules/free-gifts/class-free-gifts.php (added)
-
tags/2.2.3/inc/modules/free-shipping-progress-bar (added)
-
tags/2.2.3/inc/modules/free-shipping-progress-bar/admin (added)
-
tags/2.2.3/inc/modules/free-shipping-progress-bar/admin/options.php (added)
-
tags/2.2.3/inc/modules/free-shipping-progress-bar/class-free-shipping-progress-bar.php (added)
-
tags/2.2.3/inc/modules/frequently-bought-together (added)
-
tags/2.2.3/inc/modules/frequently-bought-together/admin (added)
-
tags/2.2.3/inc/modules/frequently-bought-together/admin/options.php (added)
-
tags/2.2.3/inc/modules/frequently-bought-together/class-frequently-bought-together.php (added)
-
tags/2.2.3/inc/modules/global-settings (added)
-
tags/2.2.3/inc/modules/global-settings/global-settings.php (added)
-
tags/2.2.3/inc/modules/inactive-tab-message (added)
-
tags/2.2.3/inc/modules/inactive-tab-message/admin (added)
-
tags/2.2.3/inc/modules/inactive-tab-message/admin/images (added)
-
tags/2.2.3/inc/modules/inactive-tab-message/admin/images/wplogo.svg (added)
-
tags/2.2.3/inc/modules/inactive-tab-message/admin/options.php (added)
-
tags/2.2.3/inc/modules/inactive-tab-message/class-inactive-tab-message.php (added)
-
tags/2.2.3/inc/modules/login-popup (added)
-
tags/2.2.3/inc/modules/login-popup/admin (added)
-
tags/2.2.3/inc/modules/login-popup/admin/options.php (added)
-
tags/2.2.3/inc/modules/login-popup/class-login-popup.php (added)
-
tags/2.2.3/inc/modules/payment-logos (added)
-
tags/2.2.3/inc/modules/payment-logos/admin (added)
-
tags/2.2.3/inc/modules/payment-logos/admin/images (added)
-
tags/2.2.3/inc/modules/payment-logos/admin/images/master.svg (added)
-
tags/2.2.3/inc/modules/payment-logos/admin/images/pp.svg (added)
-
tags/2.2.3/inc/modules/payment-logos/admin/images/visa.svg (added)
-
tags/2.2.3/inc/modules/payment-logos/admin/options.php (added)
-
tags/2.2.3/inc/modules/payment-logos/class-payment-logos.php (added)
-
tags/2.2.3/inc/modules/pre-orders (added)
-
tags/2.2.3/inc/modules/pre-orders/admin (added)
-
tags/2.2.3/inc/modules/pre-orders/admin/class-pre-orders-metabox.php (added)
-
tags/2.2.3/inc/modules/pre-orders/admin/options.php (added)
-
tags/2.2.3/inc/modules/pre-orders/class-pre-orders-main-functionality.php (added)
-
tags/2.2.3/inc/modules/pre-orders/class-pre-orders.php (added)
-
tags/2.2.3/inc/modules/pre-orders/classes (added)
-
tags/2.2.3/inc/modules/pre-orders/classes/class-pre-orders-rules.php (added)
-
tags/2.2.3/inc/modules/product-audio (added)
-
tags/2.2.3/inc/modules/product-audio/admin (added)
-
tags/2.2.3/inc/modules/product-audio/admin/images (added)
-
tags/2.2.3/inc/modules/product-audio/admin/images/preview-product-audio.png (added)
-
tags/2.2.3/inc/modules/product-audio/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-audio/class-product-audio.php (added)
-
tags/2.2.3/inc/modules/product-brand-image (added)
-
tags/2.2.3/inc/modules/product-brand-image/admin (added)
-
tags/2.2.3/inc/modules/product-brand-image/admin/images (added)
-
tags/2.2.3/inc/modules/product-brand-image/admin/images/brand-images.png (added)
-
tags/2.2.3/inc/modules/product-brand-image/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-brand-image/class-product-brand-image.php (added)
-
tags/2.2.3/inc/modules/product-bundles (added)
-
tags/2.2.3/inc/modules/product-bundles/admin (added)
-
tags/2.2.3/inc/modules/product-bundles/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-bundles/class-product-bundles.php (added)
-
tags/2.2.3/inc/modules/product-labels (added)
-
tags/2.2.3/inc/modules/product-labels/admin (added)
-
tags/2.2.3/inc/modules/product-labels/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-labels/class-product-labels.php (added)
-
tags/2.2.3/inc/modules/product-navigation-links (added)
-
tags/2.2.3/inc/modules/product-navigation-links/admin (added)
-
tags/2.2.3/inc/modules/product-navigation-links/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-navigation-links/class-product-navigation-links.php (added)
-
tags/2.2.3/inc/modules/product-swatches (added)
-
tags/2.2.3/inc/modules/product-swatches/admin (added)
-
tags/2.2.3/inc/modules/product-swatches/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-swatches/class-product-swatches.php (added)
-
tags/2.2.3/inc/modules/product-video (added)
-
tags/2.2.3/inc/modules/product-video/admin (added)
-
tags/2.2.3/inc/modules/product-video/admin/images (added)
-
tags/2.2.3/inc/modules/product-video/admin/images/preview-product-video.png (added)
-
tags/2.2.3/inc/modules/product-video/admin/options.php (added)
-
tags/2.2.3/inc/modules/product-video/class-product-video.php (added)
-
tags/2.2.3/inc/modules/quick-social-links (added)
-
tags/2.2.3/inc/modules/quick-social-links/admin (added)
-
tags/2.2.3/inc/modules/quick-social-links/admin/options.php (added)
-
tags/2.2.3/inc/modules/quick-social-links/class-quick-social-links.php (added)
-
tags/2.2.3/inc/modules/quick-view (added)
-
tags/2.2.3/inc/modules/quick-view/admin (added)
-
tags/2.2.3/inc/modules/quick-view/admin/options.php (added)
-
tags/2.2.3/inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php (added)
-
tags/2.2.3/inc/modules/quick-view/class-quick-view.php (added)
-
tags/2.2.3/inc/modules/real-time-search (added)
-
tags/2.2.3/inc/modules/real-time-search/admin (added)
-
tags/2.2.3/inc/modules/real-time-search/admin/options.php (added)
-
tags/2.2.3/inc/modules/real-time-search/class-real-time-search.php (added)
-
tags/2.2.3/inc/modules/reasons-to-buy (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin/icons (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin/icons/check1.svg (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin/icons/check2.svg (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin/icons/check3.svg (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/admin/options.php (added)
-
tags/2.2.3/inc/modules/reasons-to-buy/class-reasons-to-buy.php (added)
-
tags/2.2.3/inc/modules/recent-sales-notifications (added)
-
tags/2.2.3/inc/modules/recent-sales-notifications/admin (added)
-
tags/2.2.3/inc/modules/recent-sales-notifications/admin/options.php (added)
-
tags/2.2.3/inc/modules/recent-sales-notifications/class-recent-sales-notifications.php (added)
-
tags/2.2.3/inc/modules/recently-viewed-products (added)
-
tags/2.2.3/inc/modules/recently-viewed-products/admin (added)
-
tags/2.2.3/inc/modules/recently-viewed-products/admin/options.php (added)
-
tags/2.2.3/inc/modules/recently-viewed-products/class-recently-viewed-products.php (added)
-
tags/2.2.3/inc/modules/scroll-to-top-button (added)
-
tags/2.2.3/inc/modules/scroll-to-top-button/admin (added)
-
tags/2.2.3/inc/modules/scroll-to-top-button/admin/options.php (added)
-
tags/2.2.3/inc/modules/scroll-to-top-button/class-scroll-to-top-button.php (added)
-
tags/2.2.3/inc/modules/side-cart (added)
-
tags/2.2.3/inc/modules/side-cart/admin (added)
-
tags/2.2.3/inc/modules/side-cart/admin/options.php (added)
-
tags/2.2.3/inc/modules/side-cart/class-side-cart.php (added)
-
tags/2.2.3/inc/modules/size-chart (added)
-
tags/2.2.3/inc/modules/size-chart/admin (added)
-
tags/2.2.3/inc/modules/size-chart/admin/options.php (added)
-
tags/2.2.3/inc/modules/size-chart/class-size-chart.php (added)
-
tags/2.2.3/inc/modules/spending-goal (added)
-
tags/2.2.3/inc/modules/spending-goal/admin (added)
-
tags/2.2.3/inc/modules/spending-goal/admin/options.php (added)
-
tags/2.2.3/inc/modules/spending-goal/class-spending-goal.php (added)
-
tags/2.2.3/inc/modules/sticky-add-to-cart (added)
-
tags/2.2.3/inc/modules/sticky-add-to-cart/admin (added)
-
tags/2.2.3/inc/modules/sticky-add-to-cart/admin/options.php (added)
-
tags/2.2.3/inc/modules/sticky-add-to-cart/class-sticky-add-to-cart.php (added)
-
tags/2.2.3/inc/modules/stock-scarcity (added)
-
tags/2.2.3/inc/modules/stock-scarcity/admin (added)
-
tags/2.2.3/inc/modules/stock-scarcity/admin/options.php (added)
-
tags/2.2.3/inc/modules/stock-scarcity/class-stock-scarcity.php (added)
-
tags/2.2.3/inc/modules/storewide-sale (added)
-
tags/2.2.3/inc/modules/storewide-sale/admin (added)
-
tags/2.2.3/inc/modules/storewide-sale/admin/options.php (added)
-
tags/2.2.3/inc/modules/storewide-sale/class-storewide-sale.php (added)
-
tags/2.2.3/inc/modules/trust-badges (added)
-
tags/2.2.3/inc/modules/trust-badges/admin (added)
-
tags/2.2.3/inc/modules/trust-badges/admin/images (added)
-
tags/2.2.3/inc/modules/trust-badges/admin/images/badge1.svg (added)
-
tags/2.2.3/inc/modules/trust-badges/admin/images/badge2.svg (added)
-
tags/2.2.3/inc/modules/trust-badges/admin/images/badge3.svg (added)
-
tags/2.2.3/inc/modules/trust-badges/admin/options.php (added)
-
tags/2.2.3/inc/modules/trust-badges/class-trust-badges.php (added)
-
tags/2.2.3/inc/modules/volume-discounts (added)
-
tags/2.2.3/inc/modules/volume-discounts/admin (added)
-
tags/2.2.3/inc/modules/volume-discounts/admin/options.php (added)
-
tags/2.2.3/inc/modules/volume-discounts/class-volume-discounts.php (added)
-
tags/2.2.3/inc/modules/wait-list (added)
-
tags/2.2.3/inc/modules/wait-list/admin (added)
-
tags/2.2.3/inc/modules/wait-list/admin/options.php (added)
-
tags/2.2.3/inc/modules/wait-list/class-wait-list.php (added)
-
tags/2.2.3/inc/modules/wishlist (added)
-
tags/2.2.3/inc/modules/wishlist/admin (added)
-
tags/2.2.3/inc/modules/wishlist/admin/icons (added)
-
tags/2.2.3/inc/modules/wishlist/admin/icons/heart1.svg (added)
-
tags/2.2.3/inc/modules/wishlist/admin/icons/heart2.svg (added)
-
tags/2.2.3/inc/modules/wishlist/admin/options.php (added)
-
tags/2.2.3/inc/modules/wishlist/class-wishlist.php (added)
-
tags/2.2.3/inc/usage-tracking (added)
-
tags/2.2.3/inc/usage-tracking/class-merchant-send-usage-task.php (added)
-
tags/2.2.3/inc/usage-tracking/class-merchant-usage-tracking.php (added)
-
tags/2.2.3/index.php (added)
-
tags/2.2.3/languages (added)
-
tags/2.2.3/languages/merchant.pot (added)
-
tags/2.2.3/merchant.php (added)
-
tags/2.2.3/readme.txt (added)
-
tags/2.2.3/templates (added)
-
tags/2.2.3/templates/modules (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/admin (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/admin/layout-1.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/admin/layout-2.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/admin/layout-3.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/admin/layouts.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/action-buttons.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/add-to-cart.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/added-product.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/buy-x-get-y.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/frequently-bought-together.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/popup-header.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/recently-viewed-products.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/common/related-products.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/layouts (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/layouts/layout-1.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/layouts/layout-2.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/layouts/layout-3.php (added)
-
tags/2.2.3/templates/modules/added-to-cart-popup/popup-container.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews (added)
-
tags/2.2.3/templates/modules/advanced-reviews/load-more-button.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews/modal.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews/pagination-links.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews/photo-slider.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews/reviews-list.php (added)
-
tags/2.2.3/templates/modules/advanced-reviews/reviews.php (added)
-
tags/2.2.3/templates/modules/buy-x-get-y (added)
-
tags/2.2.3/templates/modules/buy-x-get-y/single-product.php (added)
-
tags/2.2.3/templates/modules/cart-reserved-timer (added)
-
tags/2.2.3/templates/modules/cart-reserved-timer/cart.php (added)
-
tags/2.2.3/templates/modules/complementary-products (added)
-
tags/2.2.3/templates/modules/complementary-products/admin-preview (added)
-
tags/2.2.3/templates/modules/complementary-products/admin-preview/cart.php (added)
-
tags/2.2.3/templates/modules/complementary-products/admin-preview/checkout.php (added)
-
tags/2.2.3/templates/modules/complementary-products/admin-preview/single-product.php (added)
-
tags/2.2.3/templates/modules/complementary-products/admin-preview/thank-you-page.php (added)
-
tags/2.2.3/templates/modules/countdown-timer (added)
-
tags/2.2.3/templates/modules/countdown-timer/single-product.php (added)
-
tags/2.2.3/templates/modules/free-gifts (added)
-
tags/2.2.3/templates/modules/free-gifts/widget-contents.php (added)
-
tags/2.2.3/templates/modules/free-gifts/widget.php (added)
-
tags/2.2.3/templates/modules/frequently-bought-together (added)
-
tags/2.2.3/templates/modules/frequently-bought-together/single-product.php (added)
-
tags/2.2.3/templates/modules/reasons-to-buy (added)
-
tags/2.2.3/templates/modules/reasons-to-buy/content.php (added)
-
tags/2.2.3/templates/modules/recent-sales-notifications (added)
-
tags/2.2.3/templates/modules/recent-sales-notifications/admin (added)
-
tags/2.2.3/templates/modules/recent-sales-notifications/admin/preview.php (added)
-
tags/2.2.3/templates/modules/spending-goal (added)
-
tags/2.2.3/templates/modules/spending-goal/widget.php (added)
-
tags/2.2.3/templates/modules/sticky-add-to-cart (added)
-
tags/2.2.3/templates/modules/sticky-add-to-cart/content.php (added)
-
tags/2.2.3/templates/modules/stock-scarcity (added)
-
tags/2.2.3/templates/modules/stock-scarcity/single-product.php (added)
-
tags/2.2.3/templates/modules/volume-discounts (added)
-
tags/2.2.3/templates/modules/volume-discounts/admin-preview-tiered-radio.php (added)
-
tags/2.2.3/templates/modules/volume-discounts/admin-preview.php (added)
-
tags/2.2.3/templates/modules/volume-discounts/single-product-radio.php (added)
-
tags/2.2.3/templates/modules/volume-discounts/single-product.php (added)
-
tags/2.2.3/uninstall.php (added)
-
tags/2.2.3/vendor (added)
-
tags/2.2.3/vendor/autoload.php (added)
-
tags/2.2.3/vendor/composer (added)
-
tags/2.2.3/vendor/composer/ClassLoader.php (added)
-
tags/2.2.3/vendor/composer/InstalledVersions.php (added)
-
tags/2.2.3/vendor/composer/LICENSE (added)
-
tags/2.2.3/vendor/composer/autoload_classmap.php (added)
-
tags/2.2.3/vendor/composer/autoload_namespaces.php (added)
-
tags/2.2.3/vendor/composer/autoload_psr4.php (added)
-
tags/2.2.3/vendor/composer/autoload_real.php (added)
-
tags/2.2.3/vendor/composer/autoload_static.php (added)
-
tags/2.2.3/vendor/composer/installed.json (added)
-
tags/2.2.3/vendor/composer/installed.php (added)
-
tags/2.2.3/vendor/composer/platform_check.php (added)
-
tags/2.2.3/vendor/woocommerce (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/README.md (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/action-scheduler.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/changelog.txt (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionClaim.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AsyncRequest_QueueRunner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Compatibility.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DataController.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_DateTime.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_InvalidActionException.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ListTable.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_LogEntry.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_NullLogEntry.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_OptionLock.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_RecurringActionScheduler.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_SystemInformation.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/ActionScheduler_wcSystemStatus.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Cancel_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Create_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Delete_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Generate_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Get_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/List_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Next_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Run_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Clean_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_Scheduler_command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/Migration_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/ProgressBar.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/WP_CLI/System_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_RecurringSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_Schema.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Lock.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_TimezoneHelper.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_WPCLI_Command.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/actions (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_CanceledAction.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_FinishedAction.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_NullAction.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostStatusRegistrar.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_PostTypeRegistrar.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore_TaxonomyRegistrar.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/ActionMigrator.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/ActionScheduler_DBStoreMigrator.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/BatchFetcher.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/Config.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/Controller.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/DryRun_ActionMigrator.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/DryRun_LogMigrator.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/LogMigrator.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/Runner.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/migration/Scheduler.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CanceledSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_CronSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_IntervalSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_NullSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_Schedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schedules/ActionScheduler_SimpleSchedule.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schema (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Abstract_QueueRunner_Deprecated.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_AdminView_Deprecated.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Store_Deprecated.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/deprecated/functions.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/functions.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/WP_Async_Request.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_AbstractField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfMonthField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_DayOfWeekField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_FieldInterface.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_HoursField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MinutesField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_MonthField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression_YearField.php (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/LICENSE (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/lib/cron-expression/README.md (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/license.txt (added)
-
tags/2.2.3/vendor/woocommerce/action-scheduler/readme.txt (added)
-
trunk/admin/classes/class-merchant-plugin-installer.php (modified) (2 diffs)
-
trunk/admin/classes/class-merchant-silent-upgrader-skin.php (modified) (2 diffs)
-
trunk/assets/css/admin/metabox.css (modified) (9 diffs)
-
trunk/assets/css/admin/metabox.min.css (modified) (1 diff)
-
trunk/assets/css/modules/buy-now/buy-now.css (modified) (1 diff)
-
trunk/assets/css/modules/buy-now/buy-now.min.css (modified) (1 diff)
-
trunk/assets/css/modules/pre-orders/pre-orders.css (modified) (2 diffs)
-
trunk/assets/css/modules/pre-orders/pre-orders.min.css (modified) (1 diff)
-
trunk/assets/js/admin/admin.js (modified) (2 diffs)
-
trunk/assets/js/admin/admin.min.js (modified) (1 diff)
-
trunk/assets/js/admin/merchant-metabox.js (modified) (4 diffs)
-
trunk/assets/js/admin/merchant-metabox.min.js (modified) (1 diff)
-
trunk/assets/js/modules/quick-view/quick-view.js (modified) (2 diffs)
-
trunk/assets/js/modules/quick-view/quick-view.min.js (modified) (1 diff)
-
trunk/inc/classes/class-merchant-metabox.php (modified) (16 diffs)
-
trunk/inc/compatibility/class-merchant-woo-multi-currency.php (modified) (1 diff)
-
trunk/inc/helpers.php (modified) (2 diffs)
-
trunk/inc/modules/buy-now/admin/options.php (modified) (1 diff)
-
trunk/inc/modules/buy-now/class-buy-now-exclusion.php (added)
-
trunk/inc/modules/buy-now/class-buy-now.php (modified) (6 diffs)
-
trunk/inc/modules/pre-orders/admin/class-pre-orders-metabox.php (added)
-
trunk/inc/modules/pre-orders/admin/options.php (modified) (1 diff)
-
trunk/inc/modules/pre-orders/class-pre-orders-main-functionality.php (modified) (10 diffs)
-
trunk/inc/modules/pre-orders/class-pre-orders.php (modified) (26 diffs)
-
trunk/inc/modules/pre-orders/classes (added)
-
trunk/inc/modules/pre-orders/classes/class-pre-orders-rules.php (added)
-
trunk/inc/modules/quick-view/admin/options.php (modified) (1 diff)
-
trunk/inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php (added)
-
trunk/inc/modules/quick-view/class-quick-view.php (modified) (5 diffs)
-
trunk/inc/modules/sticky-add-to-cart/admin/options.php (modified) (1 diff)
-
trunk/languages/merchant.pot (modified) (54 diffs)
-
trunk/merchant.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/templates/modules/buy-x-get-y/single-product.php (modified) (1 diff)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
merchant/trunk/admin/classes/class-merchant-plugin-installer.php
r3232601 r3458319 74 74 75 75 /** 76 * Install external plugin.77 * This method is responsible for installing plugins from external sources.76 * Install and activate an external plugin. 77 * Handles three states: already active, installed but inactive, not installed. 78 78 * 79 79 * @return void 80 80 */ 81 81 public function install_external_plugin() { 82 list( $url, $plugin_name ) = $this->validate_install_request(); 83 84 $state = $this->get_plugin_state( $plugin_name ); 85 86 // Already active — nothing to do. 87 if ( 'active' === $state ) { 88 wp_send_json_success( array( 'message' => esc_html__( 'Plugin is already active.', 'merchant' ) ) ); 89 } 90 91 // Not installed — download and install first. 92 if ( 'not_installed' === $state ) { 93 $install_result = $this->install_from_url( $url ); 94 95 if ( is_wp_error( $install_result ) ) { 96 wp_send_json_error( array( 'message' => $install_result->get_error_message() ) ); 97 } 98 } 99 100 // Activate the plugin (covers both 'installed' and freshly installed). 101 $activate_result = $this->activate( $plugin_name ); 102 103 if ( is_wp_error( $activate_result ) ) { 104 wp_send_json_error( array( 'message' => $activate_result->get_error_message() ) ); 105 } 106 107 wp_send_json_success( array( 'message' => esc_html__( 'Plugin activated successfully.', 'merchant' ) ) ); 108 } 109 110 /** 111 * Validate the install request. 112 * Checks nonce, capability, and required parameters. 113 * Sends a JSON error and dies if validation fails. 114 * 115 * @return array{0: string, 1: string} The validated URL and plugin name. 116 */ 117 private function validate_install_request() { 82 118 check_ajax_referer( 'merchant_plugin_installer_nonce', 'nonce' ); 83 119 … … 90 126 } 91 127 92 $url = esc_url_raw( $_POST['url'] );93 94 128 if ( empty( $_POST['plugin_name'] ) ) { 95 129 wp_send_json_error( array( 'message' => esc_html__( 'Plugin name is required.', 'merchant' ) ) ); 96 130 } 97 131 98 $plugin_name = sanitize_text_field( wp_unslash( $_POST['plugin_name'] ) ); 99 132 return array( 133 esc_url_raw( $_POST['url'] ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 134 sanitize_text_field( wp_unslash( $_POST['plugin_name'] ) ), 135 ); 136 } 137 138 /** 139 * Determine the current state of a plugin. 140 * 141 * @param string $plugin_name The plugin basename (e.g. 'athemes-patcher/athemes-patcher.php'). 142 * 143 * @return string One of 'active', 'installed', or 'not_installed'. 144 */ 145 private function get_plugin_state( $plugin_name ) { 146 if ( is_plugin_active( $plugin_name ) ) { 147 return 'active'; 148 } 149 150 $plugin_file = WP_PLUGIN_DIR . '/' . $plugin_name; 151 152 if ( file_exists( $plugin_file ) ) { 153 return 'installed'; 154 } 155 156 return 'not_installed'; 157 } 158 159 /** 160 * Download and install a plugin from an external URL. 161 * Uses `overwrite_package` to handle leftover directories from failed installs. 162 * 163 * @param string $url The URL to the plugin ZIP file. 164 * 165 * @return true|WP_Error True on success, WP_Error on failure. 166 */ 167 private function install_from_url( $url ) { 100 168 include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 101 169 require_once MERCHANT_DIR . 'admin/classes/class-merchant-silent-upgrader-skin.php'; 170 171 $skin = new Merchant_Silent_Upgrader_Skin(); 172 $upgrader = new Plugin_Upgrader( $skin ); 173 $result = $upgrader->install( $url, array( 'overwrite_package' => true ) ); 174 175 if ( is_wp_error( $result ) ) { 176 return new WP_Error( 177 'merchant_install_failed', 178 $this->get_user_friendly_error( $result ) 179 ); 180 } 181 182 if ( ! $result ) { 183 $captured = $skin->get_captured_errors(); 184 $error_message = ! empty( $captured ) ? $captured[0] : ''; 185 186 $error = new WP_Error( 'download_failed', $error_message ); 187 188 return new WP_Error( 189 'merchant_install_failed', 190 $this->get_user_friendly_error( $error ) 191 ); 192 } 193 194 return true; 195 } 196 197 /** 198 * Get a user-friendly error message based on the error type. 199 * 200 * @param WP_Error $error The WP_Error object. 201 * 202 * @return string User-friendly error message. 203 */ 204 private function get_user_friendly_error( WP_Error $error ) { 205 $error_code = $error->get_error_code(); 206 $error_message = $error->get_error_message(); 207 $error_data = $error->get_error_data(); 102 208 103 $upgrader = new Plugin_Upgrader( new Merchant_Silent_Upgrader_Skin() ); 104 $install = $upgrader->install( $url ); 105 106 if ( is_wp_error( $install ) ) { 107 wp_send_json_error( array( 'message' => $install->get_error_message() ) ); 108 } 109 110 $activate = activate_plugin( $plugin_name ); 111 112 if ( is_wp_error( $activate ) ) { 113 wp_send_json_error( array( 'message' => $activate->get_error_message() ) ); 114 } 115 116 wp_send_json_success( 117 array( 118 'message' => esc_html__( 'Plugin activated successfully.', 'merchant' ), 119 ) 120 ); 209 // Ensure error_message is a string for strpos() calls 210 if ( ! is_string( $error_message ) ) { 211 $error_message = ''; 212 } 213 214 // Extract HTTP status code if available 215 $http_code = null; 216 if ( is_array( $error_data ) && isset( $error_data['status'] ) && is_int( $error_data['status'] ) ) { 217 $http_code = $error_data['status']; 218 } 219 220 // Check for 403 Forbidden (server blocking the download) 221 if ( 403 === $http_code || strpos( $error_message, '403' ) !== false || strpos( $error_message, 'Forbidden' ) !== false ) { 222 return esc_html__( 'The download is currently unavailable. Please try again later or contact support for assistance.', 'merchant' ); 223 } 224 225 // Check for server errors (500, 502, 503) 226 if ( in_array( $http_code, array( 500, 502, 503 ), true ) || 227 strpos( $error_message, '500' ) !== false || 228 strpos( $error_message, '502' ) !== false || 229 strpos( $error_message, '503' ) !== false || 230 strpos( $error_message, 'Internal Server Error' ) !== false || 231 strpos( $error_message, 'Bad Gateway' ) !== false || 232 strpos( $error_message, 'Service Unavailable' ) !== false ) { 233 return esc_html__( 'The download server is temporarily unavailable. Please try again in a few minutes.', 'merchant' ); 234 } 235 236 // Check for rate limiting (429) 237 if ( 429 === $http_code || strpos( $error_message, '429' ) !== false || strpos( $error_message, 'Too Many Requests' ) !== false ) { 238 return esc_html__( 'Too many download requests. Please wait a moment and try again.', 'merchant' ); 239 } 240 241 // Check for network/connectivity errors 242 if ( in_array( $error_code, array( 'http_request_failed', 'http_no_url', 'http_404' ), true ) ) { 243 return esc_html__( 'The server could not connect to the download source. Please try again or contact your hosting provider if the problem persists.', 'merchant' ); 244 } 245 246 // Check for download failures 247 if ( strpos( $error_message, 'Download failed' ) !== false ) { 248 return esc_html__( 'The download could not be completed. Please try again or install the plugin manually.', 'merchant' ); 249 } 250 251 // Generic fallback 252 return esc_html__( 'Installation failed. Please try again or contact support if the problem persists.', 'merchant' ); 253 } 254 255 /** 256 * Activate a plugin. 257 * 258 * @param string $plugin_name The plugin basename (e.g. 'athemes-patcher/athemes-patcher.php'). 259 * 260 * @return true|WP_Error True on success, WP_Error on failure. 261 */ 262 private function activate( $plugin_name ) { 263 $result = activate_plugin( $plugin_name ); 264 265 if ( is_wp_error( $result ) ) { 266 return $result; 267 } 268 269 return true; 121 270 } 122 271 } -
merchant/trunk/admin/classes/class-merchant-silent-upgrader-skin.php
r3232601 r3458319 3 3 /** 4 4 * Silent Upgrader Skin. 5 * The main purpose of this class is to suppress the output of the upgrader.5 * Suppresses the output of the upgrader while capturing errors for logging. 6 6 * 7 7 * @package Merchant … … 17 17 if ( ! class_exists( 'Merchant_Silent_Upgrader_Skin' ) ) { 18 18 class Merchant_Silent_Upgrader_Skin extends WP_Upgrader_Skin { 19 20 /** 21 * Captured errors during the upgrade process. 22 * 23 * @var string[] 24 */ 25 private $captured_errors = array(); 26 27 /** 28 * Suppress header output. 29 * 30 * @return void 31 */ 19 32 public function header() {} 33 34 /** 35 * Suppress footer output. 36 * 37 * @return void 38 */ 20 39 public function footer() {} 21 public function error( $errors ) {} 40 41 /** 42 * Capture errors instead of outputting them. 43 * 44 * @param string|WP_Error $errors The error(s) to capture. 45 * 46 * @return void 47 */ 48 public function error( $errors ) { 49 if ( is_string( $errors ) ) { 50 $this->captured_errors[] = $errors; 51 } elseif ( is_wp_error( $errors ) ) { 52 foreach ( $errors->get_error_messages() as $message ) { 53 $this->captured_errors[] = $message; 54 } 55 } 56 } 57 58 /** 59 * Suppress feedback output. 60 * 61 * @param string $feedback The feedback string. 62 * @param mixed ...$args Optional text replacements. 63 * 64 * @return void 65 */ 22 66 public function feedback( $feedback, ...$args ) {} 67 68 /** 69 * Get all captured errors. 70 * 71 * @return string[] 72 */ 73 public function get_captured_errors() { 74 return $this->captured_errors; 75 } 23 76 } 24 77 } -
merchant/trunk/assets/css/admin/metabox.css
r3354953 r3458319 1 .merchant-pcr-app * { 2 outline: none; 3 border: none; 4 -webkit-box-sizing: border-box; 5 box-sizing: border-box; 6 } 7 8 .merchant-pcr-app input:focus, 9 .merchant-pcr-app input.pcr-active, 10 .merchant-pcr-app button:focus, 11 .merchant-pcr-app button.pcr-active { 12 -webkit-box-shadow: none; 13 box-shadow: none; 14 } 15 16 .merchant-pcr-app .pcr-palette:focus, 17 .merchant-pcr-app .pcr-slider:focus { 18 -webkit-box-shadow: none; 19 box-shadow: none; 20 } 21 22 .merchant-pcr-app { 23 position: fixed; 24 z-index: 999999; 25 top: 0; 26 left: 0; 27 display: -webkit-box; 28 display: -ms-flexbox; 29 display: flex; 30 -webkit-box-orient: vertical; 31 -webkit-box-direction: normal; 32 -ms-flex-direction: column; 33 flex-direction: column; 34 border-radius: 0.1em; 35 opacity: 0; 36 visibility: hidden; 37 -webkit-transition: opacity 0.2s, visibility 0s 0.2s; 38 transition: opacity 0.2s, visibility 0s 0.2s; 39 -webkit-box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03); 40 box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03); 41 background: #fff; 42 } 43 44 .merchant-pcr-app.visible { 45 visibility: visible; 46 opacity: 1; 47 -webkit-transition: opacity 0.2s; 48 transition: opacity 0.2s; 49 } 50 51 .merchant-pcr-app .pcr-swatches { 52 display: -webkit-box; 53 display: -ms-flexbox; 54 display: flex; 55 -webkit-box-pack: justify; 56 -ms-flex-pack: justify; 57 justify-content: space-between; 58 } 59 60 .merchant-pcr-app .pcr-swatches > button { 61 cursor: pointer; 62 font-size: 1em; 63 position: relative; 64 z-index: 1; 65 width: 20px; 66 height: 20px; 67 margin: 0; 68 padding: 0; 69 background: none; 70 } 71 72 .merchant-pcr-app .pcr-swatches > button::before { 73 position: absolute; 74 content: ""; 75 top: 0; 76 left: 0; 77 bottom: 0; 78 right: 0; 79 background-image: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>'); 80 background-size: 6px; 81 border-radius: 20px; 82 border: 1px solid transparent; 83 z-index: -1; 84 } 85 86 .merchant-pcr-app .pcr-swatches > button::after { 87 content: ""; 88 position: absolute; 89 z-index: 1; 90 top: 0; 91 left: 0; 92 right: 0; 93 bottom: 0; 94 border-radius: 20px; 95 border: 1px solid rgba(0, 0, 0, 0.3); 96 background: var(--pcr-color); 97 } 98 99 .merchant-pcr-app .pcr-interaction { 100 display: -webkit-box; 101 display: -ms-flexbox; 102 display: flex; 103 grid-gap: 5px; 104 } 105 106 .merchant-pcr-app .pcr-interaction input { 107 font-size: 11px; 108 border-radius: 3px; 109 } 110 .merchant-pcr-app .pcr-interaction input:focus { 111 border-color: #3858E9; 112 } 113 114 .merchant-pcr-app .pcr-interaction .pcr-result { 115 -webkit-box-flex: 1; 116 -ms-flex: 1; 117 flex: 1; 118 margin: 0; 119 width: 100%; 120 max-width: 100%; 121 } 122 123 .merchant-pcr-app .pcr-interaction .pcr-clear { 124 cursor: pointer; 125 margin: 0; 126 padding: 0 10px; 127 border-radius: 3px; 128 color: #fff; 129 background-color: #3858E9; 130 text-transform: uppercase; 131 } 132 133 .merchant-pcr-app .pcr-selection .pcr-picker { 134 -webkit-user-select: none; 135 -moz-user-select: none; 136 -ms-user-select: none; 137 user-select: none; 138 position: absolute; 139 height: 16px; 140 width: 16px; 141 border-radius: 16px; 142 background-color: #fff !important; 143 -webkit-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.2); 144 box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.2); 145 } 146 147 .merchant-pcr-app .pcr-selection .pcr-color-palette, 148 .merchant-pcr-app .pcr-selection .pcr-color-chooser, 149 .merchant-pcr-app .pcr-selection .pcr-color-opacity { 150 -webkit-user-select: none; 151 -moz-user-select: none; 152 -ms-user-select: none; 153 user-select: none; 154 position: relative; 155 display: -webkit-box; 156 display: -ms-flexbox; 157 display: flex; 158 -webkit-box-orient: vertical; 159 -webkit-box-direction: normal; 160 -ms-flex-direction: column; 161 flex-direction: column; 162 cursor: -webkit-grab; 163 cursor: grab; 164 } 165 166 .merchant-pcr-app .pcr-selection .pcr-color-palette:active, 167 .merchant-pcr-app .pcr-selection .pcr-color-chooser:active, 168 .merchant-pcr-app .pcr-selection .pcr-color-opacity:active { 169 cursor: -webkit-grabbing; 170 cursor: grabbing; 171 } 172 173 .merchant-pcr-app[data-theme=merchant] { 174 width: 250px; 175 max-width: 95vw; 176 padding: 10px; 177 -webkit-box-sizing: border-box; 178 box-sizing: border-box; 179 display: -webkit-box; 180 display: -ms-flexbox; 181 display: flex; 182 grid-gap: 10px; 183 -webkit-box-orient: vertical; 184 -webkit-box-direction: normal; 185 -ms-flex-direction: column; 186 flex-direction: column; 187 } 188 189 .merchant-pcr-app[data-theme=merchant] .pcr-selection { 190 display: grid; 191 grid-gap: 10px; 192 grid-template-columns: 1fr 4fr; 193 grid-template-rows: 5fr auto auto; 194 -webkit-box-align: center; 195 -ms-flex-align: center; 196 align-items: center; 197 height: 150px; 198 width: 100%; 199 align-self: flex-start; 200 } 201 202 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview { 203 grid-area: 2/1/4/1; 204 height: 100%; 205 width: 100%; 206 display: -webkit-box; 207 display: -ms-flexbox; 208 display: flex; 209 -webkit-box-align: center; 210 -ms-flex-align: center; 211 align-items: center; 212 -webkit-box-pack: center; 213 -ms-flex-pack: center; 214 justify-content: center; 215 } 216 217 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-last-color { 218 display: none; 219 } 220 221 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-current-color { 222 position: relative; 223 width: 32px; 224 height: 32px; 225 border-radius: 32px; 226 overflow: hidden; 227 border: 1px solid rgba(0, 0, 0, 0.3); 228 background-color: var(--pcr-color); 229 } 230 231 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-current-color::before { 232 position: absolute; 233 content: ""; 234 top: 0; 235 left: 0; 236 width: 100%; 237 height: 100%; 238 background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>'); 239 background-size: 6px; 240 border-radius: 100%; 241 z-index: -1; 242 } 243 244 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette { 245 grid-area: 1/1/2/3; 246 width: 100%; 247 height: 100%; 248 z-index: 1; 249 } 250 251 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-picker { 252 width: 18px; 253 height: 18px; 254 border: 2px solid #fff; 255 -webkit-box-shadow: 0 0 1px 2px #000, inset 0 0 1px 1px #000; 256 box-shadow: 0 0 1px 2px #000, inset 0 0 1px 1px #000; 257 background-color: transparent !important; 258 } 259 260 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-palette { 261 width: 100%; 262 height: 100%; 263 } 264 265 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-palette::before { 266 position: absolute; 267 content: ""; 268 top: 0; 269 left: 0; 270 width: 100%; 271 height: 100%; 272 background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>'); 273 background-size: 8px; 274 z-index: -1; 275 } 276 277 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser { 278 grid-area: 2/2/2/2; 279 } 280 281 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity { 282 grid-area: 3/2/3/2; 283 } 284 285 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser, 286 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity { 287 height: 12px; 288 margin-right: 10px; 289 } 290 291 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-picker, 292 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-picker { 293 top: 50%; 294 -webkit-transform: translateY(-50%); 295 transform: translateY(-50%); 296 } 297 298 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-slider, 299 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-slider { 300 -webkit-box-flex: 1; 301 -ms-flex-positive: 1; 302 flex-grow: 1; 303 } 304 305 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-slider { 306 background: -webkit-gradient(linear, left top, right top, from(red), color-stop(#ff0), color-stop(lime), color-stop(cyan), color-stop(blue), color-stop(#f0f), to(red)); 307 background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red); 308 } 309 310 .merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-slider { 311 background: -webkit-gradient(linear, left top, right top, from(transparent), to(black)), url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>'); 312 background: linear-gradient(to right, transparent, black), url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>'); 313 background-size: 100%, 6px; 314 } 315 1 316 .merchant-metabox { 2 317 display: -webkit-box; … … 106 421 -ms-flex-wrap: wrap; 107 422 flex-wrap: wrap; 108 grid-gap: 20px;423 grid-gap: 0; 109 424 padding: 20px; 425 -webkit-box-orient: vertical; 426 -webkit-box-direction: normal; 427 -ms-flex-direction: column; 428 flex-direction: column; 110 429 } 111 430 .merchant-metabox-field:first-child { … … 136 455 137 456 .merchant-metabox-field-title { 138 width: 30%;139 max-width: 275px;457 width: 100%; 458 max-width: none; 140 459 display: -webkit-box; 141 460 display: -ms-flexbox; … … 148 467 -ms-flex-direction: column; 149 468 flex-direction: column; 469 margin-bottom: 10px; 150 470 } 151 471 .merchant-metabox-field-title h4 { 152 472 margin: 0; 153 473 color: #1e1e1e; 474 font-size: 13px; 475 font-weight: 500; 154 476 } 155 477 .merchant-metabox-field-title small { … … 167 489 168 490 .merchant-metabox-field-description { 169 font-size: 80%; 170 opacity: 0.75; 171 margin-top: 10px; 491 font-size: 12px; 492 color: #666; 493 opacity: 1; 494 margin-top: 5px; 172 495 } 173 496 .merchant-metabox-field-description code { … … 182 505 } 183 506 507 .merchant-metabox-datetime-field input, 184 508 .merchant-metabox-field-text input { 185 width: 50%; 509 padding: 12px; 510 line-height: 1.3em; 511 width: 100%; 186 512 max-width: 100%; 513 min-height: auto; 514 border: 1px solid #D6D6D6; 515 border-radius: 4px; 516 } 517 .merchant-metabox-datetime-field input:focus, 518 .merchant-metabox-field-text input:focus { 519 outline: none; 520 -webkit-box-shadow: none; 521 box-shadow: none; 522 border-color: #3858E9; 187 523 } 188 524 189 525 .merchant-metabox-field-number input { 190 width: 100px; 526 padding: 12px; 527 line-height: 1.3em; 528 width: 100%; 191 529 max-width: 100%; 530 min-height: auto; 531 border: 1px solid #D6D6D6; 532 border-radius: 4px; 533 } 534 .merchant-metabox-field-number input:focus { 535 outline: none; 536 -webkit-box-shadow: none; 537 box-shadow: none; 538 border-color: #3858E9; 192 539 } 193 540 … … 263 610 .merchant-metabox-field-switcher input:checked + i:before { 264 611 left: 26px; 612 } 613 614 .merchant-metabox-radio-field { 615 display: -webkit-box; 616 display: -ms-flexbox; 617 display: flex; 618 -ms-flex-wrap: wrap; 619 flex-wrap: wrap; 620 -webkit-box-align: center; 621 -ms-flex-align: center; 622 align-items: center; 623 gap: 30px; 624 /* Hide the hardcoded <br> tags */ 625 } 626 .merchant-metabox-radio-field br { 627 display: none; 628 } 629 .merchant-metabox-radio-field label { 630 display: -webkit-inline-box; 631 display: -ms-inline-flexbox; 632 display: inline-flex; 633 -webkit-box-align: center; 634 -ms-flex-align: center; 635 align-items: center; 636 gap: 12px; 637 margin: 0; 638 cursor: pointer; 639 } 640 .merchant-metabox-radio-field label span { 641 font-size: 14px; 642 font-weight: 400; 643 color: #1D2327; 644 opacity: 0.8; 645 } 646 .merchant-metabox-radio-field label input:checked + span { 647 opacity: 1; 648 } 649 .merchant-metabox-radio-field label input { 650 -ms-flex-negative: 0; 651 flex-shrink: 0; 652 margin: 0; 653 width: 20px; 654 height: 20px; 655 border: 1px solid #D6D6D6; 656 background-color: #fff; 657 display: -webkit-inline-box; 658 display: -ms-inline-flexbox; 659 display: inline-flex; 660 -webkit-box-align: center; 661 -ms-flex-align: center; 662 align-items: center; 663 -webkit-box-pack: center; 664 -ms-flex-pack: center; 665 justify-content: center; 666 -webkit-transition: none; 667 transition: none; 668 -webkit-box-sizing: border-box; 669 box-sizing: border-box; 670 -webkit-box-shadow: none; 671 box-shadow: none; 672 border-radius: 100%; 673 -moz-appearance: none; 674 appearance: none; 675 -webkit-appearance: none; 676 } 677 .merchant-metabox-radio-field label input:focus { 678 border-color: #fff; 679 -webkit-box-shadow: none; 680 box-shadow: none; 681 outline: none; 682 } 683 .merchant-metabox-radio-field label input:checked { 684 border-color: #3858E9; 685 background-color: #fff; 686 -webkit-box-shadow: 0 0 0 1px #3858E9; 687 box-shadow: 0 0 0 1px #3858E9; 688 } 689 .merchant-metabox-radio-field label input:checked::before { 690 content: ""; 691 width: 12px; 692 height: 12px; 693 border-radius: 12px; 694 background-color: #3858E9; 695 display: block; 696 } 697 698 .merchant-metabox-field-select select { 699 padding: 12px 20px 12px 12px; 700 line-height: 1.3em; 701 width: 100%; 702 max-width: 100%; 703 min-height: auto; 704 border-radius: 6px; 705 color: #2F2F2F; 706 border: 1px solid #D6D6D6; 707 background-color: #fff; 708 } 709 .merchant-metabox-field-select select:hover { 710 color: #2F2F2F; 711 } 712 .merchant-metabox-field-select select:focus { 713 outline: none; 714 -webkit-box-shadow: none; 715 box-shadow: none; 716 border-color: #3858E9; 717 } 718 .merchant-metabox-field-select select option { 719 color: #2F2F2F; 265 720 } 266 721 … … 1017 1472 } 1018 1473 1019 .merchant-metabox-field-append, .merchant-metabox-field-prepend { 1474 .merchant-metabox-field-append, 1475 .merchant-metabox-field-prepend { 1020 1476 background: #f0f0f1; 1021 1477 border: 1px solid #8c8f94; … … 1046 1502 border-top-left-radius: 5px; 1047 1503 border-bottom-left-radius: 5px; 1504 } 1505 1506 .merchant-pcr-app { 1507 position: absolute; 1508 top: 100% !important; 1509 left: 0 !important; 1510 z-index: 9999; 1511 margin-top: 10px; 1512 } 1513 1514 .merchant-metabox-color-field { 1515 display: -webkit-box; 1516 display: -ms-flexbox; 1517 display: flex; 1518 -webkit-box-align: center; 1519 -ms-flex-align: center; 1520 align-items: center; 1521 gap: 10px; 1522 position: relative; 1523 } 1524 .merchant-metabox-color-field .merchant-color-picker { 1525 cursor: pointer; 1526 width: 36px; 1527 height: 36px; 1528 min-width: 36px; 1529 min-height: 36px; 1530 border: 1px solid rgba(0, 0, 0, 0.1); 1531 border-radius: 4px; 1532 -webkit-transition: border-color 0.2s ease; 1533 transition: border-color 0.2s ease; 1534 } 1535 .merchant-metabox-color-field .merchant-color-picker:hover { 1536 border-color: rgba(0, 0, 0, 0.3); 1537 } 1538 .merchant-metabox-color-field .merchant-color-input { 1539 width: 100px; 1540 max-width: 100%; 1541 padding: 4px 10px; 1542 border: 1px solid #8c8f94; 1543 border-radius: 4px; 1544 display: block; 1545 text-align: center; 1546 } 1547 1548 .merchant-range { 1549 display: -webkit-box; 1550 display: -ms-flexbox; 1551 display: flex; 1552 -webkit-box-align: center; 1553 -ms-flex-align: center; 1554 align-items: center; 1555 gap: 15px; 1556 width: 100%; 1557 } 1558 .merchant-range .merchant-range-input { 1559 -webkit-appearance: none; 1560 width: 100%; 1561 height: 4px; 1562 border-radius: 5px; 1563 background: #e2e2e2; 1564 outline: none; 1565 padding: 0; 1566 margin: 0; 1567 } 1568 .merchant-range .merchant-range-input::-webkit-slider-thumb { 1569 -webkit-appearance: none; 1570 appearance: none; 1571 width: 14px; 1572 height: 14px; 1573 border-radius: 50%; 1574 background: #3858e9; 1575 cursor: pointer; 1576 -webkit-transition: background 0.15s ease-in-out; 1577 transition: background 0.15s ease-in-out; 1578 -webkit-box-shadow: 0 0 0 1px #3858e9; 1579 box-shadow: 0 0 0 1px #3858e9; 1580 } 1581 .merchant-range .merchant-range-input::-moz-range-thumb { 1582 width: 14px; 1583 height: 14px; 1584 border: 0; 1585 border-radius: 50%; 1586 background: #3858e9; 1587 cursor: pointer; 1588 -moz-transition: background 0.15s ease-in-out; 1589 transition: background 0.15s ease-in-out; 1590 box-shadow: 0 0 0 1px #3858e9; 1591 } 1592 .merchant-range .merchant-range-number-input { 1593 width: 70px; 1594 min-width: 70px; 1595 padding: 5px 10px; 1596 text-align: center; 1597 border: 1px solid #d6d6d6; 1598 border-radius: 4px; 1599 font-size: 13px; 1600 color: #1e1e1e; 1601 } 1602 .merchant-range .merchant-range-number-input:focus { 1603 border-color: #3858e9; 1604 outline: none; 1605 } 1606 .merchant-range .merchant-range-number-input::-webkit-inner-spin-button, .merchant-range .merchant-range-number-input::-webkit-outer-spin-button { 1607 -webkit-appearance: none; 1608 margin: 0; 1609 } 1610 .merchant-range .merchant-range-number-input { 1611 -moz-appearance: textfield; 1612 } 1613 .merchant-range .merchant-range-unit { 1614 color: #757575; 1615 font-size: 13px; 1616 margin-left: -10px; 1617 } 1618 1619 body.rtl .merchant-range .merchant-range-unit { 1620 margin-left: 0; 1621 margin-right: -10px; 1048 1622 } 1049 1623 -
merchant/trunk/assets/css/admin/metabox.min.css
r3354953 r3458319 1 .merchant- metabox{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px}.merchant-metabox-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:225px;margin-left:-20px}.merchant-metabox-tabs a{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;line-height:24px;font-weight:600;color:#1a1a1a;padding:9px 16px;text-decoration:none;-webkit-transition:all .1s;transition:all .1s}.merchant-metabox-tabs a:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;border-radius:0 4px 4px 0;opacity:0;visibility:hidden;-webkit-transition:ease opacity 200ms;transition:ease opacity 200ms}.merchant-metabox-tabs a:focus,.merchant-metabox-tabs a:active,.merchant-metabox-tabs a:hover{color:#757575;outline:none;-webkit-box-shadow:none;box-shadow:none}.merchant-metabox-tabs a:focus:before,.merchant-metabox-tabs a:active:before,.merchant-metabox-tabs a:hover:before{background-color:#e1e1e1;opacity:1;visibility:visible}.merchant-metabox-tabs a.active{color:#3858e9}.merchant-metabox-tabs a.active:before{background-color:#3858e9;opacity:1;visibility:visible}.merchant-metabox-contents{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:1px solid #f0f0f1;border-radius:4px}.merchant-metabox-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-content:not(.active){display:none}.merchant-metabox-content-title{display:none;margin:0;padding:10px 15px;color:#1e1e1e;background-color:#eee}.merchant-metabox-field{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:20px;padding:20px}.merchant-metabox-field:first-child{border-top:none}.merchant-metabox-field:last-child{border-bottom:none}.merchant-metabox-field-hidden{display:none}.merchant-metabox-field-separator-before{border-top:1px solid #eee}.merchant-metabox-field-separator-after{border-bottom:1px solid #eee}.merchant-metabox-field-inline{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-title{width:30%;max-width:275px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:5px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-title h4{margin:0;color:#1e1e1e}.merchant-metabox-field-title small{opacity:.75}.merchant-metabox-field-title small code{font-size:1em}.merchant-metabox-field-content{-webkit-box-flex:1;-ms-flex:1;flex:1}.merchant-metabox-field-description{font-size:80%;opacity:.75;margin-top:10px}.merchant-metabox-field-description code{font-size:1em}.merchant-metabox-field-description a{color:#3858e9}.merchant-metabox-field-description a:focus{-webkit-box-shadow:none;box-shadow:none}.merchant-metabox-field-text input{width:50%;max-width:100%}.merchant-metabox-field-number input{width:100px;max-width:100%}.merchant-metabox-field-textarea textarea{width:100%;max-width:100%;min-height:100px;vertical-align:top}.merchant-metabox-field-checkbox label{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-checkbox label input{margin:0}.merchant-metabox-field-switcher label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;grid-gap:6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-switcher i{position:relative;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;width:45px;height:22px;background-color:#c8c8c8;border-radius:20px;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-switcher i:before{content:"";position:absolute;display:block;width:14px;height:14px;top:4px;left:6px;background-color:#fff;border-radius:20px;-webkit-transition:all .1s;transition:all .1s}.merchant-metabox-field-switcher input{display:none}.merchant-metabox-field-switcher input:checked+i{background-color:#3858e9}.merchant-metabox-field-switcher input:checked+i:before{left:26px}.merchant-metabox-field-choices-images{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:2px}.merchant-metabox-field-choices-images label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-choices-images figure{padding:4px;margin:0;border:2px solid rgba(0,0,0,0);border-radius:4px;-webkit-transition:all .2s;transition:all .2s;max-width:80px;max-height:80px}.merchant-metabox-field-choices-images figure img{width:100%;vertical-align:top}.merchant-metabox-field-choices-images input{display:none}.merchant-metabox-field-choices-images input:checked+figure{border-color:#1e1e1e}.merchant-metabox-field-choices-images input:checked+figure:before{left:26px}.merchant-metabox-field-uploads-thumbnail{border-right:1px solid #e5e5e5;margin-right:10px;padding-right:10px;position:relative}.merchant-metabox-field-uploads-thumbnail-remove{position:absolute;left:-8px;top:-7px;background:#fff;border-radius:50%;color:#d58f90;font-size:18px;width:18px;height:18px}.merchant-metabox-field-uploads-thumbnail-remove:hover{color:#a00}.merchant-metabox-field-uploads-thumbnail-upload{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:40px;height:40px;border:1px solid #e5e5e5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#d4d4d4;font-size:25px;font-weight:200;text-decoration:none}.merchant-metabox-field-uploads-thumbnail-upload img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center}.merchant-metabox-field-repeater-move,.merchant-metabox-field-repeater-remove,.merchant-metabox-field-flexible-content-move,.merchant-metabox-field-flexible-content-remove{cursor:pointer;padding:5px;width:auto;height:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#1e1e1e;opacity:.5;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-repeater-move:hover,.merchant-metabox-field-repeater-remove:hover,.merchant-metabox-field-flexible-content-move:hover,.merchant-metabox-field-flexible-content-remove:hover{opacity:1}.merchant-metabox-field-repeater-remove,.merchant-metabox-field-flexible-content-remove{color:#a00;font-size:18px}.merchant-metabox-field-uploads-content,.merchant-metabox-field-repeater-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.merchant-metabox-field-uploads-content ul,.merchant-metabox-field-repeater-content ul{margin:0;padding:0;list-style:none;width:100%}.merchant-metabox-field-uploads-content ul li,.merchant-metabox-field-repeater-content ul li{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:10px}.merchant-metabox-field-uploads-content ul li.hidden,.merchant-metabox-field-repeater-content ul li.hidden{display:none}.merchant-metabox-field-uploads-content ul li span,.merchant-metabox-field-repeater-content ul li span{font-size:20px;padding:5px;width:auto;height:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-uploads-content input,.merchant-metabox-field-repeater-content input{width:50%;max-width:100%;max-width:100%;margin-right:5px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:5px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field input,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field input{width:100%}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field span,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field span{font-size:14px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-fields,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.merchant-metabox-field-size-chart ul{margin:0;padding:0;list-style:none}.merchant-metabox-field-size-chart ul li{margin-bottom:20px}.merchant-metabox-field-size-chart ul li.hidden{display:none}.merchant-metabox-field-size-chart table{width:100%;border-spacing:0;border-collapse:collapse;background-color:#fff}.merchant-metabox-field-size-chart table th,.merchant-metabox-field-size-chart table td{padding:15px;border:1px solid rgba(0,0,0,.1)}.merchant-metabox-field-size-chart table th:last-child,.merchant-metabox-field-size-chart table td:last-child{width:1%;min-width:75px}.merchant-metabox-field-size-chart table thead{text-align:center}.merchant-metabox-field-size-chart table thead label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;grid-gap:5px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-size-chart table tbody input{width:100%;max-width:100%;text-align:center}.merchant-metabox-field-size-chart table tbody tr:nth-child(2) td:not(:last-child){background-color:#eee}.merchant-metabox-field-size-chart table tfoot{text-align:right}.merchant-metabox-field-size-chart .merchant-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-size-chart .merchant-buttons a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:16px;height:16px;font-size:14px;line-height:1em;font-weight:bold;padding:2px;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.merchant-metabox-field-size-chart .merchant-buttons a:active{opacity:.5}.merchant-metabox-field-size-chart .merchant-add-col,.merchant-metabox-field-size-chart .merchant-add-row{color:#27ae60;background-color:#d5f5e3}.merchant-metabox-field-size-chart .merchant-del-col,.merchant-metabox-field-size-chart .merchant-del-row{color:#e74c3c;background-color:#f2d7d5}.merchant-metabox-field-size-chart .merchant-remove{color:#fff;border-color:#d50204;background:#d50204}.merchant-metabox-field-size-chart .merchant-remove:hover,.merchant-metabox-field-size-chart .merchant-remove:focus{border-color:#b32d2e;background:#b32d2e}.merchant-metabox-field-size-chart .merchant-remove:focus{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e;box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e}.merchant-metabox-field-size-chart .merchant-remove:active{border-color:#b32d2e;background:#b32d2e}.merchant-metabox-field-size-chart .merchant-duplicate{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none;color:#000;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-size-chart .merchant-duplicate:hover,.merchant-metabox-field-size-chart .merchant-duplicate:active{opacity:.5}.merchant-metabox-field-size-chart .merchant-duplicate i{width:auto;height:auto;font-size:20px}.merchant-metabox-field-media figure{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;padding:5px;width:75px;height:75px;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.merchant-metabox-field-media figure img{max-width:100%;height:auto}.merchant-metabox-field-media input{display:none}.merchant-metabox-field-media .merchant-button-remove{color:#b32d2e;border-color:#b32d2e;background:#fff8f8}.merchant-metabox-field-media .merchant-button-remove:hover,.merchant-metabox-field-media .merchant-button-remove:focus,.merchant-metabox-field-media .merchant-button-remove:active{color:#b32d2e;border-color:#b32d2e;background:#fff0f0}.merchant-metabox-field-media .merchant-button-remove:focus{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e;box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e}.merchant-metabox-field-select-ajax select{display:none;width:100%}.merchant-metabox-field-select-ajax ul{margin:0;padding:0;list-style:none;vertical-align:top}.merchant-metabox-field-select-ajax ul li{margin:0;padding:0}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple .select2-selection__rendered{width:auto;display:inline;padding:0}.merchant-metabox-field-select-ajax .select2-container .select2-search--inline .select2-search__field{margin:0;padding:0}.merchant-metabox-field-select-ajax .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#aaa}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple{padding:0 5px}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple .select2-selection__choice{margin-left:0}.merchant-metabox-field-select-ajax .merchant-select2-clear{display:block;width:100%;clear:both}.merchant-metabox-field-select-ajax .merchant-metabox-field-content{min-height:32px}.merchant-metabox-field-wc-attributes ul{margin:0;padding:0;list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-wc-attributes ul li{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:300px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #e5e5e5;background-color:#fdfdfd;border-radius:3px}.merchant-metabox-field-wc-attributes ul li:hover{border-color:#ccc}.merchant-metabox-field-wc-attributes ul li label{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-wc-attributes ul li label input{margin:0}.merchant-metabox-field-wc-attributes ul li .merchant-sortable-move{cursor:pointer;padding:8px}.merchant-metabox-field-code-editor .CodeMirror-wrap{border:1px solid #eee}.merchant-metabox-field-media-content{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-media-button{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px}.merchant-metabox-field-no-padding{padding-top:0;padding-bottom:0}body:not(.block-editor-page) #merchant_metabox .inside{margin:0;padding:0}#side-sortables .merchant-metabox-tabs{display:none}#side-sortables .merchant-metabox-content-title,#side-sortables .merchant-metabox-content:not(.active){display:block}#side-sortables .merchant-metabox-field{grid-gap:8px;padding:10px 15px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#side-sortables .merchant-metabox-field-title{width:auto;font-size:12px}#side-sortables .merchant-metabox-field-title:empty{display:none}#side-sortables .merchant-metabox-contents{border-left:none;border-right:none}#side-sortables #merchant_metabox .postbox-header{border-top:none}#side-sortables #merchant_metabox .postbox-header h2{color:#1e1e1e;padding:0 0 0 15px;font-size:13px;font-weight:500}#side-sortables #merchant_metabox .inside{padding:0}#side-sortables .merchant-metabox-field-text input,#side-sortables .merchant-metabox-field-uploads-content input,#side-sortables .merchant-metabox-field-repeater-content input{width:100%}.merchant-metabox-field-flexible-content-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;grid-gap:10px}.merchant-metabox-field-flexible-content-list.empty{border:2px dashed #dcdcde;min-height:100px}.merchant-metabox-field-flexible-content-item{border:1px solid #c3c4c7;border-left:3px solid #3858e9}.merchant-metabox-field-flexible-content-item:first-child{display:none}.merchant-metabox-field-flexible-content-item-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;grid-gap:10px;padding:15px}.merchant-metabox-field-flexible-content-item-content>div{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px}.merchant-metabox-field-flexible-content-item-content>div:not(:last-child)>div{border-bottom:1px solid #f3f3f3;padding-bottom:15px}.merchant-metabox-field-flexible-content-item-content>div label{width:200px}.merchant-metabox-field-flexible-content-item-content>div>div{width:calc(100% - 200px)}.merchant-metabox-field-flexible-content-item-title{margin-left:10px;font-weight:bold}.merchant-metabox-field-flexible-content-item-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.merchant-metabox-field-flexible-content-item-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:10px 15px;border-bottom:1px solid #f3f3f3}.merchant-metabox-field-flexible-content-item-count{border-radius:50%;width:24px;height:23px;border:1px solid #949494;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:12px;font-weight:bold}.merchant-metabox-field-flexible-content-add-wrapper{position:relative;display:inline-block}.merchant-metabox-field-flexible-content-add-list{opacity:0;visibility:hidden;position:absolute;background-color:#fff;border:1px solid #c3c4c7;border-left:3px solid #3858e9;-webkit-box-shadow:0 2px 10px 0 rgba(0,0,0,.1019607843);box-shadow:0 2px 10px 0 rgba(0,0,0,.1019607843);width:180px;bottom:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;left:50%;-webkit-transform:translate(-50%, 10px);transform:translate(-50%, 10px);padding:3px 3px 3px 5px}.merchant-metabox-field-flexible-content-add-list.active{z-index:10;opacity:1;visibility:visible;-webkit-transform:translate(-50%, -15px);transform:translate(-50%, -15px);-webkit-transition:all .5s cubic-bezier(0.75, -0.02, 0.2, 0.97);transition:all .5s cubic-bezier(0.75, -0.02, 0.2, 0.97)}.merchant-metabox-field-flexible-content-add-list:before,.merchant-metabox-field-flexible-content-add-list:after{position:absolute;z-index:-1;content:"";border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform, -webkit-transform}.merchant-metabox-field-flexible-content-add-list:before{right:calc(50% - 12px);bottom:-14px;border-width:14px 14px 0 15px;border-color:#c3c4c7 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.merchant-metabox-field-flexible-content-add-list:after{content:"";right:calc(50% - 10px);bottom:-12px;border-width:12px 12px 0 13px;border-color:#fff rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.merchant-metabox-field-flexible-content-add{display:block;-ms-flex-negative:0;flex-shrink:0;padding:10px;text-decoration:none}.merchant-metabox-field-flexible-content-add:hover{background:#f0f0f1}.merchant-metabox-field-input-container{display:-webkit-box;display:-ms-flexbox;display:flex}.merchant-metabox-field-append,.merchant-metabox-field-prepend{background:#f0f0f1;border:1px solid #8c8f94;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;padding:0 8px}.merchant-metabox-field-append{font-size:12px;margin-left:-7px;-ms-flex-negative:0;flex-shrink:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.merchant-metabox-field-prepend{font-size:14px;margin-right:-3px;padding:0 10px;margin-left:4px;border-top-left-radius:5px;border-bottom-left-radius:5px}@media only screen and (max-width: 991px){.merchant-metabox-tabs{display:none}.merchant-metabox-content-title,.merchant-metabox-content:not(.active){display:block}.merchant-metabox-field{grid-gap:8px;padding:15px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-title{width:auto}.merchant-metabox-field-title:empty{display:none}.merchant-metabox-contents{border-left:none;border-right:none}#merchant_metabox .inside{padding:0}.merchant-metabox-field-text input,.merchant-metabox-field-uploads-content input,.merchant-metabox-field-repeater-content input{width:100%}}.rtl .merchant-metabox-tabs a:before{right:0;left:unset}.rtl .merchant-metabox-tabs{margin-left:unset;margin-right:-20px}.rtl .merchant-metabox-field-append{border-radius:5px}.rtl .merchant-metabox-contents .merchant-metabox-field-flexible-content-item{border-left:1px solid #c3c4c7;border-right:3px solid #3858e9}.rtl .merchant-metabox-contents .merchant-metabox-field-flexible-content-item-title{margin-left:unset;margin-right:10px}1 .merchant-pcr-app *{outline:none;border:none;-webkit-box-sizing:border-box;box-sizing:border-box}.merchant-pcr-app input:focus,.merchant-pcr-app input.pcr-active,.merchant-pcr-app button:focus,.merchant-pcr-app button.pcr-active{-webkit-box-shadow:none;box-shadow:none}.merchant-pcr-app .pcr-palette:focus,.merchant-pcr-app .pcr-slider:focus{-webkit-box-shadow:none;box-shadow:none}.merchant-pcr-app{position:fixed;z-index:999999;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-radius:.1em;opacity:0;visibility:hidden;-webkit-transition:opacity .2s,visibility 0s .2s;transition:opacity .2s,visibility 0s .2s;-webkit-box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);background:#fff}.merchant-pcr-app.visible{visibility:visible;opacity:1;-webkit-transition:opacity .2s;transition:opacity .2s}.merchant-pcr-app .pcr-swatches{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.merchant-pcr-app .pcr-swatches>button{cursor:pointer;font-size:1em;position:relative;z-index:1;width:20px;height:20px;margin:0;padding:0;background:none}.merchant-pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;bottom:0;right:0;background-image:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:6px;border-radius:20px;border:1px solid rgba(0,0,0,0);z-index:-1}.merchant-pcr-app .pcr-swatches>button::after{content:"";position:absolute;z-index:1;top:0;left:0;right:0;bottom:0;border-radius:20px;border:1px solid rgba(0,0,0,.3);background:var(--pcr-color)}.merchant-pcr-app .pcr-interaction{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px}.merchant-pcr-app .pcr-interaction input{font-size:11px;border-radius:3px}.merchant-pcr-app .pcr-interaction input:focus{border-color:#3858e9}.merchant-pcr-app .pcr-interaction .pcr-result{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0;width:100%;max-width:100%}.merchant-pcr-app .pcr-interaction .pcr-clear{cursor:pointer;margin:0;padding:0 10px;border-radius:3px;color:#fff;background-color:#3858e9;text-transform:uppercase}.merchant-pcr-app .pcr-selection .pcr-picker{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;height:16px;width:16px;border-radius:16px;background-color:#fff !important;-webkit-box-shadow:1px 2px 6px rgba(0,0,0,.2);box-shadow:1px 2px 6px rgba(0,0,0,.2)}.merchant-pcr-app .pcr-selection .pcr-color-palette,.merchant-pcr-app .pcr-selection .pcr-color-chooser,.merchant-pcr-app .pcr-selection .pcr-color-opacity{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;cursor:-webkit-grab;cursor:grab}.merchant-pcr-app .pcr-selection .pcr-color-palette:active,.merchant-pcr-app .pcr-selection .pcr-color-chooser:active,.merchant-pcr-app .pcr-selection .pcr-color-opacity:active{cursor:-webkit-grabbing;cursor:grabbing}.merchant-pcr-app[data-theme=merchant]{width:250px;max-width:95vw;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-pcr-app[data-theme=merchant] .pcr-selection{display:grid;grid-gap:10px;grid-template-columns:1fr 4fr;grid-template-rows:5fr auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:150px;width:100%;align-self:flex-start}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview{grid-area:2/1/4/1;height:100%;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-last-color{display:none}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-current-color{position:relative;width:32px;height:32px;border-radius:32px;overflow:hidden;border:1px solid rgba(0,0,0,.3);background-color:var(--pcr-color)}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-preview .pcr-current-color::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:6px;border-radius:100%;z-index:-1}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette{grid-area:1/1/2/3;width:100%;height:100%;z-index:1}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-picker{width:18px;height:18px;border:2px solid #fff;-webkit-box-shadow:0 0 1px 2px #000,inset 0 0 1px 1px #000;box-shadow:0 0 1px 2px #000,inset 0 0 1px 1px #000;background-color:rgba(0,0,0,0) !important}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-palette{width:100%;height:100%}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:8px;z-index:-1}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser{grid-area:2/2/2/2}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity{grid-area:3/2/3/2}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser,.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity{height:12px;margin-right:10px}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-picker,.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-slider,.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-slider{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-chooser .pcr-slider{background:-webkit-gradient(linear, left top, right top, from(red), color-stop(#ff0), color-stop(lime), color-stop(cyan), color-stop(blue), color-stop(#f0f), to(red));background:linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red)}.merchant-pcr-app[data-theme=merchant] .pcr-selection .pcr-color-opacity .pcr-slider{background:-webkit-gradient(linear, left top, right top, from(transparent), to(black)),url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background:linear-gradient(to right, transparent, black),url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:100%,6px}.merchant-metabox{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px}.merchant-metabox-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:225px;margin-left:-20px}.merchant-metabox-tabs a{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;line-height:24px;font-weight:600;color:#1a1a1a;padding:9px 16px;text-decoration:none;-webkit-transition:all .1s;transition:all .1s}.merchant-metabox-tabs a:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;border-radius:0 4px 4px 0;opacity:0;visibility:hidden;-webkit-transition:ease opacity 200ms;transition:ease opacity 200ms}.merchant-metabox-tabs a:focus,.merchant-metabox-tabs a:active,.merchant-metabox-tabs a:hover{color:#757575;outline:none;-webkit-box-shadow:none;box-shadow:none}.merchant-metabox-tabs a:focus:before,.merchant-metabox-tabs a:active:before,.merchant-metabox-tabs a:hover:before{background-color:#e1e1e1;opacity:1;visibility:visible}.merchant-metabox-tabs a.active{color:#3858e9}.merchant-metabox-tabs a.active:before{background-color:#3858e9;opacity:1;visibility:visible}.merchant-metabox-contents{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:1px solid #f0f0f1;border-radius:4px}.merchant-metabox-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-content:not(.active){display:none}.merchant-metabox-content-title{display:none;margin:0;padding:10px 15px;color:#1e1e1e;background-color:#eee}.merchant-metabox-field{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:0;padding:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field:first-child{border-top:none}.merchant-metabox-field:last-child{border-bottom:none}.merchant-metabox-field-hidden{display:none}.merchant-metabox-field-separator-before{border-top:1px solid #eee}.merchant-metabox-field-separator-after{border-bottom:1px solid #eee}.merchant-metabox-field-inline{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-title{width:100%;max-width:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:5px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:10px}.merchant-metabox-field-title h4{margin:0;color:#1e1e1e;font-size:13px;font-weight:500}.merchant-metabox-field-title small{opacity:.75}.merchant-metabox-field-title small code{font-size:1em}.merchant-metabox-field-content{-webkit-box-flex:1;-ms-flex:1;flex:1}.merchant-metabox-field-description{font-size:12px;color:#666;opacity:1;margin-top:5px}.merchant-metabox-field-description code{font-size:1em}.merchant-metabox-field-description a{color:#3858e9}.merchant-metabox-field-description a:focus{-webkit-box-shadow:none;box-shadow:none}.merchant-metabox-datetime-field input,.merchant-metabox-field-text input{padding:12px;line-height:1.3em;width:100%;max-width:100%;min-height:auto;border:1px solid #d6d6d6;border-radius:4px}.merchant-metabox-datetime-field input:focus,.merchant-metabox-field-text input:focus{outline:none;-webkit-box-shadow:none;box-shadow:none;border-color:#3858e9}.merchant-metabox-field-number input{padding:12px;line-height:1.3em;width:100%;max-width:100%;min-height:auto;border:1px solid #d6d6d6;border-radius:4px}.merchant-metabox-field-number input:focus{outline:none;-webkit-box-shadow:none;box-shadow:none;border-color:#3858e9}.merchant-metabox-field-textarea textarea{width:100%;max-width:100%;min-height:100px;vertical-align:top}.merchant-metabox-field-checkbox label{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-checkbox label input{margin:0}.merchant-metabox-field-switcher label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;grid-gap:6px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-switcher i{position:relative;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;width:45px;height:22px;background-color:#c8c8c8;border-radius:20px;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-switcher i:before{content:"";position:absolute;display:block;width:14px;height:14px;top:4px;left:6px;background-color:#fff;border-radius:20px;-webkit-transition:all .1s;transition:all .1s}.merchant-metabox-field-switcher input{display:none}.merchant-metabox-field-switcher input:checked+i{background-color:#3858e9}.merchant-metabox-field-switcher input:checked+i:before{left:26px}.merchant-metabox-radio-field{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:30px}.merchant-metabox-radio-field br{display:none}.merchant-metabox-radio-field label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;margin:0;cursor:pointer}.merchant-metabox-radio-field label span{font-size:14px;font-weight:400;color:#1d2327;opacity:.8}.merchant-metabox-radio-field label input:checked+span{opacity:1}.merchant-metabox-radio-field label input{-ms-flex-negative:0;flex-shrink:0;margin:0;width:20px;height:20px;border:1px solid #d6d6d6;background-color:#fff;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:none;transition:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;border-radius:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none}.merchant-metabox-radio-field label input:focus{border-color:#fff;-webkit-box-shadow:none;box-shadow:none;outline:none}.merchant-metabox-radio-field label input:checked{border-color:#3858e9;background-color:#fff;-webkit-box-shadow:0 0 0 1px #3858e9;box-shadow:0 0 0 1px #3858e9}.merchant-metabox-radio-field label input:checked::before{content:"";width:12px;height:12px;border-radius:12px;background-color:#3858e9;display:block}.merchant-metabox-field-select select{padding:12px 20px 12px 12px;line-height:1.3em;width:100%;max-width:100%;min-height:auto;border-radius:6px;color:#2f2f2f;border:1px solid #d6d6d6;background-color:#fff}.merchant-metabox-field-select select:hover{color:#2f2f2f}.merchant-metabox-field-select select:focus{outline:none;-webkit-box-shadow:none;box-shadow:none;border-color:#3858e9}.merchant-metabox-field-select select option{color:#2f2f2f}.merchant-metabox-field-choices-images{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-gap:2px}.merchant-metabox-field-choices-images label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-choices-images figure{padding:4px;margin:0;border:2px solid rgba(0,0,0,0);border-radius:4px;-webkit-transition:all .2s;transition:all .2s;max-width:80px;max-height:80px}.merchant-metabox-field-choices-images figure img{width:100%;vertical-align:top}.merchant-metabox-field-choices-images input{display:none}.merchant-metabox-field-choices-images input:checked+figure{border-color:#1e1e1e}.merchant-metabox-field-choices-images input:checked+figure:before{left:26px}.merchant-metabox-field-uploads-thumbnail{border-right:1px solid #e5e5e5;margin-right:10px;padding-right:10px;position:relative}.merchant-metabox-field-uploads-thumbnail-remove{position:absolute;left:-8px;top:-7px;background:#fff;border-radius:50%;color:#d58f90;font-size:18px;width:18px;height:18px}.merchant-metabox-field-uploads-thumbnail-remove:hover{color:#a00}.merchant-metabox-field-uploads-thumbnail-upload{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:40px;height:40px;border:1px solid #e5e5e5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#d4d4d4;font-size:25px;font-weight:200;text-decoration:none}.merchant-metabox-field-uploads-thumbnail-upload img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center}.merchant-metabox-field-repeater-move,.merchant-metabox-field-repeater-remove,.merchant-metabox-field-flexible-content-move,.merchant-metabox-field-flexible-content-remove{cursor:pointer;padding:5px;width:auto;height:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#1e1e1e;opacity:.5;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-repeater-move:hover,.merchant-metabox-field-repeater-remove:hover,.merchant-metabox-field-flexible-content-move:hover,.merchant-metabox-field-flexible-content-remove:hover{opacity:1}.merchant-metabox-field-repeater-remove,.merchant-metabox-field-flexible-content-remove{color:#a00;font-size:18px}.merchant-metabox-field-uploads-content,.merchant-metabox-field-repeater-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.merchant-metabox-field-uploads-content ul,.merchant-metabox-field-repeater-content ul{margin:0;padding:0;list-style:none;width:100%}.merchant-metabox-field-uploads-content ul li,.merchant-metabox-field-repeater-content ul li{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:10px}.merchant-metabox-field-uploads-content ul li.hidden,.merchant-metabox-field-repeater-content ul li.hidden{display:none}.merchant-metabox-field-uploads-content ul li span,.merchant-metabox-field-repeater-content ul li span{font-size:20px;padding:5px;width:auto;height:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-uploads-content input,.merchant-metabox-field-repeater-content input{width:50%;max-width:100%;max-width:100%;margin-right:5px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:5px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field input,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field input{width:100%}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-field span,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-field span{font-size:14px}.merchant-metabox-field-uploads-content .merchant-metabox-field-repeater-list-item-fields,.merchant-metabox-field-repeater-content .merchant-metabox-field-repeater-list-item-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.merchant-metabox-field-size-chart ul{margin:0;padding:0;list-style:none}.merchant-metabox-field-size-chart ul li{margin-bottom:20px}.merchant-metabox-field-size-chart ul li.hidden{display:none}.merchant-metabox-field-size-chart table{width:100%;border-spacing:0;border-collapse:collapse;background-color:#fff}.merchant-metabox-field-size-chart table th,.merchant-metabox-field-size-chart table td{padding:15px;border:1px solid rgba(0,0,0,.1)}.merchant-metabox-field-size-chart table th:last-child,.merchant-metabox-field-size-chart table td:last-child{width:1%;min-width:75px}.merchant-metabox-field-size-chart table thead{text-align:center}.merchant-metabox-field-size-chart table thead label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;grid-gap:5px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-size-chart table tbody input{width:100%;max-width:100%;text-align:center}.merchant-metabox-field-size-chart table tbody tr:nth-child(2) td:not(:last-child){background-color:#eee}.merchant-metabox-field-size-chart table tfoot{text-align:right}.merchant-metabox-field-size-chart .merchant-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-size-chart .merchant-buttons a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:16px;height:16px;font-size:14px;line-height:1em;font-weight:bold;padding:2px;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.merchant-metabox-field-size-chart .merchant-buttons a:active{opacity:.5}.merchant-metabox-field-size-chart .merchant-add-col,.merchant-metabox-field-size-chart .merchant-add-row{color:#27ae60;background-color:#d5f5e3}.merchant-metabox-field-size-chart .merchant-del-col,.merchant-metabox-field-size-chart .merchant-del-row{color:#e74c3c;background-color:#f2d7d5}.merchant-metabox-field-size-chart .merchant-remove{color:#fff;border-color:#d50204;background:#d50204}.merchant-metabox-field-size-chart .merchant-remove:hover,.merchant-metabox-field-size-chart .merchant-remove:focus{border-color:#b32d2e;background:#b32d2e}.merchant-metabox-field-size-chart .merchant-remove:focus{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e;box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e}.merchant-metabox-field-size-chart .merchant-remove:active{border-color:#b32d2e;background:#b32d2e}.merchant-metabox-field-size-chart .merchant-duplicate{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none;color:#000;-webkit-transition:all .2s;transition:all .2s}.merchant-metabox-field-size-chart .merchant-duplicate:hover,.merchant-metabox-field-size-chart .merchant-duplicate:active{opacity:.5}.merchant-metabox-field-size-chart .merchant-duplicate i{width:auto;height:auto;font-size:20px}.merchant-metabox-field-media figure{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;padding:5px;width:75px;height:75px;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.merchant-metabox-field-media figure img{max-width:100%;height:auto}.merchant-metabox-field-media input{display:none}.merchant-metabox-field-media .merchant-button-remove{color:#b32d2e;border-color:#b32d2e;background:#fff8f8}.merchant-metabox-field-media .merchant-button-remove:hover,.merchant-metabox-field-media .merchant-button-remove:focus,.merchant-metabox-field-media .merchant-button-remove:active{color:#b32d2e;border-color:#b32d2e;background:#fff0f0}.merchant-metabox-field-media .merchant-button-remove:focus{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e;box-shadow:0 0 0 1px #fff,0 0 0 3px #b32d2e}.merchant-metabox-field-select-ajax select{display:none;width:100%}.merchant-metabox-field-select-ajax ul{margin:0;padding:0;list-style:none;vertical-align:top}.merchant-metabox-field-select-ajax ul li{margin:0;padding:0}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple .select2-selection__rendered{width:auto;display:inline;padding:0}.merchant-metabox-field-select-ajax .select2-container .select2-search--inline .select2-search__field{margin:0;padding:0}.merchant-metabox-field-select-ajax .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#aaa}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple{padding:0 5px}.merchant-metabox-field-select-ajax .select2-container--default .select2-selection--multiple .select2-selection__choice{margin-left:0}.merchant-metabox-field-select-ajax .merchant-select2-clear{display:block;width:100%;clear:both}.merchant-metabox-field-select-ajax .merchant-metabox-field-content{min-height:32px}.merchant-metabox-field-wc-attributes ul{margin:0;padding:0;list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-wc-attributes ul li{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:300px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #e5e5e5;background-color:#fdfdfd;border-radius:3px}.merchant-metabox-field-wc-attributes ul li:hover{border-color:#ccc}.merchant-metabox-field-wc-attributes ul li label{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.merchant-metabox-field-wc-attributes ul li label input{margin:0}.merchant-metabox-field-wc-attributes ul li .merchant-sortable-move{cursor:pointer;padding:8px}.merchant-metabox-field-code-editor .CodeMirror-wrap{border:1px solid #eee}.merchant-metabox-field-media-content{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.merchant-metabox-field-media-button{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:5px}.merchant-metabox-field-no-padding{padding-top:0;padding-bottom:0}body:not(.block-editor-page) #merchant_metabox .inside{margin:0;padding:0}#side-sortables .merchant-metabox-tabs{display:none}#side-sortables .merchant-metabox-content-title,#side-sortables .merchant-metabox-content:not(.active){display:block}#side-sortables .merchant-metabox-field{grid-gap:8px;padding:10px 15px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#side-sortables .merchant-metabox-field-title{width:auto;font-size:12px}#side-sortables .merchant-metabox-field-title:empty{display:none}#side-sortables .merchant-metabox-contents{border-left:none;border-right:none}#side-sortables #merchant_metabox .postbox-header{border-top:none}#side-sortables #merchant_metabox .postbox-header h2{color:#1e1e1e;padding:0 0 0 15px;font-size:13px;font-weight:500}#side-sortables #merchant_metabox .inside{padding:0}#side-sortables .merchant-metabox-field-text input,#side-sortables .merchant-metabox-field-uploads-content input,#side-sortables .merchant-metabox-field-repeater-content input{width:100%}.merchant-metabox-field-flexible-content-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;grid-gap:10px}.merchant-metabox-field-flexible-content-list.empty{border:2px dashed #dcdcde;min-height:100px}.merchant-metabox-field-flexible-content-item{border:1px solid #c3c4c7;border-left:3px solid #3858e9}.merchant-metabox-field-flexible-content-item:first-child{display:none}.merchant-metabox-field-flexible-content-item-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;grid-gap:10px;padding:15px}.merchant-metabox-field-flexible-content-item-content>div{display:-webkit-box;display:-ms-flexbox;display:flex;grid-gap:10px}.merchant-metabox-field-flexible-content-item-content>div:not(:last-child)>div{border-bottom:1px solid #f3f3f3;padding-bottom:15px}.merchant-metabox-field-flexible-content-item-content>div label{width:200px}.merchant-metabox-field-flexible-content-item-content>div>div{width:calc(100% - 200px)}.merchant-metabox-field-flexible-content-item-title{margin-left:10px;font-weight:bold}.merchant-metabox-field-flexible-content-item-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.merchant-metabox-field-flexible-content-item-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:10px 15px;border-bottom:1px solid #f3f3f3}.merchant-metabox-field-flexible-content-item-count{border-radius:50%;width:24px;height:23px;border:1px solid #949494;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:12px;font-weight:bold}.merchant-metabox-field-flexible-content-add-wrapper{position:relative;display:inline-block}.merchant-metabox-field-flexible-content-add-list{opacity:0;visibility:hidden;position:absolute;background-color:#fff;border:1px solid #c3c4c7;border-left:3px solid #3858e9;-webkit-box-shadow:0 2px 10px 0 rgba(0,0,0,.1019607843);box-shadow:0 2px 10px 0 rgba(0,0,0,.1019607843);width:180px;bottom:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;left:50%;-webkit-transform:translate(-50%, 10px);transform:translate(-50%, 10px);padding:3px 3px 3px 5px}.merchant-metabox-field-flexible-content-add-list.active{z-index:10;opacity:1;visibility:visible;-webkit-transform:translate(-50%, -15px);transform:translate(-50%, -15px);-webkit-transition:all .5s cubic-bezier(0.75, -0.02, 0.2, 0.97);transition:all .5s cubic-bezier(0.75, -0.02, 0.2, 0.97)}.merchant-metabox-field-flexible-content-add-list:before,.merchant-metabox-field-flexible-content-add-list:after{position:absolute;z-index:-1;content:"";border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform, -webkit-transform}.merchant-metabox-field-flexible-content-add-list:before{right:calc(50% - 12px);bottom:-14px;border-width:14px 14px 0 15px;border-color:#c3c4c7 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.merchant-metabox-field-flexible-content-add-list:after{content:"";right:calc(50% - 10px);bottom:-12px;border-width:12px 12px 0 13px;border-color:#fff rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.merchant-metabox-field-flexible-content-add{display:block;-ms-flex-negative:0;flex-shrink:0;padding:10px;text-decoration:none}.merchant-metabox-field-flexible-content-add:hover{background:#f0f0f1}.merchant-metabox-field-input-container{display:-webkit-box;display:-ms-flexbox;display:flex}.merchant-metabox-field-append,.merchant-metabox-field-prepend{background:#f0f0f1;border:1px solid #8c8f94;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;padding:0 8px}.merchant-metabox-field-append{font-size:12px;margin-left:-7px;-ms-flex-negative:0;flex-shrink:0;border-top-right-radius:5px;border-bottom-right-radius:5px}.merchant-metabox-field-prepend{font-size:14px;margin-right:-3px;padding:0 10px;margin-left:4px;border-top-left-radius:5px;border-bottom-left-radius:5px}.merchant-pcr-app{position:absolute;top:100% !important;left:0 !important;z-index:9999;margin-top:10px}.merchant-metabox-color-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;position:relative}.merchant-metabox-color-field .merchant-color-picker{cursor:pointer;width:36px;height:36px;min-width:36px;min-height:36px;border:1px solid rgba(0,0,0,.1);border-radius:4px;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.merchant-metabox-color-field .merchant-color-picker:hover{border-color:rgba(0,0,0,.3)}.merchant-metabox-color-field .merchant-color-input{width:100px;max-width:100%;padding:4px 10px;border:1px solid #8c8f94;border-radius:4px;display:block;text-align:center}.merchant-range{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:15px;width:100%}.merchant-range .merchant-range-input{-webkit-appearance:none;width:100%;height:4px;border-radius:5px;background:#e2e2e2;outline:none;padding:0;margin:0}.merchant-range .merchant-range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#3858e9;cursor:pointer;-webkit-transition:background .15s ease-in-out;transition:background .15s ease-in-out;-webkit-box-shadow:0 0 0 1px #3858e9;box-shadow:0 0 0 1px #3858e9}.merchant-range .merchant-range-input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#3858e9;cursor:pointer;-moz-transition:background .15s ease-in-out;transition:background .15s ease-in-out;box-shadow:0 0 0 1px #3858e9}.merchant-range .merchant-range-number-input{width:70px;min-width:70px;padding:5px 10px;text-align:center;border:1px solid #d6d6d6;border-radius:4px;font-size:13px;color:#1e1e1e}.merchant-range .merchant-range-number-input:focus{border-color:#3858e9;outline:none}.merchant-range .merchant-range-number-input::-webkit-inner-spin-button,.merchant-range .merchant-range-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.merchant-range .merchant-range-number-input{-moz-appearance:textfield}.merchant-range .merchant-range-unit{color:#757575;font-size:13px;margin-left:-10px}body.rtl .merchant-range .merchant-range-unit{margin-left:0;margin-right:-10px}@media only screen and (max-width: 991px){.merchant-metabox-tabs{display:none}.merchant-metabox-content-title,.merchant-metabox-content:not(.active){display:block}.merchant-metabox-field{grid-gap:8px;padding:15px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.merchant-metabox-field-title{width:auto}.merchant-metabox-field-title:empty{display:none}.merchant-metabox-contents{border-left:none;border-right:none}#merchant_metabox .inside{padding:0}.merchant-metabox-field-text input,.merchant-metabox-field-uploads-content input,.merchant-metabox-field-repeater-content input{width:100%}}.rtl .merchant-metabox-tabs a:before{right:0;left:unset}.rtl .merchant-metabox-tabs{margin-left:unset;margin-right:-20px}.rtl .merchant-metabox-field-append{border-radius:5px}.rtl .merchant-metabox-contents .merchant-metabox-field-flexible-content-item{border-left:1px solid #c3c4c7;border-right:3px solid #3858e9}.rtl .merchant-metabox-contents .merchant-metabox-field-flexible-content-item-title{margin-left:unset;margin-right:10px} -
merchant/trunk/assets/css/modules/buy-now/buy-now.css
r3403526 r3458319 63 63 } 64 64 65 .merchant-quick-view-content .merchant-quick-view-summary .merchant-buy-now-button { 66 -ms-flex-preferred-size: 100%; 67 flex-basis: 100%; 68 } 69 65 70 .rtl.single-product .merchant-buy-now-button { 66 71 margin-left: 0; -
merchant/trunk/assets/css/modules/buy-now/buy-now.min.css
r3403526 r3458319 1 .merchant-buy-now-button.merchant-custom-buy-now-button{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.2 !important;max-width:none;margin-top:var(--mrc-buy-now-margin-top, 0.5rem) !important;margin-bottom:var(--mrc-buy-now-margin-bottom, 1rem) !important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-decoration:none !important;padding-top:var(--mrc-buy-now-padding-top-bottom, 13px) !important;padding-bottom:var(--mrc-buy-now-padding-top-bottom, 13px) !important;padding-left:var(--mrc-buy-now-padding-left-right, 24px) !important;padding-right:var(--mrc-buy-now-padding-left-right, 24px) !important;font-size:var(--mrc-buy-now-font-size, 16px) !important;border-radius:var(--mrc-buy-now-border-radius, 0px) !important;color:var(--mrc-buy-now-text-color, #FFF) !important;border-color:var(--mrc-buy-now-border-color, #212121) !important;background-color:var(--mrc-buy-now-background-color, #212121) !important}.merchant-buy-now-button.merchant-custom-buy-now-button.disabled{cursor:not-allowed;opacity:.5}.merchant-buy-now-button.merchant-custom-buy-now-button:hover{color:var(--mrc-buy-now-text-hover-color, #FFF) !important;border-color:var(--mrc-buy-now-border-hover-color, #414141) !important;background-color:var(--mrc-buy-now-background-hover-color, #414141) !important}.merchant-buy-now-button.merchant-custom-buy-now-button::before{display:none}.products .product .merchant-buy-now-button.merchant-custom-buy-now-button,.wc-block-grid__products .wc-block-grid__product .merchant-buy-now-button.merchant-custom-buy-now-button{width:100%}.single-product .product .cart .merchant-buy-now-button{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:-webkit-fit-content !important;width:-moz-fit-content !important;width:fit-content !important;margin-top:var(--mrc-buy-now-margin-top, 0) !important;margin-bottom:var(--mrc-buy-now-margin-bottom, 0) !important;margin-left:5px;float:none !important}. rtl.single-product .merchant-buy-now-button{margin-left:0;margin-right:5px}1 .merchant-buy-now-button.merchant-custom-buy-now-button{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.2 !important;max-width:none;margin-top:var(--mrc-buy-now-margin-top, 0.5rem) !important;margin-bottom:var(--mrc-buy-now-margin-bottom, 1rem) !important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-decoration:none !important;padding-top:var(--mrc-buy-now-padding-top-bottom, 13px) !important;padding-bottom:var(--mrc-buy-now-padding-top-bottom, 13px) !important;padding-left:var(--mrc-buy-now-padding-left-right, 24px) !important;padding-right:var(--mrc-buy-now-padding-left-right, 24px) !important;font-size:var(--mrc-buy-now-font-size, 16px) !important;border-radius:var(--mrc-buy-now-border-radius, 0px) !important;color:var(--mrc-buy-now-text-color, #FFF) !important;border-color:var(--mrc-buy-now-border-color, #212121) !important;background-color:var(--mrc-buy-now-background-color, #212121) !important}.merchant-buy-now-button.merchant-custom-buy-now-button.disabled{cursor:not-allowed;opacity:.5}.merchant-buy-now-button.merchant-custom-buy-now-button:hover{color:var(--mrc-buy-now-text-hover-color, #FFF) !important;border-color:var(--mrc-buy-now-border-hover-color, #414141) !important;background-color:var(--mrc-buy-now-background-hover-color, #414141) !important}.merchant-buy-now-button.merchant-custom-buy-now-button::before{display:none}.products .product .merchant-buy-now-button.merchant-custom-buy-now-button,.wc-block-grid__products .wc-block-grid__product .merchant-buy-now-button.merchant-custom-buy-now-button{width:100%}.single-product .product .cart .merchant-buy-now-button{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:-webkit-fit-content !important;width:-moz-fit-content !important;width:fit-content !important;margin-top:var(--mrc-buy-now-margin-top, 0) !important;margin-bottom:var(--mrc-buy-now-margin-bottom, 0) !important;margin-left:5px;float:none !important}.merchant-quick-view-content .merchant-quick-view-summary .merchant-buy-now-button{-ms-flex-preferred-size:100%;flex-basis:100%}.rtl.single-product .merchant-buy-now-button{margin-left:0;margin-right:5px} -
merchant/trunk/assets/css/modules/pre-orders/pre-orders.css
r3092224 r3458319 12 12 .woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button) { 13 13 color: var(--mrc-po-text-color, #FFF) !important; 14 border-color: var(--mrc-po-border-color, #212121) !important; 14 border: var(--mrc-po-border-width, 0px) solid var(--mrc-po-border-color, #212121) !important; 15 border-radius: var(--mrc-po-border-radius, 0px) !important; 15 16 background-color: var(--mrc-po-background-color, #212121) !important; 16 17 } … … 19 20 .woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover { 20 21 color: var(--mrc-po-text-hover-color, #FFF) !important; 21 border -color:var(--mrc-po-border-hover-color, #414141) !important;22 border: var(--mrc-po-border-width, 0px) solid var(--mrc-po-border-hover-color, #414141) !important; 22 23 background-color: var(--mrc-po-background-hover-color, #414141) !important; 23 24 } -
merchant/trunk/assets/css/modules/pre-orders/pre-orders.min.css
r3092224 r3458319 1 .merchant-pre-orders-date{font-weight:700;margin-bottom:15px}.woocommerce.single-product .merchant-pre-ordered-product .add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button),.woocommerce.single-product .merchant-pre-ordered-product .product_type_grouped:not(.merchant_buy_now_button):not(.merchant-quick-view-button),.woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button){color:var(--mrc-po-text-color, #FFF) !important;border -color:var(--mrc-po-border-color, #212121) !important;background-color:var(--mrc-po-background-color, #212121) !important}.woocommerce.single-product .merchant-pre-ordered-product .add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover,.woocommerce.single-product .merchant-pre-ordered-product .product_type_grouped:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover,.woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover{color:var(--mrc-po-text-hover-color, #FFF) !important;border-color:var(--mrc-po-border-hover-color, #414141) !important;background-color:var(--mrc-po-background-hover-color, #414141) !important}dl.merchant-pre-orders-note{list-style:none outside;margin-bottom:0}dl.merchant-pre-orders-note dt{float:left;clear:both;margin:0;margin-right:.25em;list-style:none outside}dl.merchant-pre-orders-note dd{margin:0}span.merchant-pre-orders-note{display:block;font-size:max(12px,.7em);opacity:.7}span.merchant-pre-orders-note .merchant-pre-orders-label{padding-right:.2em}1 .merchant-pre-orders-date{font-weight:700;margin-bottom:15px}.woocommerce.single-product .merchant-pre-ordered-product .add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button),.woocommerce.single-product .merchant-pre-ordered-product .product_type_grouped:not(.merchant_buy_now_button):not(.merchant-quick-view-button),.woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button){color:var(--mrc-po-text-color, #FFF) !important;border:var(--mrc-po-border-width, 0px) solid var(--mrc-po-border-color, #212121) !important;border-radius:var(--mrc-po-border-radius, 0px) !important;background-color:var(--mrc-po-background-color, #212121) !important}.woocommerce.single-product .merchant-pre-ordered-product .add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover,.woocommerce.single-product .merchant-pre-ordered-product .product_type_grouped:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover,.woocommerce.single-product .merchant-pre-ordered-product .single_add_to_cart_button:not(.merchant_buy_now_button):not(.merchant-quick-view-button):hover{color:var(--mrc-po-text-hover-color, #FFF) !important;border:var(--mrc-po-border-width, 0px) solid var(--mrc-po-border-hover-color, #414141) !important;background-color:var(--mrc-po-background-hover-color, #414141) !important}dl.merchant-pre-orders-note{list-style:none outside;margin-bottom:0}dl.merchant-pre-orders-note dt{float:left;clear:both;margin:0;margin-right:.25em;list-style:none outside}dl.merchant-pre-orders-note dd{margin:0}span.merchant-pre-orders-note{display:block;font-size:max(12px,.7em);opacity:.7}span.merchant-pre-orders-note .merchant-pre-orders-label{padding-right:.2em} -
merchant/trunk/assets/js/admin/admin.js
r3403526 r3458319 1029 1029 }); 1030 1030 }); 1031 $('.customize-control-flexible-content-add-button'). click(function (event) {1031 $('.customize-control-flexible-content-add-button').on('click', function (event) { 1032 1032 event.preventDefault(); 1033 1033 event.stopImmediatePropagation(); … … 1105 1105 var $items = $flexibleContent.find('.layout'); 1106 1106 var index = $sourceLayout.find('.layout-count').text(); 1107 var uuid = self.generateUUID(); 1108 $clonedLayout.attr('data-layout-id', uuid); 1109 $clonedLayout.find('.flexible-id').val(uuid); 1107 1110 $clonedLayout.find('input, select, textarea').each(function () { 1108 1111 var $input = $(this); -
merchant/trunk/assets/js/admin/admin.min.js
r3403526 r3458319 1 function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}((m,u,p,f)=>{var v={},g=new URLSearchParams(u.location.search),b=g.get("module");function w(e){return"string"==typeof e&&!isNaN(e)&&!isNaN(parseFloat(e))}m(p).ready(function(){var e=m(".merchant-module-page-ajax-form"),n=m(".merchant-module-page-ajax-header"),a=(m(".merchant-module-save-button"),m(".merchant-module-page-content").on("change keypress change.merchant",function(e){m(e.target).hasClass("merchant-backup-file")||(m(this).is(".merchant-module-question-answer-textarea, .merchant-license-code-input")||v.show_save||(n.addClass("merchant-show"),n.removeClass("merchant-saving"),v.show_save=!0),s.initFlag())}),e.ajaxForm({beforeSubmit:function(){n.addClass("merchant-saving")},success:function(){var t;n.removeClass("merchant-show"),v.show_save=!1,m(".merchant-module-action").hasClass("merchant-enabled")||((t=m(".merchant-module-alert")).addClass("merchant-show"),m(p).off("click.merchant-alert-close"),m(p).on("click.merchant-alert-close",function(e){m(e.target).closest(".merchant-module-alert-wrapper").length||(t.removeClass("merchant-show"),m(p).off("click.merchant-alert-close"))})),m(p).trigger("save.merchant",[b])}}),m(".merchant-module-question-answer-button")),i=m(".merchant-module-question-answer-textarea");function r(){var e=m(p).find(".merchant-range");0!==e.length&&e.each(function(){var e=m(this),a=e.find(".merchant-range-input"),i=e.find(".merchant-range-number-input");a.on("change input merchant.range merchant-init.range",function(e){var t=m(this),e=("merchant"===e.type?i:t).val()||0,n=t.attr("min")||0,n=(e-n)/((t.attr("max")||1)-n)*100;m("body").hasClass("rtl")?t.css({background:"linear-gradient(to left, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}):t.css({background:"linear-gradient(to right, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}),a.val(e),i.val(e)}).trigger("merchant-init.range"),i.on("change input blur",function(){a.hasClass("merchant-range-input")&&a.val(m(this).val()).trigger("merchant.range")})})}i.on("input",function(){a.prop("disabled",""===m(this).val().trim())}),a.on("click",function(e){e.preventDefault();var t,e=i.val();e.trim()?(t=m(this),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show"),m(".merchant-module-question-thank-you-dropdown").addClass("merchant-show"),u.wp.ajax.post("merchant_module_feedback",{subject:i.attr("data-subject"),message:e,module:t.closest(".merchant-module-action").find(".merchant-module-page-button-action-activate").data("module"),nonce:u.merchant.nonce})):alert("Please provide the required information.")}),m(".merchant-module-page-button-action-activate").on("click",function(e){if(e.preventDefault(),m(this).hasClass("merchant-module-deactivated-by-bp"))return!1;m(".merchant-module-question-list-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-form").removeClass("merchant-show"),m(".merchant-module-question-answer-title").removeClass("merchant-show"),m(".merchant-module-question-thank-you-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-textarea").val(""),u.wp.ajax.post("merchant_module_activate",{module:m(this).data("module"),nonce:u.merchant.nonce}).done(function(){m("body").removeClass("merchant-module-disabled").addClass("merchant-module-enabled"),m(".merchant-module-action").addClass("merchant-enabled")})}),m(".merchant-module-page-button-action-deactivate").on("click",function(e){e.preventDefault(),u.wp.ajax.post("merchant_module_deactivate",{module:m(this).data("module"),nonce:u.merchant.nonce}).done(function(){m("body").removeClass("merchant-module-enabled").addClass("merchant-module-disabled"),m(".merchant-module-action").removeClass("merchant-enabled"),m(".merchant-module-question-list-dropdown").addClass("merchant-show")})}),m(".merchant-module-question-list-dropdown li").on("click",function(e){a.prop("disabled",""===i.val().trim());var t=m(this),n=t.data("answer-target"),n=m('[data-answer-title="'+n+'"]');n.length?(n.addClass("merchant-show").siblings().removeClass("merchant-show"),m(".merchant-module-question-answer-dropdown").addClass("merchant-show"),m(".merchant-module-question-answer-textarea").attr("data-subject",t.text().trim())):(m(".merchant-module-question-thank-you-dropdown").addClass("merchant-show"),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show")),m(".merchant-module-question-answer-textarea").val(""),m(".merchant-module-question-list-dropdown").removeClass("merchant-show")}),m(".merchant-module-dropdown-close").on("click",function(e){e.preventDefault(),m(this).closest(".merchant-module-dropdown").removeClass("merchant-show")}),m(".merchant-module-page-button-deactivate").on("click",function(e){e.preventDefault();m(this);var t=m(".merchant-module-deactivate-dropdown");t.toggleClass("merchant-show"),m(p).off("click.merchant-close"),m(p).on("click.merchant-close",function(e){m(e.target).closest(".merchant-module-deactivate").length||(t.removeClass("merchant-show"),m(p).off("click.merchant-close"))})}),r(),m(p).on("click",".merchant-module-page-setting-field-hidden-desc-trigger",function(){var e=m(this),t=(e.toggleClass("expanded"),e.attr("data-show-text")),n=e.attr("data-hidden-text");m(this).find("span:first").text(e.text()===t?n:t),m(this).closest(".merchant-module-page-setting-field").find(".merchant-module-page-setting-field-hidden-desc").stop(!0,!0).slideToggle("fast")});({init:function(){this.events()},events:function(){m(p).on("click","#download-backup-button",this.download.bind(this)),m(p).on("click","#restore-backup-button",this.restore.bind(this)),m(p).on("change","#merchant-backup-file",this.removeBackupFile.bind(this))},download:function(e){var a=this,i=(e.preventDefault(),m(".merchant-module-page-setting-fields .backup-section")),o=(a.hideError(i),m(e.target).attr("data-module-id"));m.ajax({url:merchant_admin_options.ajaxurl,type:"GET",data:{action:"merchant_get_module_settings",nonce:merchant_admin_options.ajaxnonce,module_id:o},beforeSend:function(){a.showLoadingIndicator(i)},success:function(e){var t,n;e.success?(t=e.data,n="merchant-"+o+"-backup-"+(new Date).toISOString().slice(0,10)+"-"+(new Date).getHours()+"-"+(new Date).getMinutes()+"-"+(new Date).getSeconds()+".json",a.downloadJson(t,n)):a.displayError(e.data.message,i),a.hideLoadingIndicator(i)},error:function(e,t,n){a.displayError(n,i),a.hideLoadingIndicator(i)}})},restore:function(e){var t,a=this,i=(e.preventDefault(),m(".merchant-module-page-setting-fields .restore-section")),n=(a.hideError(i),m(e.target).attr("data-module-id")),e=m(".merchant-backup-file").prop("files")[0];e&&"application/json"===e.type?((t=new FileReader).onload=function(e){e=e.target.result;m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_restore_module_settings",nonce:merchant_admin_options.ajaxnonce,module_id:n,module_settings:e},beforeSend:function(){a.showLoadingIndicator(i)},success:function(e){e.success?u.location.href=e.data.redirect_url:a.displayError(e.data.message,i),a.hideLoadingIndicator(i)},error:function(e,t,n){a.displayError(n,i),a.hideLoadingIndicator(i)}})},t.readAsText(e)):a.displayError(merchant_admin_options.invalid_file,i)},removeBackupFile:function(e){var t,n=m(e.target);n.length&&(e=m(".backup-file-remove"),0<(null==(t=n[0])?void 0:t.files.length)?e.show():e.hide(),e.on("click",function(){n.val(""),m(this).hide()}))},downloadJson:function(e,t){"object"===_typeof(e)&&(e=JSON.stringify(e));var e=new Blob([e],{type:"application/json"}),e=URL.createObjectURL(e),n=p.createElement("a");n.href=e,n.download=t,n.click(),URL.revokeObjectURL(e)},displayError:function(e,t){t.append('<div class="error-message"><p>'.concat(e,"</p></div>"))},hideError:function(e){e.find(".error-message").remove()},showLoadingIndicator:function(e){e.find(".merchant-loading-spinner").addClass("show")},hideLoadingIndicator:function(e){e.find(".merchant-loading-spinner").removeClass("show")}}).init();e={init:function(e){this.events()},events:function(){m(p).on("click",".merchant-flexible-content .merchant-toggle-switch .toggle-switch-label span",function(){var e=m(this).closest(".merchant-toggle-switch").find(".toggle-switch-checkbox");e.prop("checked",!e.prop("checked"))}).trigger("merchant.change")}};({init:function(){this.initiate_datepicker(),this.events()},initiate_datepicker:function(){var e=m(".merchant-module-page-setting-field .merchant-datetime-field");0!==e.length&&e.each(function(n){var a=m(this).find("input"),i={locale:JSON.parse(merchant_datepicker_locale),selectedDates:[a.val()?new Date(a.val()):""],onSelect:function(e){e.date;var t=e.formattedDate;void 0===t&&(e.datepicker.$el.value=""),a.trigger("change.merchant"),a.trigger("change.merchant-datepicker",[t,a,i,n])}},e=m(this).data("options"),e=(e.buttons=["clear"],e&&(e.minDate!==f&&"today"===e.minDate&&(e.minDate=new Date,e.timeZone!==f)&&""!==e.timeZone&&(e.minDate=new Date(e.minDate.toLocaleString("en-US",{timeZone:e.timeZone}))),i=Object.assign(i,e)),new AirDatepicker(a.getPath(),i));a.attr("readonly",!0),m(p).trigger("initiated.merchant-datepicker",[e,a,i,n])})},events:function(){var e=this;m(p).on("merchant-flexible-content-added",function(){e.initiate_datepicker()})}}).init();({init:function(e){this.events()},events:function(){var n=this;m(".merchant-sortable").each(function(){var e=m(this),t=e.find(".merchant-sortable-input");m(e.find("ul.merchant-sortable-list").first()).sortable({update:function(){t.val(n.sortableGetNewVal(e)).trigger("change.merchant")}}).disableSelection().find("li").each(function(){m(this).find("i.visibility").click(function(){m(this).toggleClass("dashicons-visibility-faint").parents("li:eq(0)").toggleClass("invisible")})}).click(function(){m(event.target).hasClass("dashicons-visibility")&&t.val(n.sortableGetNewVal(e)).trigger("change.merchant")})})},sortableGetNewVal:function(e){var e=m(e.find("li")),t=[];return _.each(e,function(e){m(e).hasClass("invisible")||t.push(m(e).data("value"))}),JSON.stringify(t)}}).init(),e.init(),m(p).on("merchant-flexible-content-added",function(e,t){t=t.find(".merchant-sortable-repeater-control").find(".merchant-sortable-repeater.sortable");c.makeFieldsSortable(t)});var o,c={init:function(e){var a=this;m(".merchant-sortable-repeater-control").each(function(){var e=JSON.parse(m(this).find(".merchant-sortable-repeater-input").val()),t=e.length;if(0<t&&(m(this).find(".repeater-input").val(e[0]),1<t))for(var n=1;n<t;++n)a.appendRow(m(this),e[n])}),this.events()},events:function(){var t=this;m(p).on("click",".merchant-sortable-repeater.sortable .customize-control-sortable-repeater-delete",function(e){e.preventDefault(),m(this).parent().slideUp("fast",function(){var e=m(this).parent().parent();m(this).remove(),t.getAllInputs(e)}),m(p).trigger("merchant-sortable-repeater-item-deleted")}),m(p).on("click",".customize-control-sortable-repeater-add",function(e){e.preventDefault(),t.appendRow(m(this).parent()),t.getAllInputs(m(this).parent())}),m(p).on("change",".merchant-sortable-repeater.sortable",function(){t.getAllInputs(m(this).parent())}),m(p).on("focusout",".merchant-sortable-repeater.sortable .repeater-input",function(){t.getAllInputs(m(this).parent())})},appendRow:function(e){var t='<div class="repeater" style="display:none"><input type="text" value="'+(1<arguments.length&&arguments[1]!==f?arguments[1]:"")+'" class="repeater-input" /><span class="dashicons dashicons-menu"></span><a class="customize-control-sortable-repeater-delete" href="#"><span class="dashicons dashicons-no-alt"></span></a></div>',t=(e.find(".sortable").append(t),e.find(".sortable").find(".repeater:last"));t.slideDown("slow",function(){m(this).find("input").focus()}),this.makeFieldsSortable(e.find(".sortable")),m(p).trigger("merchant-sortable-repeater-item-added",[t,e.find(".sortable")])},makeFieldsSortable:function(n){n.hasClass("disable-sorting")||n.sortable({update:function(e,t){c.getAllInputs(n.parent())}})},getAllInputs:function(e){var t=e.find(".repeater-input").map(function(){return m(this).val()}).toArray();t.length||t.push(""),e.find(".merchant-sortable-repeater-input").val(JSON.stringify(t)),e.find(".merchant-sortable-repeater-input").trigger("change"),e.find(".merchant-sortable-repeater-input").trigger("sortable.repeater.change")}},s=(c.init(),{init:function(){this.initAccordion(),this.initFlag()},initAccordion:function(){m(".merchant-group-field.has-accordion").each(function(){var e=m(this);e.accordion({collapsible:!0,header:"> .title-area",heightStyle:"content",active:!!e.hasClass("open")&&0})})},initFlag:function(){m(".merchant-group-field.has-flag").each(function(){var e=m(this),t=e.data("id"),t=e.find(".merchant-field-".concat(t,"_status select")),n=t.val(),t=t.find("option:selected").text();e.find(".field-status").removeClass("hidden active inactive").text(t).addClass(n)})}}),e={accordion:null,activePopupContainer:null,init:function(){this.initAccordion(),this.events(),this.makeSelectedReviewsSortable(m(".merchant-reviews-selector").not(".layouts .merchant-reviews-selector"))},events:function(){var n=this;m(p).on("input",".merchant-reviews-selector .products-search",n.ajaxSearch.bind(n)),m(p).on("change",'.merchant-reviews-selector .product-review input[type="checkbox"]',n.toggleReview.bind(n)),m(p).on("click",".merchant-reviews-selector .review-photo img",n.requestReviewImages.bind(n)),m(p).on("click",".review-photos-popup .overlay",n.dismissImagesGallery.bind(n)),m(p).on("click",".merchant-reviews-selector .product-reviews-load-more button",n.loadMoreReviews.bind(n)),m(p).on("click",".merchant-reviews-selector .popup-trigger",n.initPopUp.bind(n)),m(p).on("click",".merchant-reviews-selector .popup-header .close, .merchant-reviews-selector > .overlay",n.dismissPopUp.bind(n)),m(p).on("click",".merchant-reviews-selector .product-review-delete",n.deleteSelectedReview.bind(n)),m(p).on("keyup",function(e){"Escape"!==e.key||n.dismissImagesGallery()||n.dismissPopUp(n)}),m(p).on("merchant-flexible-content-added",function(e,t){n.makeSelectedReviewsSortable(),n.initAccordion()})},makeSelectedReviewsSortable:function(){var e=0<arguments.length&&arguments[0]!==f?arguments[0]:m(p).find(".merchant-reviews-selector").not(".layouts .merchant-reviews-selector"),n=this;e.find(".selected-reviews .product-reviews").sortable({axis:"y",cursor:"move",helper:"original",handle:".product-review-move",cancel:"",placeholder:"placeholder",update:function(e,t){t=t.item.closest(".merchant-reviews-selector");n.saveModifications(t)},start:function(e,t){t.placeholder.height(t.item.height())}})},deleteSelectedReview:function(e){var e=m(e.target).closest(".product-review"),t=e.closest(".merchant-reviews-selector");e.remove(),this.saveModifications(t),this.updateSelectedReviewsCheckboxState(t),this.countSelectedReviewsInProduct(t)},ajaxSearch:function(e){var t=this,e=m(e.target),n=e.closest(".merchant-reviews-selector"),a=n.find(".popup-header");(0===e.val().length||3<=e.val().length)&&m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_search_reviews",search:e.val(),nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){a.addClass("loading"),t.destroyAccordion(n)},success:function(e){e.success?(a.removeClass("popup-error"),n.find(".products-search-results").html(e.data),t.initAccordion(n)):a.addClass("popup-error")},complete:function(){a.removeClass("loading")},error:function(){a.addClass("popup-error")}})},loadMoreReviews:function(e){var t=this,n=m(e.target).closest(".product-item"),e=n.find(".product-review").length;m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_load_more_reviews",product_id:n.attr("data-id"),offset:e,nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){n.addClass("loading")},success:function(e){e.success&&(n.find(".product-reviews .reviews-wrapper").append(e.data.reviews),""===e.data.load_more&&t.hideLoadMoreButton(n),t.updateSelectedReviewsCheckboxState(n.closest(".merchant-reviews-selector")),t.countSelectedReviewsInProduct(n.closest(".merchant-reviews-selector")))},complete:function(){n.removeClass("loading")}})},hideLoadMoreButton:function(e){e.find(".product-reviews-load-more").remove()},initPopUp:function(e){var e=m(e.target).closest(".merchant-reviews-selector"),t=e.find(".selector-popup"),n=e.find(".overlay");t.addClass("active"),n.addClass("active"),this.activePopupContainer=e},dismissPopUp:function(){var e,t=this.activePopupContainer;null!==t&&(e=t.find(".selector-popup"),t=t.find(".overlay"),e.removeClass("active"),t.removeClass("active"),this.activePopupContainer=null)},initAccordion:function(){var e=0<arguments.length&&arguments[0]!==f?arguments[0]:m(p).find(".merchant-reviews-selector"),t=this;e.each(function(){var n=m(this).find(".popup-content .product-item.product-item-has-reviews");n.each(function(){n.accordion({collapsible:!0,heightStyle:"content",icons:!1,active:!!n.hasClass("opened")&&0,activate:function(e,t){t.newPanel.length?t.newPanel.parent().addClass("opened"):n.removeClass("opened")}})}),n.find("a").on("click",function(e){e.stopPropagation()}),t.updateSelectedReviewsCheckboxState(m(this)),t.countSelectedReviewsInProduct(m(this))})},destroyAccordion:function(e){e.find(".selector-popup .product-item.product-item-has-reviews").each(function(){m(this).hasClass("ui-accordion")&&m(this).accordion("destroy")})},toggleReview:function(e){var t=this,n=m(e.target).prop("checked"),a=m(e.target).closest(".merchant-reviews-selector"),e=m(e.target).closest(".product-review"),i=e.attr("data-id"),o=a.find(".selected-reviews .product-reviews"),i=o.find('.product-review[data-id="'.concat(i,'"]'));n?0===i.length&&(n=e.clone(),o.append(n),t.makeSelectedReviewsSortable()):i.remove(),setTimeout(function(){t.saveModifications(a)},150)},saveModifications:function(e){var t=e.find(".review-saved-ids"),n=e.find(".selected-reviews .product-reviews").find(".product-review"),a=[];n.each(function(){var e=m(this).attr("data-id");a.push(e)}),t.val(a.join(",")),t.trigger("change"),this.updateSelectedReviewsCheckboxState(e),this.countSelectedReviewsInProduct(e)},updateSelectedReviewsCheckboxState:function(n){var e=n.find(".selector-popup"),t=n.find(".review-saved-ids"),e=e.find(".product-review"),a=t.val().split(",");e.each(function(){var e=m(this).attr("data-id"),t=n.find('.product-review[data-id="'.concat(e,'"] input[type="checkbox"]'));a.includes(e)?t.prop("checked",!0):t.prop("checked",!1)})},countSelectedReviewsInProduct:function(e){var t=e.find(".selector-popup .product-item"),n=e.find(".review-saved-ids").val().split(",");t.each(function(){var t=0,e=m(this);e.find(".product-review").each(function(){var e=m(this).attr("data-id");n.includes(e)&&t++}),e.find(".selected-reviews-count .counter").text(t)})},requestReviewImages:function(e){var t=m(e.target).closest(".product-review"),n=m(e.target),e=t.attr("data-id");m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_get_review_images",review_id:e,nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){n.addClass("loading")},success:function(e){e.success&&(m("body").append(e.data),setTimeout(function(){m("body").find(".review-photos-popup").addClass("active")},300))},complete:function(){n.removeClass("loading")}})},dismissImagesGallery:function(){var e=m("body").find(".review-photos-popup");return!!e.length&&(e.removeClass("active"),setTimeout(function(){e.remove()},300),!0)}};({init:function(e){var i=this;m(".merchant-flexible-content-control").each(function(){var e=m(this).hasClass("has-accordion"),n=m(this).find(".merchant-flexible-content"),t=g.get("campaign_id"),a=0;t&&n.find("input.flexible-id").each(function(e){if(m(this).val()===t)return a=e,!1}),e?n.accordion({active:a,collapsible:!0,header:function(e){return e.find(".layout__inner > .layout-header")},heightStyle:"content"}).sortable({axis:"y",cursor:"move",helper:"original",handle:".customize-control-flexible-content-move",stop:function(e,t){n.trigger("merchant.sorted"),i.refreshNumbers(n),n.accordion("refresh")}}):n.sortable({axis:"y",cursor:"move",helper:"original",handle:".customize-control-flexible-content-move",stop:function(e,t){n.trigger("merchant.sorted"),i.refreshNumbers(n),n.accordion("refresh")}})}),this.updateLayoutTitle(),this.updateDiscountPercentMaxVal(),this.events()},updateLayoutTitle:function(){m(".merchant-flexible-content .layout").each(function(){var e,t=m(this).find(".layout-title[data-title-field]");t.length&&((e=m(this).find(".layout-body .merchant-field-"+t.data("title-field")+" input")).on("change keyup",function(){t.text(m(this).val())}),t.text(e.val()))})},updateDiscountPercentMaxVal:function(){m(".merchant-flexible-content .layout").each(function(){var e=m(this),t=e.find('.merchant-module-page-setting-field[data-id="discount_type"]'),n=e.find('.merchant-module-page-setting-field[data-id="discount_value"]'),e=(n=(n=n.length?n:e.find('.merchant-module-page-setting-field[data-id="discount"]')).length?n:e.find('.merchant-module-page-setting-field[data-id="discount_amount"]'),t.find("input:checked").val());"percentage_discount"===e||"percentage"===e?n.find("input").attr("max",100):n.find("input").removeAttr("max")}),m(".merchant-module-page-setting-fields")},generateUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})},events:function(){var o=this;function n(e){e&&e.length&&e.siblings().find(".layout-actions__inner").slideUp(300)}m(p).on("change",'.merchant-module-page-setting-field[data-id="discount_type"] input',function(){o.updateDiscountPercentMaxVal()}),m(p).on("change","select",function(){var t=m(this).val(),n=m(this).prop("multiple");m(this).find("option").each(function(){var e=m(this).val(),e=n?t.includes(e):e===t;m(this).attr("selected",e)})}),m(".customize-control-flexible-content-add-button").click(function(e){e.preventDefault(),e.stopImmediatePropagation(),1===m(this).parent().find(".customize-control-flexible-content-add-list a").length?m(this).parent().find(".customize-control-flexible-content-add-list a").trigger("click"):m(this).parent().find(".customize-control-flexible-content-add-list").toggleClass("active")}),m(p).on("click",".customize-control-flexible-content-add",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=m(".merchant-flexible-content-control[data-id="+m(this).data("id")+"]"),t=e.find(".layouts"),n=m(this).data("layout"),t=t.find(".layout[data-type="+n+"]").clone(!0),n=e.find(".merchant-flexible-content"),a=n.find(".layout"),e=o.generateUUID(),e=(t.find("input, select, textarea").each(function(){m(this).data("name")&&m(this).attr("name",m(this).data("name").replace("0",a.length)),m(this).is(":checkbox, :radio")&&m(this).attr("checked")&&m(this).prop("checked",!0)}),t.attr("data-layout-id",e),t.find(".layout-count").text(a.length+1),t.find(".flexible-id").val(e),n.append(t),n.removeClass("empty"),m(this).parent().removeClass("active"),t.find(".merchant-module-page-setting-field-upload").length&&l(t.find(".merchant-module-page-setting-field-upload")),t.find(".merchant-module-page-setting-field-select_ajax").length&&d(t.find(".merchant-module-page-setting-field-select_ajax")),m(this).closest(".merchant-flexible-content-control"));e.hasClass("has-accordion")&&(e.find(".merchant-flexible-content").accordion("refresh"),e.find(".merchant-flexible-content").accordion("option","active",-1)),s.init(),m(p).trigger("merchant-flexible-content-added",[t]),r(),o.updateLayoutTitle(),o.updateDiscountPercentMaxVal()}),m(p).on("click",".customize-control-flexible-content-duplicate",function(e){e.preventDefault(),e.stopImmediatePropagation();var t,a,e=m(this),n=e.closest(".merchant-flexible-content-control[data-id="+e.data("id")+"]"),i=null==n?void 0:n.find(".merchant-flexible-content");n.length&&i.length&&(e=e.closest(".layout")).length&&(e.find(".layout-actions__inner").hide(),t=e.clone(),i.find(".layout"),a=e.find(".layout-count").text(),t.find("input, select, textarea").each(function(){var e,t=m(this),n=t.attr("name");n&&(e=n.split("[")[0],n=n.match(/\[(.*?)\]/g))&&1<n.length&&(n[1]="["+a+"]",e="".concat(e).concat(n.join("")),t.attr("name",e))}),t.find("select").each(function(){m(this).hasClass("select2-hidden-accessible")&&(m(this).removeClass("select2-hidden-accessible").removeAttr("data-live-search").removeAttr("data-select2-id").removeAttr("aria-hidden").removeAttr("tabindex"),m(this).nextAll(".select2-container").remove(),m(this).select2())}),t.find(".layout-body").removeAttr("style"),t.hide(),t.insertAfter(e),t.fadeIn(),t.find(".merchant-module-page-setting-field-upload").length&&l(t.find(".merchant-module-page-setting-field-upload")),t.find(".merchant-module-page-setting-field-select_ajax").length&&d(t.find(".merchant-module-page-setting-field-select_ajax")),o.refreshNumbers(i),m(p).trigger("merchant-flexible-content-added",[t]),n.hasClass("has-accordion")&&i.accordion("refresh"),o.updateLayoutTitle(),s.init())}),m(p).on("click",".customize-control-flexible-content-delete",function(e){e.preventDefault();var e=m(this).closest(".layout"),t=e.parent(),t=(e.remove(),0===t.find(".layout").length&&t.addClass("empty"),o.refreshNumbers(t),m(p).trigger("merchant-flexible-content-deleted",[e]),m(this).closest(".merchant-flexible-content-control"));t.hasClass("has-accordion")&&t.find(".merchant-flexible-content").accordion("refresh"),m(p).trigger("change.merchant")}),m(p).on("click",".layout-actions__toggle",function(e){e.preventDefault(),n(m(this).closest(".layout")),m(this).closest(".layout-actions").find(".layout-actions__inner").stop().slideToggle(300)}),m(p).on("click",".layout-header",function(){n(m(this).closest(".layout"))}),m(p).on("merchant-flexible-content-added",function(e,t){n(t)})},refreshNumbers:function(e){e.find(".layout").each(function(e){var t=m(this).find(".layout-count").text(),n=parseInt(t)-1;m(this).find(".layout-count").text(e+1),m(this).find("input, select, textarea").each(function(){m(this).attr("name")&&m(this).attr("name",m(this).attr("name").replace("["+n+"]","[*refreshed*"+e+"]"))})}),e.find(".layout").each(function(e){m(this).find("input, select, textarea").each(function(){var e=m(this).attr("name");e&&m(this).attr("name",e.replace("*refreshed*",""))})}),e.parent().find("input").trigger("change.merchant")}}).init(),s.init(),e.init(),m(p).on("keyup",".merchant-module-page-setting-field-products_selector .merchant-search-field",function(){clearTimeout(o);var e,t,n,a=[],i=(!m(this).closest('[data-id="excluded_products"]').length||"categories"!==(t=(e=m(this).closest(".layout")).find(".merchant-field-rules_to_apply select").val()||e.find(".merchant-field-rules_to_display select").val()||e.find(".merchant-field-display_rules select").val())&&"by_category"!==t||(a=e.find(".merchant-field-category_slugs select").val()||e.find(".merchant-field-product_cats select").val()),m(this).closest(".merchant-products-search-container"));""!==m(this).val()?(i.find(".merchant-searching").addClass("active"),n={action:"merchant_admin_products_search",nonce:merchant_admin_options.ajaxnonce,keyword:m(this).val(),product_types:m(this).data("allowed-types"),ids:i.find(".merchant-selected-products").val(),categories:a},o=setTimeout(function(){m.post(merchant_admin_options.ajaxurl,n,function(e){var t=i.find(".merchant-selections-products-preview");t.show(),t.html(e),i.find(".merchant-searching").removeClass("active")})},250)):i.find(".merchant-selections-products-preview").html("").hide()}),m(p).on("click touch",".merchant-module-page-setting-field-products_selector .merchant-selections-products-preview li",function(){var e=m(this).closest(".merchant-products-search-container"),t=e.find(".merchant-selected-products"),n=t.val(),a="multiple"===e.data("multiple");0<e.find(".merchant-selected-products-preview ul li").length&&!a&&(e.find(".merchant-selected-products-preview ul li").remove(),t.val("").change()),m(this).children(".remove").attr("aria-label","Remove").html("×"),e.find(".merchant-selected-products-preview ul").append(m(this)),e.find(".merchant-selections-products-preview").html("").hide(),e.find(".merchant-search-field").val("").change(),""===n?t.val(m(this).data("id")):(a?((e=n.split(",")).push(m(this).data("id")),t.val(e.join(","))):t.val(m(this).data("id"))).change()}),m(p).on("click touch",".merchant-selected-products-preview .remove",function(){var e=m(this);if(confirm(merchant_admin_options.product_delete_confirmation_message)){var t=e.closest(".merchant-products-search-container").find(".merchant-selected-products"),n=e.parent().data("id"),a=(e.parent().remove(),t.val().split(","));if(0<a.length)for(var i in a)parseInt(a[i])===parseInt(n)&&a.splice(i,1);t.val(a.join(",")).change(),t.trigger("change.merchant")}}),m(p).on("merchant-admin-check-fields merchant-flexible-content-added",function(){m(".merchant-module-page-setting-field").each(function(){var e=m(this);if(e.data("condition")&&e.data("condition").length){var t=e.data("condition"),n=m(this).closest(".layout-body").find('input[name*="'+t[0]+'"],select[name*="'+t[0]+'"]');if((n=n.length?n:m('input[name="merchant['+t[0]+']"],select[name="merchant['+t[0]+']"]')).length){var a,i=!1;switch(t[1]){case"==":"radio"!==n.attr("type")&&"checkbox"!==n.attr("type")||(a=n.parent().find("input:checked")).length&&a.val()===t[2]&&(i=!0),n.is("select")&&n.val()==t[2]&&(i=!0);break;case"any":"radio"!==n.attr("type")&&"checkbox"!==n.attr("type")||(a=n.parent().find("input:checked")).length&&t[2].split("|").includes(a.val())&&(i=!0),n.is("select")&&t[2].split("|").includes(n.val())&&(i=!0)}i?e.removeClass("merchant-hide").addClass("merchant-show"):e.removeClass("merchant-show").addClass("merchant-hide")}}})}).trigger("merchant.change"),m(p).on("merchant-admin-check-fields merchant-flexible-content-added change keyup",function(){m(p).find(".merchant-module-page-setting-field").each(function(){var e=m(this);e.data("conditions")&&(function e(t){var n=1<arguments.length&&arguments[1]!==f&&arguments[1];var a=!1;if("relation"in t){var i=t.relation.toUpperCase();if("OR"===i)for(var o=0;o<t.terms.length;o++){var r=t.terms[o];if(a=e(r,n))return!0}else if("AND"===i){for(var c=0,s=0;s<t.terms.length;s++){var l=t.terms[s];e(l,n)&&c++}c===t.terms.length&&(a=!0)}}else{var d,i="",h=(i="terms"in t?t.terms[0]:t,m('input[name="merchant['+i.field+']"],select[name="merchant['+i.field+']"]')),u=(h.length||0<(d=n.closest(".layout-body")).length&&(h=d.find(".merchant-field-"+i.field).find("input, select")),(h=(h=h.length?h:m('input[name="merchant['+i.field+'][]"],select[name="merchant['+i.field+'][]"]')).length?h:m(".merchant-group-fields-container").find(".merchant-field-"+i.field+' input[name*="'+i.field+'"],.merchant-field-'+i.field+' select[name*="'+i.field+'"]')).val());"checkbox"===h.attr("type")&&(u=h.is(":checked")),"radio"===h.attr("type")&&(u=h.filter(":checked").val()),"checkbox"===h.attr("type")&&1<h.length&&(u=[],h.each(function(){m(this).is(":checked")&&u.push(m(this).val())})),w(u)&&(u=Number(u)),Array.isArray(i.value)&&(i.value=i.value.map(function(e){return w(e)?Number(e):e})),("==="===i.operator&&u===i.value||"!=="===i.operator&&u!==i.value||">"===i.operator&&u>i.value||"<"===i.operator&&u<i.value||">="===i.operator&&u>=i.value||"<="===i.operator&&u<=i.value||"in"===i.operator&&i.value.includes(u)||"!in"===i.operator&&!i.value.includes(u)||"contains"===i.operator&&Array.isArray(u)&&u.includes(i.value)||"!contains"===i.operator&&Array.isArray(u)&&!u.includes(i.value))&&(a=!0)}return a}(e.data("conditions"),e)?e.removeClass("merchant-hide").addClass("merchant-show"):e.removeClass("merchant-show").addClass("merchant-hide"))})}).trigger("merchant.change"),m(p).on("change",".merchant-module-page-setting-field",function(){m(p).trigger("merchant-admin-check-fields")}).trigger("merchant.change"),m(p).trigger("merchant-admin-check-fields"),m(p).on("merchant-admin-check-color-fields merchant-flexible-content-added",function(){m(".merchant-color").each(function(){var n,e=m(this),a=e.find(".merchant-color-picker"),i=e.find(".merchant-color-input"),o=!1;a.off("click").on("click",function(e){e.preventDefault(),e.stopPropagation();var t=m("body,html");t.addClass("merchant-height-auto"),o?n.setColor(i.val()):((n=new Pickr({el:a.get(0),container:"body",theme:"merchant",appClass:"merchant-pcr-app",default:i.val()||a.data("default-color")||"#212121",swatches:["#000000","#F44336","#E91E63","#673AB7","#03A9F4","#8BC34A","#FFEB3B","#FFC107","#FFFFFF"],sliders:"h",useAsButton:!0,components:{hue:!0,preview:!0,opacity:!0,interaction:{input:!0,clear:!0}},i18n:{"btn:clear":"Default"}})).on("change",function(e){e=(1===e.a?(n.setColorRepresentation("HEX"),e.toHEXA()):(n.setColorRepresentation("RGBA"),e.toRGBA())).toString(0);a.css({"background-color":e}),i.val()!==e&&i.val(e).trigger("change.merchant"),m(p).trigger("merchant-color-picker-updated",[e,i])}),n.on("clear",function(){var e=a.data("default-color");e?n.setColor(e):(a.css({"background-color":"white"}),i.val(""))}),n.on("hide",function(){t.removeClass("merchant-height-auto")}),a.data("pickr",n),setTimeout(function(){n.show()},200),o=!0)}),i.on("change keyup",function(){var e=m(this).val();a.css({"background-color":e})})})}),m(p).trigger("merchant-admin-check-color-fields");({init:function(){this.events()},events:function(){var l=this;m(p).on("click",".merchant-create-page-control-button",function(e){e.preventDefault();var t=m(this),n=t.parent().find(".merchant-create-page-control-create-message"),a=t.parent().find(".merchant-create-page-control-success-message"),e=(t.text(),t.data("creating-text")),i=(t.data("created-text"),t.data("page-title")),o=t.data("page-meta-key"),r=t.data("page-meta-value"),c=t.data("option-name"),s=t.data("nonce");if(!i)return!1;m(this).text(e),m(this).attr("disabled",!0),m.ajax({type:"post",url:ajaxurl,data:{action:"merchant_create_page_control",page_title:i,page_meta_key:o,page_meta_value:r,option_name:c,nonce:s},success:function(e){l.ajaxResponseHandler(e,t,a,n)}})})},ajaxResponseHandler:function(e,t,n,a){"success"===e.status&&(e=n.find("a").attr("href").replace("?post=&","?post="+e.page_id+"&"),n.find("a").attr("href",e),n.css("display","block"),a.remove(),t.remove())}}).init(),m(".merchant-module-page-setting-field-gallery").each(function(){var a,i=m(this),e=i.find(".merchant-gallery-button"),o=i.find(".merchant-gallery-input"),r=i.find(".merchant-gallery-images"),t=i.find(".merchant-gallery-remove");r.sortable({helper:"original",update:function(e,t){var n=[];r.find(".merchant-gallery-image").each(function(){n.push(m(this).data("item-id"))}),o.val(n.join(",")).trigger("change")}});t.on("click",function(e){e.preventDefault(),m(this).parent().remove();var t=[];r.find(".merchant-gallery-image").each(function(){t.push(m(this).data("item-id"))}),o.val(t.join(",")).trigger("change")}),e.on("click",function(e){m(this);var t=o.val(),n=t?"edit":"add";e.preventDefault(),void 0!==u.wp&&u.wp.media&&u.wp.media.gallery&&("add"==n?(a=u.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():a=u.wp.media.gallery.edit('[gallery ids="'+t+'"]'),a.on("update",function(e){r.empty();e=e.models.map(function(e){var e=e.toJSON(),t=(e.sizes&&e.sizes.thumbnail&&e.sizes.thumbnail.url?e.sizes.thumbnail:e).url;return r.append('<div class="merchant-gallery-image" data-item-id="'+e.id+'"><i class="merchant-gallery-remove dashicons dashicons-no-alt"></i><img src="'+t+'" /></div>'),e.id});o.val(e.join(",")).trigger("change"),i.find(".merchant-gallery-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove();var t=[];r.find(".merchant-gallery-image").each(function(){t.push(m(this).data("item-id"))}),o.val(t.join(",")).trigger("change")})}))})});var l=function(e){var a,i=e,e=i.find(".merchant-upload-button"),o=i.find(".merchant-upload-input"),r=i.find(".merchant-upload-wrapper");i.find(".merchant-upload-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove(),o.val("").trigger("change")}),e.on("click",function(e){e.preventDefault(),void 0!==u.wp&&u.wp.media&&((a=a||u.wp.media({library:{type:"image"}})).open(),a.on("select",function(){r.empty();var e=a.state().get("selection").first().attributes,t=(e.sizes&&e.sizes.thumbnail&&e.sizes.thumbnail.url?e.sizes.thumbnail:e).url,n=e.sizes?JSON.stringify(e.sizes):"";r.append('<div class="merchant-upload-image" data-sizes=\''+n+'\'><i class="merchant-upload-remove dashicons dashicons-no-alt"></i><img src="'+t+'" /></div>'),o.val(e.id).trigger("change"),i.find(".merchant-upload-button-drag-drop").hide(),i.find(".merchant-upload-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove(),o.val("").trigger("change"),i.find(".merchant-upload-button-drag-drop").show()})}))})},d=(m(".merchant-module-page-setting-field-upload:not(.template)").each(function(){l(m(this))}),jQuery.each(["dragenter","dragover","dragleave","drop"],function(e,t){m(p).on(t,".merchant-upload-button-drag-drop",function(e){e.preventDefault(),e.stopPropagation()})}),m(p).on("dragenter",".merchant-upload-button-drag-drop",function(e){m(this).closest(".merchant-module-page-setting-field-upload").find(".merchant-upload-button").click()}),function(e){var t=e.find("select"),n=t.data("source"),a=u.merchant_admin_options,i={width:"100%",templateSelection:function(e){return e.text.replace(/ -*\s*/g,"").trim()}};"post"!==n&&"product"!==n&&"user"!==n||(i.minimumInputLength=1,i.ajax={url:a.ajaxurl,dataType:"json",delay:250,cache:!0,data:function(e){return{action:"merchant_admin_options_select_ajax",nonce:a.ajaxnonce,term:e.term,source:n}},processResults:function(e,t){return e.success?{results:e.data}:{}}}),t.select2(i),e.find(".select2-selection--multiple").append('<span class="merchant-select2-clear"></span>')}),h=(m(".merchant-module-page-setting-field-select_ajax:not(.template)").each(function(){d(m(this))}),m(".merchant-module-page-settings-responsive").each(function(){var e=m(this),n=e.find(".merchant-module-page-settings-devices button"),a=e.find(".merchant-module-page-settings-device-container");n.on("click",function(e){e.preventDefault();var t=m(this).data("device");n.removeClass("active"),a.removeClass("active"),m(this).addClass("active"),a.each(function(){m(this).data("device")===t&&m(this).addClass("active")})})}),m(".merchant-animated-buttons").each(function(){var e,t,n=m(this).find("label"),a=m(".merchant-animation-demo");n.on("click",function(){a.removeClass("merchant-animation-"+e),a.removeClass("merchant-animation-"+t),e=m(this).find("input").attr("value"),setTimeout(function(){a.addClass("merchant-animation-"+e)},100),setTimeout(function(){a.removeClass("merchant-animation-"+e)},1e3)}),n.mouseover(function(){a.removeClass("merchant-animation-"+e),t=m(this).find("input").attr("value"),a.addClass("merchant-animation-"+t)}).mouseout(function(){a.removeClass("merchant-animation-"+t)})}),m(".merchant-notifications-sidebar")),e=(h.length&&(m(".merchant-notifications").on("click",function(e){e.preventDefault();var t=m(this),e=h.find(".merchant-notification:first-child .merchant-notification-date").data("raw-date");h.toggleClass("opened"),t.hasClass("read")||m.post(u.merchant.ajax_url,{action:"merchant_notifications_read",nonce:u.merchant.nonce,latest_notification_date:e},function(e){e.success&&setTimeout(function(){t.addClass("read")},2e3)})}),m(".merchant-notification-content").each(function(){var e=m(this),t=(e.find("span.changelog-fixed").each(function(){m(this).closest("li").remove()}),e.find("li")),n=e.find("li.hidden");t.length===n.length&&e.closest(".merchant-notification").remove()}),m(u).on("scroll",function(){60<u.pageYOffset&&(h.addClass("closing"),setTimeout(function(){h.removeClass("opened"),h.removeClass("closing")},300))}),m(".merchant-notifications-sidebar-close").on("click",function(e){e.preventDefault(),h.addClass("closing"),setTimeout(function(){h.removeClass("opened"),h.removeClass("closing")},300)})),m(".merchant-tabs-nav")),t=(e.length&&e.each(function(){var n=m(this).data("tab-wrapper-id");m(this).find(".merchant-tabs-nav-link").on("click",function(e){e.preventDefault();var e=m(this).closest(".merchant-tabs-nav").find(".merchant-tabs-nav-link"),t=m(this).data("tab-to"),e=(e.each(function(){m(this).closest(".merchant-tabs-nav-item").removeClass("active")}),m(this).closest(".merchant-tabs-nav-item").addClass("active"),m('.merchant-tab-content-wrapper[data-tab-wrapper-id="'+n+'"]'));e.find("> .merchant-tab-content").removeClass("active"),e.find('> .merchant-tab-content[data-tab-content-id="'+t+'"]').addClass("active")})}),m(".merchant-module-alert"));t.length&&t.find(".merchant-module-alert-close").on("click",function(e){e.preventDefault(),t.removeClass("merchant-show"),m(p).off("click.merchant-alert-close")})})})(jQuery,window,document),jQuery.fn.extend({getPath:function(){var c=[];return this.each(function(e,t){for(var n,a=jQuery(t);a.length;){var i=a.get(0);if(!(o=i.localName))break;var o=o.toLowerCase(),r=a.parent();1<r.children(o).length&&0<(e=r.children().index(i)+1)&&(o+=":nth-child("+e+")"),n=o+(n?" > "+n:""),a=r}c.push(n)}),c.join(",")}});1 function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}((m,u,p,f)=>{var v={},g=new URLSearchParams(u.location.search),b=g.get("module");function w(e){return"string"==typeof e&&!isNaN(e)&&!isNaN(parseFloat(e))}m(p).ready(function(){var e=m(".merchant-module-page-ajax-form"),n=m(".merchant-module-page-ajax-header"),a=(m(".merchant-module-save-button"),m(".merchant-module-page-content").on("change keypress change.merchant",function(e){m(e.target).hasClass("merchant-backup-file")||(m(this).is(".merchant-module-question-answer-textarea, .merchant-license-code-input")||v.show_save||(n.addClass("merchant-show"),n.removeClass("merchant-saving"),v.show_save=!0),s.initFlag())}),e.ajaxForm({beforeSubmit:function(){n.addClass("merchant-saving")},success:function(){var t;n.removeClass("merchant-show"),v.show_save=!1,m(".merchant-module-action").hasClass("merchant-enabled")||((t=m(".merchant-module-alert")).addClass("merchant-show"),m(p).off("click.merchant-alert-close"),m(p).on("click.merchant-alert-close",function(e){m(e.target).closest(".merchant-module-alert-wrapper").length||(t.removeClass("merchant-show"),m(p).off("click.merchant-alert-close"))})),m(p).trigger("save.merchant",[b])}}),m(".merchant-module-question-answer-button")),i=m(".merchant-module-question-answer-textarea");function o(){var e=m(p).find(".merchant-range");0!==e.length&&e.each(function(){var e=m(this),a=e.find(".merchant-range-input"),i=e.find(".merchant-range-number-input");a.on("change input merchant.range merchant-init.range",function(e){var t=m(this),e=("merchant"===e.type?i:t).val()||0,n=t.attr("min")||0,n=(e-n)/((t.attr("max")||1)-n)*100;m("body").hasClass("rtl")?t.css({background:"linear-gradient(to left, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}):t.css({background:"linear-gradient(to right, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}),a.val(e),i.val(e)}).trigger("merchant-init.range"),i.on("change input blur",function(){a.hasClass("merchant-range-input")&&a.val(m(this).val()).trigger("merchant.range")})})}i.on("input",function(){a.prop("disabled",""===m(this).val().trim())}),a.on("click",function(e){e.preventDefault();var t,e=i.val();e.trim()?(t=m(this),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show"),m(".merchant-module-question-thank-you-dropdown").addClass("merchant-show"),u.wp.ajax.post("merchant_module_feedback",{subject:i.attr("data-subject"),message:e,module:t.closest(".merchant-module-action").find(".merchant-module-page-button-action-activate").data("module"),nonce:u.merchant.nonce})):alert("Please provide the required information.")}),m(".merchant-module-page-button-action-activate").on("click",function(e){if(e.preventDefault(),m(this).hasClass("merchant-module-deactivated-by-bp"))return!1;m(".merchant-module-question-list-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-form").removeClass("merchant-show"),m(".merchant-module-question-answer-title").removeClass("merchant-show"),m(".merchant-module-question-thank-you-dropdown").removeClass("merchant-show"),m(".merchant-module-question-answer-textarea").val(""),u.wp.ajax.post("merchant_module_activate",{module:m(this).data("module"),nonce:u.merchant.nonce}).done(function(){m("body").removeClass("merchant-module-disabled").addClass("merchant-module-enabled"),m(".merchant-module-action").addClass("merchant-enabled")})}),m(".merchant-module-page-button-action-deactivate").on("click",function(e){e.preventDefault(),u.wp.ajax.post("merchant_module_deactivate",{module:m(this).data("module"),nonce:u.merchant.nonce}).done(function(){m("body").removeClass("merchant-module-enabled").addClass("merchant-module-disabled"),m(".merchant-module-action").removeClass("merchant-enabled"),m(".merchant-module-question-list-dropdown").addClass("merchant-show")})}),m(".merchant-module-question-list-dropdown li").on("click",function(e){a.prop("disabled",""===i.val().trim());var t=m(this),n=t.data("answer-target"),n=m('[data-answer-title="'+n+'"]');n.length?(n.addClass("merchant-show").siblings().removeClass("merchant-show"),m(".merchant-module-question-answer-dropdown").addClass("merchant-show"),m(".merchant-module-question-answer-textarea").attr("data-subject",t.text().trim())):(m(".merchant-module-question-thank-you-dropdown").addClass("merchant-show"),m(".merchant-module-question-answer-dropdown").removeClass("merchant-show")),m(".merchant-module-question-answer-textarea").val(""),m(".merchant-module-question-list-dropdown").removeClass("merchant-show")}),m(".merchant-module-dropdown-close").on("click",function(e){e.preventDefault(),m(this).closest(".merchant-module-dropdown").removeClass("merchant-show")}),m(".merchant-module-page-button-deactivate").on("click",function(e){e.preventDefault();m(this);var t=m(".merchant-module-deactivate-dropdown");t.toggleClass("merchant-show"),m(p).off("click.merchant-close"),m(p).on("click.merchant-close",function(e){m(e.target).closest(".merchant-module-deactivate").length||(t.removeClass("merchant-show"),m(p).off("click.merchant-close"))})}),o(),m(p).on("click",".merchant-module-page-setting-field-hidden-desc-trigger",function(){var e=m(this),t=(e.toggleClass("expanded"),e.attr("data-show-text")),n=e.attr("data-hidden-text");m(this).find("span:first").text(e.text()===t?n:t),m(this).closest(".merchant-module-page-setting-field").find(".merchant-module-page-setting-field-hidden-desc").stop(!0,!0).slideToggle("fast")});({init:function(){this.events()},events:function(){m(p).on("click","#download-backup-button",this.download.bind(this)),m(p).on("click","#restore-backup-button",this.restore.bind(this)),m(p).on("change","#merchant-backup-file",this.removeBackupFile.bind(this))},download:function(e){var a=this,i=(e.preventDefault(),m(".merchant-module-page-setting-fields .backup-section")),o=(a.hideError(i),m(e.target).attr("data-module-id"));m.ajax({url:merchant_admin_options.ajaxurl,type:"GET",data:{action:"merchant_get_module_settings",nonce:merchant_admin_options.ajaxnonce,module_id:o},beforeSend:function(){a.showLoadingIndicator(i)},success:function(e){var t,n;e.success?(t=e.data,n="merchant-"+o+"-backup-"+(new Date).toISOString().slice(0,10)+"-"+(new Date).getHours()+"-"+(new Date).getMinutes()+"-"+(new Date).getSeconds()+".json",a.downloadJson(t,n)):a.displayError(e.data.message,i),a.hideLoadingIndicator(i)},error:function(e,t,n){a.displayError(n,i),a.hideLoadingIndicator(i)}})},restore:function(e){var t,a=this,i=(e.preventDefault(),m(".merchant-module-page-setting-fields .restore-section")),n=(a.hideError(i),m(e.target).attr("data-module-id")),e=m(".merchant-backup-file").prop("files")[0];e&&"application/json"===e.type?((t=new FileReader).onload=function(e){e=e.target.result;m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_restore_module_settings",nonce:merchant_admin_options.ajaxnonce,module_id:n,module_settings:e},beforeSend:function(){a.showLoadingIndicator(i)},success:function(e){e.success?u.location.href=e.data.redirect_url:a.displayError(e.data.message,i),a.hideLoadingIndicator(i)},error:function(e,t,n){a.displayError(n,i),a.hideLoadingIndicator(i)}})},t.readAsText(e)):a.displayError(merchant_admin_options.invalid_file,i)},removeBackupFile:function(e){var t,n=m(e.target);n.length&&(e=m(".backup-file-remove"),0<(null==(t=n[0])?void 0:t.files.length)?e.show():e.hide(),e.on("click",function(){n.val(""),m(this).hide()}))},downloadJson:function(e,t){"object"===_typeof(e)&&(e=JSON.stringify(e));var e=new Blob([e],{type:"application/json"}),e=URL.createObjectURL(e),n=p.createElement("a");n.href=e,n.download=t,n.click(),URL.revokeObjectURL(e)},displayError:function(e,t){t.append('<div class="error-message"><p>'.concat(e,"</p></div>"))},hideError:function(e){e.find(".error-message").remove()},showLoadingIndicator:function(e){e.find(".merchant-loading-spinner").addClass("show")},hideLoadingIndicator:function(e){e.find(".merchant-loading-spinner").removeClass("show")}}).init();e={init:function(e){this.events()},events:function(){m(p).on("click",".merchant-flexible-content .merchant-toggle-switch .toggle-switch-label span",function(){var e=m(this).closest(".merchant-toggle-switch").find(".toggle-switch-checkbox");e.prop("checked",!e.prop("checked"))}).trigger("merchant.change")}};({init:function(){this.initiate_datepicker(),this.events()},initiate_datepicker:function(){var e=m(".merchant-module-page-setting-field .merchant-datetime-field");0!==e.length&&e.each(function(n){var a=m(this).find("input"),i={locale:JSON.parse(merchant_datepicker_locale),selectedDates:[a.val()?new Date(a.val()):""],onSelect:function(e){e.date;var t=e.formattedDate;void 0===t&&(e.datepicker.$el.value=""),a.trigger("change.merchant"),a.trigger("change.merchant-datepicker",[t,a,i,n])}},e=m(this).data("options"),e=(e.buttons=["clear"],e&&(e.minDate!==f&&"today"===e.minDate&&(e.minDate=new Date,e.timeZone!==f)&&""!==e.timeZone&&(e.minDate=new Date(e.minDate.toLocaleString("en-US",{timeZone:e.timeZone}))),i=Object.assign(i,e)),new AirDatepicker(a.getPath(),i));a.attr("readonly",!0),m(p).trigger("initiated.merchant-datepicker",[e,a,i,n])})},events:function(){var e=this;m(p).on("merchant-flexible-content-added",function(){e.initiate_datepicker()})}}).init();({init:function(e){this.events()},events:function(){var n=this;m(".merchant-sortable").each(function(){var e=m(this),t=e.find(".merchant-sortable-input");m(e.find("ul.merchant-sortable-list").first()).sortable({update:function(){t.val(n.sortableGetNewVal(e)).trigger("change.merchant")}}).disableSelection().find("li").each(function(){m(this).find("i.visibility").click(function(){m(this).toggleClass("dashicons-visibility-faint").parents("li:eq(0)").toggleClass("invisible")})}).click(function(){m(event.target).hasClass("dashicons-visibility")&&t.val(n.sortableGetNewVal(e)).trigger("change.merchant")})})},sortableGetNewVal:function(e){var e=m(e.find("li")),t=[];return _.each(e,function(e){m(e).hasClass("invisible")||t.push(m(e).data("value"))}),JSON.stringify(t)}}).init(),e.init(),m(p).on("merchant-flexible-content-added",function(e,t){t=t.find(".merchant-sortable-repeater-control").find(".merchant-sortable-repeater.sortable");c.makeFieldsSortable(t)});var r,c={init:function(e){var a=this;m(".merchant-sortable-repeater-control").each(function(){var e=JSON.parse(m(this).find(".merchant-sortable-repeater-input").val()),t=e.length;if(0<t&&(m(this).find(".repeater-input").val(e[0]),1<t))for(var n=1;n<t;++n)a.appendRow(m(this),e[n])}),this.events()},events:function(){var t=this;m(p).on("click",".merchant-sortable-repeater.sortable .customize-control-sortable-repeater-delete",function(e){e.preventDefault(),m(this).parent().slideUp("fast",function(){var e=m(this).parent().parent();m(this).remove(),t.getAllInputs(e)}),m(p).trigger("merchant-sortable-repeater-item-deleted")}),m(p).on("click",".customize-control-sortable-repeater-add",function(e){e.preventDefault(),t.appendRow(m(this).parent()),t.getAllInputs(m(this).parent())}),m(p).on("change",".merchant-sortable-repeater.sortable",function(){t.getAllInputs(m(this).parent())}),m(p).on("focusout",".merchant-sortable-repeater.sortable .repeater-input",function(){t.getAllInputs(m(this).parent())})},appendRow:function(e){var t='<div class="repeater" style="display:none"><input type="text" value="'+(1<arguments.length&&arguments[1]!==f?arguments[1]:"")+'" class="repeater-input" /><span class="dashicons dashicons-menu"></span><a class="customize-control-sortable-repeater-delete" href="#"><span class="dashicons dashicons-no-alt"></span></a></div>',t=(e.find(".sortable").append(t),e.find(".sortable").find(".repeater:last"));t.slideDown("slow",function(){m(this).find("input").focus()}),this.makeFieldsSortable(e.find(".sortable")),m(p).trigger("merchant-sortable-repeater-item-added",[t,e.find(".sortable")])},makeFieldsSortable:function(n){n.hasClass("disable-sorting")||n.sortable({update:function(e,t){c.getAllInputs(n.parent())}})},getAllInputs:function(e){var t=e.find(".repeater-input").map(function(){return m(this).val()}).toArray();t.length||t.push(""),e.find(".merchant-sortable-repeater-input").val(JSON.stringify(t)),e.find(".merchant-sortable-repeater-input").trigger("change"),e.find(".merchant-sortable-repeater-input").trigger("sortable.repeater.change")}},s=(c.init(),{init:function(){this.initAccordion(),this.initFlag()},initAccordion:function(){m(".merchant-group-field.has-accordion").each(function(){var e=m(this);e.accordion({collapsible:!0,header:"> .title-area",heightStyle:"content",active:!!e.hasClass("open")&&0})})},initFlag:function(){m(".merchant-group-field.has-flag").each(function(){var e=m(this),t=e.data("id"),t=e.find(".merchant-field-".concat(t,"_status select")),n=t.val(),t=t.find("option:selected").text();e.find(".field-status").removeClass("hidden active inactive").text(t).addClass(n)})}}),e={accordion:null,activePopupContainer:null,init:function(){this.initAccordion(),this.events(),this.makeSelectedReviewsSortable(m(".merchant-reviews-selector").not(".layouts .merchant-reviews-selector"))},events:function(){var n=this;m(p).on("input",".merchant-reviews-selector .products-search",n.ajaxSearch.bind(n)),m(p).on("change",'.merchant-reviews-selector .product-review input[type="checkbox"]',n.toggleReview.bind(n)),m(p).on("click",".merchant-reviews-selector .review-photo img",n.requestReviewImages.bind(n)),m(p).on("click",".review-photos-popup .overlay",n.dismissImagesGallery.bind(n)),m(p).on("click",".merchant-reviews-selector .product-reviews-load-more button",n.loadMoreReviews.bind(n)),m(p).on("click",".merchant-reviews-selector .popup-trigger",n.initPopUp.bind(n)),m(p).on("click",".merchant-reviews-selector .popup-header .close, .merchant-reviews-selector > .overlay",n.dismissPopUp.bind(n)),m(p).on("click",".merchant-reviews-selector .product-review-delete",n.deleteSelectedReview.bind(n)),m(p).on("keyup",function(e){"Escape"!==e.key||n.dismissImagesGallery()||n.dismissPopUp(n)}),m(p).on("merchant-flexible-content-added",function(e,t){n.makeSelectedReviewsSortable(),n.initAccordion()})},makeSelectedReviewsSortable:function(){var e=0<arguments.length&&arguments[0]!==f?arguments[0]:m(p).find(".merchant-reviews-selector").not(".layouts .merchant-reviews-selector"),n=this;e.find(".selected-reviews .product-reviews").sortable({axis:"y",cursor:"move",helper:"original",handle:".product-review-move",cancel:"",placeholder:"placeholder",update:function(e,t){t=t.item.closest(".merchant-reviews-selector");n.saveModifications(t)},start:function(e,t){t.placeholder.height(t.item.height())}})},deleteSelectedReview:function(e){var e=m(e.target).closest(".product-review"),t=e.closest(".merchant-reviews-selector");e.remove(),this.saveModifications(t),this.updateSelectedReviewsCheckboxState(t),this.countSelectedReviewsInProduct(t)},ajaxSearch:function(e){var t=this,e=m(e.target),n=e.closest(".merchant-reviews-selector"),a=n.find(".popup-header");(0===e.val().length||3<=e.val().length)&&m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_search_reviews",search:e.val(),nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){a.addClass("loading"),t.destroyAccordion(n)},success:function(e){e.success?(a.removeClass("popup-error"),n.find(".products-search-results").html(e.data),t.initAccordion(n)):a.addClass("popup-error")},complete:function(){a.removeClass("loading")},error:function(){a.addClass("popup-error")}})},loadMoreReviews:function(e){var t=this,n=m(e.target).closest(".product-item"),e=n.find(".product-review").length;m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_load_more_reviews",product_id:n.attr("data-id"),offset:e,nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){n.addClass("loading")},success:function(e){e.success&&(n.find(".product-reviews .reviews-wrapper").append(e.data.reviews),""===e.data.load_more&&t.hideLoadMoreButton(n),t.updateSelectedReviewsCheckboxState(n.closest(".merchant-reviews-selector")),t.countSelectedReviewsInProduct(n.closest(".merchant-reviews-selector")))},complete:function(){n.removeClass("loading")}})},hideLoadMoreButton:function(e){e.find(".product-reviews-load-more").remove()},initPopUp:function(e){var e=m(e.target).closest(".merchant-reviews-selector"),t=e.find(".selector-popup"),n=e.find(".overlay");t.addClass("active"),n.addClass("active"),this.activePopupContainer=e},dismissPopUp:function(){var e,t=this.activePopupContainer;null!==t&&(e=t.find(".selector-popup"),t=t.find(".overlay"),e.removeClass("active"),t.removeClass("active"),this.activePopupContainer=null)},initAccordion:function(){var e=0<arguments.length&&arguments[0]!==f?arguments[0]:m(p).find(".merchant-reviews-selector"),t=this;e.each(function(){var n=m(this).find(".popup-content .product-item.product-item-has-reviews");n.each(function(){n.accordion({collapsible:!0,heightStyle:"content",icons:!1,active:!!n.hasClass("opened")&&0,activate:function(e,t){t.newPanel.length?t.newPanel.parent().addClass("opened"):n.removeClass("opened")}})}),n.find("a").on("click",function(e){e.stopPropagation()}),t.updateSelectedReviewsCheckboxState(m(this)),t.countSelectedReviewsInProduct(m(this))})},destroyAccordion:function(e){e.find(".selector-popup .product-item.product-item-has-reviews").each(function(){m(this).hasClass("ui-accordion")&&m(this).accordion("destroy")})},toggleReview:function(e){var t=this,n=m(e.target).prop("checked"),a=m(e.target).closest(".merchant-reviews-selector"),e=m(e.target).closest(".product-review"),i=e.attr("data-id"),o=a.find(".selected-reviews .product-reviews"),i=o.find('.product-review[data-id="'.concat(i,'"]'));n?0===i.length&&(n=e.clone(),o.append(n),t.makeSelectedReviewsSortable()):i.remove(),setTimeout(function(){t.saveModifications(a)},150)},saveModifications:function(e){var t=e.find(".review-saved-ids"),n=e.find(".selected-reviews .product-reviews").find(".product-review"),a=[];n.each(function(){var e=m(this).attr("data-id");a.push(e)}),t.val(a.join(",")),t.trigger("change"),this.updateSelectedReviewsCheckboxState(e),this.countSelectedReviewsInProduct(e)},updateSelectedReviewsCheckboxState:function(n){var e=n.find(".selector-popup"),t=n.find(".review-saved-ids"),e=e.find(".product-review"),a=t.val().split(",");e.each(function(){var e=m(this).attr("data-id"),t=n.find('.product-review[data-id="'.concat(e,'"] input[type="checkbox"]'));a.includes(e)?t.prop("checked",!0):t.prop("checked",!1)})},countSelectedReviewsInProduct:function(e){var t=e.find(".selector-popup .product-item"),n=e.find(".review-saved-ids").val().split(",");t.each(function(){var t=0,e=m(this);e.find(".product-review").each(function(){var e=m(this).attr("data-id");n.includes(e)&&t++}),e.find(".selected-reviews-count .counter").text(t)})},requestReviewImages:function(e){var t=m(e.target).closest(".product-review"),n=m(e.target),e=t.attr("data-id");m.ajax({url:merchant_admin_options.ajaxurl,type:"POST",data:{action:"merchant_get_review_images",review_id:e,nonce:merchant_admin_options.ajaxnonce},beforeSend:function(){n.addClass("loading")},success:function(e){e.success&&(m("body").append(e.data),setTimeout(function(){m("body").find(".review-photos-popup").addClass("active")},300))},complete:function(){n.removeClass("loading")}})},dismissImagesGallery:function(){var e=m("body").find(".review-photos-popup");return!!e.length&&(e.removeClass("active"),setTimeout(function(){e.remove()},300),!0)}};({init:function(e){var i=this;m(".merchant-flexible-content-control").each(function(){var e=m(this).hasClass("has-accordion"),n=m(this).find(".merchant-flexible-content"),t=g.get("campaign_id"),a=0;t&&n.find("input.flexible-id").each(function(e){if(m(this).val()===t)return a=e,!1}),e?n.accordion({active:a,collapsible:!0,header:function(e){return e.find(".layout__inner > .layout-header")},heightStyle:"content"}).sortable({axis:"y",cursor:"move",helper:"original",handle:".customize-control-flexible-content-move",stop:function(e,t){n.trigger("merchant.sorted"),i.refreshNumbers(n),n.accordion("refresh")}}):n.sortable({axis:"y",cursor:"move",helper:"original",handle:".customize-control-flexible-content-move",stop:function(e,t){n.trigger("merchant.sorted"),i.refreshNumbers(n),n.accordion("refresh")}})}),this.updateLayoutTitle(),this.updateDiscountPercentMaxVal(),this.events()},updateLayoutTitle:function(){m(".merchant-flexible-content .layout").each(function(){var e,t=m(this).find(".layout-title[data-title-field]");t.length&&((e=m(this).find(".layout-body .merchant-field-"+t.data("title-field")+" input")).on("change keyup",function(){t.text(m(this).val())}),t.text(e.val()))})},updateDiscountPercentMaxVal:function(){m(".merchant-flexible-content .layout").each(function(){var e=m(this),t=e.find('.merchant-module-page-setting-field[data-id="discount_type"]'),n=e.find('.merchant-module-page-setting-field[data-id="discount_value"]'),e=(n=(n=n.length?n:e.find('.merchant-module-page-setting-field[data-id="discount"]')).length?n:e.find('.merchant-module-page-setting-field[data-id="discount_amount"]'),t.find("input:checked").val());"percentage_discount"===e||"percentage"===e?n.find("input").attr("max",100):n.find("input").removeAttr("max")}),m(".merchant-module-page-setting-fields")},generateUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})},events:function(){var r=this;function n(e){e&&e.length&&e.siblings().find(".layout-actions__inner").slideUp(300)}m(p).on("change",'.merchant-module-page-setting-field[data-id="discount_type"] input',function(){r.updateDiscountPercentMaxVal()}),m(p).on("change","select",function(){var t=m(this).val(),n=m(this).prop("multiple");m(this).find("option").each(function(){var e=m(this).val(),e=n?t.includes(e):e===t;m(this).attr("selected",e)})}),m(".customize-control-flexible-content-add-button").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),1===m(this).parent().find(".customize-control-flexible-content-add-list a").length?m(this).parent().find(".customize-control-flexible-content-add-list a").trigger("click"):m(this).parent().find(".customize-control-flexible-content-add-list").toggleClass("active")}),m(p).on("click",".customize-control-flexible-content-add",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=m(".merchant-flexible-content-control[data-id="+m(this).data("id")+"]"),t=e.find(".layouts"),n=m(this).data("layout"),t=t.find(".layout[data-type="+n+"]").clone(!0),n=e.find(".merchant-flexible-content"),a=n.find(".layout"),e=r.generateUUID(),e=(t.find("input, select, textarea").each(function(){m(this).data("name")&&m(this).attr("name",m(this).data("name").replace("0",a.length)),m(this).is(":checkbox, :radio")&&m(this).attr("checked")&&m(this).prop("checked",!0)}),t.attr("data-layout-id",e),t.find(".layout-count").text(a.length+1),t.find(".flexible-id").val(e),n.append(t),n.removeClass("empty"),m(this).parent().removeClass("active"),t.find(".merchant-module-page-setting-field-upload").length&&l(t.find(".merchant-module-page-setting-field-upload")),t.find(".merchant-module-page-setting-field-select_ajax").length&&d(t.find(".merchant-module-page-setting-field-select_ajax")),m(this).closest(".merchant-flexible-content-control"));e.hasClass("has-accordion")&&(e.find(".merchant-flexible-content").accordion("refresh"),e.find(".merchant-flexible-content").accordion("option","active",-1)),s.init(),m(p).trigger("merchant-flexible-content-added",[t]),o(),r.updateLayoutTitle(),r.updateDiscountPercentMaxVal()}),m(p).on("click",".customize-control-flexible-content-duplicate",function(e){e.preventDefault(),e.stopImmediatePropagation();var t,a,n,e=m(this),i=e.closest(".merchant-flexible-content-control[data-id="+e.data("id")+"]"),o=null==i?void 0:i.find(".merchant-flexible-content");i.length&&o.length&&(e=e.closest(".layout")).length&&(e.find(".layout-actions__inner").hide(),t=e.clone(),o.find(".layout"),a=e.find(".layout-count").text(),n=r.generateUUID(),t.attr("data-layout-id",n),t.find(".flexible-id").val(n),t.find("input, select, textarea").each(function(){var e,t=m(this),n=t.attr("name");n&&(e=n.split("[")[0],n=n.match(/\[(.*?)\]/g))&&1<n.length&&(n[1]="["+a+"]",e="".concat(e).concat(n.join("")),t.attr("name",e))}),t.find("select").each(function(){m(this).hasClass("select2-hidden-accessible")&&(m(this).removeClass("select2-hidden-accessible").removeAttr("data-live-search").removeAttr("data-select2-id").removeAttr("aria-hidden").removeAttr("tabindex"),m(this).nextAll(".select2-container").remove(),m(this).select2())}),t.find(".layout-body").removeAttr("style"),t.hide(),t.insertAfter(e),t.fadeIn(),t.find(".merchant-module-page-setting-field-upload").length&&l(t.find(".merchant-module-page-setting-field-upload")),t.find(".merchant-module-page-setting-field-select_ajax").length&&d(t.find(".merchant-module-page-setting-field-select_ajax")),r.refreshNumbers(o),m(p).trigger("merchant-flexible-content-added",[t]),i.hasClass("has-accordion")&&o.accordion("refresh"),r.updateLayoutTitle(),s.init())}),m(p).on("click",".customize-control-flexible-content-delete",function(e){e.preventDefault();var e=m(this).closest(".layout"),t=e.parent(),t=(e.remove(),0===t.find(".layout").length&&t.addClass("empty"),r.refreshNumbers(t),m(p).trigger("merchant-flexible-content-deleted",[e]),m(this).closest(".merchant-flexible-content-control"));t.hasClass("has-accordion")&&t.find(".merchant-flexible-content").accordion("refresh"),m(p).trigger("change.merchant")}),m(p).on("click",".layout-actions__toggle",function(e){e.preventDefault(),n(m(this).closest(".layout")),m(this).closest(".layout-actions").find(".layout-actions__inner").stop().slideToggle(300)}),m(p).on("click",".layout-header",function(){n(m(this).closest(".layout"))}),m(p).on("merchant-flexible-content-added",function(e,t){n(t)})},refreshNumbers:function(e){e.find(".layout").each(function(e){var t=m(this).find(".layout-count").text(),n=parseInt(t)-1;m(this).find(".layout-count").text(e+1),m(this).find("input, select, textarea").each(function(){m(this).attr("name")&&m(this).attr("name",m(this).attr("name").replace("["+n+"]","[*refreshed*"+e+"]"))})}),e.find(".layout").each(function(e){m(this).find("input, select, textarea").each(function(){var e=m(this).attr("name");e&&m(this).attr("name",e.replace("*refreshed*",""))})}),e.parent().find("input").trigger("change.merchant")}}).init(),s.init(),e.init(),m(p).on("keyup",".merchant-module-page-setting-field-products_selector .merchant-search-field",function(){clearTimeout(r);var e,t,n,a=[],i=(!m(this).closest('[data-id="excluded_products"]').length||"categories"!==(t=(e=m(this).closest(".layout")).find(".merchant-field-rules_to_apply select").val()||e.find(".merchant-field-rules_to_display select").val()||e.find(".merchant-field-display_rules select").val())&&"by_category"!==t||(a=e.find(".merchant-field-category_slugs select").val()||e.find(".merchant-field-product_cats select").val()),m(this).closest(".merchant-products-search-container"));""!==m(this).val()?(i.find(".merchant-searching").addClass("active"),n={action:"merchant_admin_products_search",nonce:merchant_admin_options.ajaxnonce,keyword:m(this).val(),product_types:m(this).data("allowed-types"),ids:i.find(".merchant-selected-products").val(),categories:a},r=setTimeout(function(){m.post(merchant_admin_options.ajaxurl,n,function(e){var t=i.find(".merchant-selections-products-preview");t.show(),t.html(e),i.find(".merchant-searching").removeClass("active")})},250)):i.find(".merchant-selections-products-preview").html("").hide()}),m(p).on("click touch",".merchant-module-page-setting-field-products_selector .merchant-selections-products-preview li",function(){var e=m(this).closest(".merchant-products-search-container"),t=e.find(".merchant-selected-products"),n=t.val(),a="multiple"===e.data("multiple");0<e.find(".merchant-selected-products-preview ul li").length&&!a&&(e.find(".merchant-selected-products-preview ul li").remove(),t.val("").change()),m(this).children(".remove").attr("aria-label","Remove").html("×"),e.find(".merchant-selected-products-preview ul").append(m(this)),e.find(".merchant-selections-products-preview").html("").hide(),e.find(".merchant-search-field").val("").change(),""===n?t.val(m(this).data("id")):(a?((e=n.split(",")).push(m(this).data("id")),t.val(e.join(","))):t.val(m(this).data("id"))).change()}),m(p).on("click touch",".merchant-selected-products-preview .remove",function(){var e=m(this);if(confirm(merchant_admin_options.product_delete_confirmation_message)){var t=e.closest(".merchant-products-search-container").find(".merchant-selected-products"),n=e.parent().data("id"),a=(e.parent().remove(),t.val().split(","));if(0<a.length)for(var i in a)parseInt(a[i])===parseInt(n)&&a.splice(i,1);t.val(a.join(",")).change(),t.trigger("change.merchant")}}),m(p).on("merchant-admin-check-fields merchant-flexible-content-added",function(){m(".merchant-module-page-setting-field").each(function(){var e=m(this);if(e.data("condition")&&e.data("condition").length){var t=e.data("condition"),n=m(this).closest(".layout-body").find('input[name*="'+t[0]+'"],select[name*="'+t[0]+'"]');if((n=n.length?n:m('input[name="merchant['+t[0]+']"],select[name="merchant['+t[0]+']"]')).length){var a,i=!1;switch(t[1]){case"==":"radio"!==n.attr("type")&&"checkbox"!==n.attr("type")||(a=n.parent().find("input:checked")).length&&a.val()===t[2]&&(i=!0),n.is("select")&&n.val()==t[2]&&(i=!0);break;case"any":"radio"!==n.attr("type")&&"checkbox"!==n.attr("type")||(a=n.parent().find("input:checked")).length&&t[2].split("|").includes(a.val())&&(i=!0),n.is("select")&&t[2].split("|").includes(n.val())&&(i=!0)}i?e.removeClass("merchant-hide").addClass("merchant-show"):e.removeClass("merchant-show").addClass("merchant-hide")}}})}).trigger("merchant.change"),m(p).on("merchant-admin-check-fields merchant-flexible-content-added change keyup",function(){m(p).find(".merchant-module-page-setting-field").each(function(){var e=m(this);e.data("conditions")&&(function e(t){var n=1<arguments.length&&arguments[1]!==f&&arguments[1];var a=!1;if("relation"in t){var i=t.relation.toUpperCase();if("OR"===i)for(var o=0;o<t.terms.length;o++){var r=t.terms[o];if(a=e(r,n))return!0}else if("AND"===i){for(var c=0,s=0;s<t.terms.length;s++){var l=t.terms[s];e(l,n)&&c++}c===t.terms.length&&(a=!0)}}else{var d,i="",h=(i="terms"in t?t.terms[0]:t,m('input[name="merchant['+i.field+']"],select[name="merchant['+i.field+']"]')),u=(h.length||0<(d=n.closest(".layout-body")).length&&(h=d.find(".merchant-field-"+i.field).find("input, select")),(h=(h=h.length?h:m('input[name="merchant['+i.field+'][]"],select[name="merchant['+i.field+'][]"]')).length?h:m(".merchant-group-fields-container").find(".merchant-field-"+i.field+' input[name*="'+i.field+'"],.merchant-field-'+i.field+' select[name*="'+i.field+'"]')).val());"checkbox"===h.attr("type")&&(u=h.is(":checked")),"radio"===h.attr("type")&&(u=h.filter(":checked").val()),"checkbox"===h.attr("type")&&1<h.length&&(u=[],h.each(function(){m(this).is(":checked")&&u.push(m(this).val())})),w(u)&&(u=Number(u)),Array.isArray(i.value)&&(i.value=i.value.map(function(e){return w(e)?Number(e):e})),("==="===i.operator&&u===i.value||"!=="===i.operator&&u!==i.value||">"===i.operator&&u>i.value||"<"===i.operator&&u<i.value||">="===i.operator&&u>=i.value||"<="===i.operator&&u<=i.value||"in"===i.operator&&i.value.includes(u)||"!in"===i.operator&&!i.value.includes(u)||"contains"===i.operator&&Array.isArray(u)&&u.includes(i.value)||"!contains"===i.operator&&Array.isArray(u)&&!u.includes(i.value))&&(a=!0)}return a}(e.data("conditions"),e)?e.removeClass("merchant-hide").addClass("merchant-show"):e.removeClass("merchant-show").addClass("merchant-hide"))})}).trigger("merchant.change"),m(p).on("change",".merchant-module-page-setting-field",function(){m(p).trigger("merchant-admin-check-fields")}).trigger("merchant.change"),m(p).trigger("merchant-admin-check-fields"),m(p).on("merchant-admin-check-color-fields merchant-flexible-content-added",function(){m(".merchant-color").each(function(){var n,e=m(this),a=e.find(".merchant-color-picker"),i=e.find(".merchant-color-input"),o=!1;a.off("click").on("click",function(e){e.preventDefault(),e.stopPropagation();var t=m("body,html");t.addClass("merchant-height-auto"),o?n.setColor(i.val()):((n=new Pickr({el:a.get(0),container:"body",theme:"merchant",appClass:"merchant-pcr-app",default:i.val()||a.data("default-color")||"#212121",swatches:["#000000","#F44336","#E91E63","#673AB7","#03A9F4","#8BC34A","#FFEB3B","#FFC107","#FFFFFF"],sliders:"h",useAsButton:!0,components:{hue:!0,preview:!0,opacity:!0,interaction:{input:!0,clear:!0}},i18n:{"btn:clear":"Default"}})).on("change",function(e){e=(1===e.a?(n.setColorRepresentation("HEX"),e.toHEXA()):(n.setColorRepresentation("RGBA"),e.toRGBA())).toString(0);a.css({"background-color":e}),i.val()!==e&&i.val(e).trigger("change.merchant"),m(p).trigger("merchant-color-picker-updated",[e,i])}),n.on("clear",function(){var e=a.data("default-color");e?n.setColor(e):(a.css({"background-color":"white"}),i.val(""))}),n.on("hide",function(){t.removeClass("merchant-height-auto")}),a.data("pickr",n),setTimeout(function(){n.show()},200),o=!0)}),i.on("change keyup",function(){var e=m(this).val();a.css({"background-color":e})})})}),m(p).trigger("merchant-admin-check-color-fields");({init:function(){this.events()},events:function(){var l=this;m(p).on("click",".merchant-create-page-control-button",function(e){e.preventDefault();var t=m(this),n=t.parent().find(".merchant-create-page-control-create-message"),a=t.parent().find(".merchant-create-page-control-success-message"),e=(t.text(),t.data("creating-text")),i=(t.data("created-text"),t.data("page-title")),o=t.data("page-meta-key"),r=t.data("page-meta-value"),c=t.data("option-name"),s=t.data("nonce");if(!i)return!1;m(this).text(e),m(this).attr("disabled",!0),m.ajax({type:"post",url:ajaxurl,data:{action:"merchant_create_page_control",page_title:i,page_meta_key:o,page_meta_value:r,option_name:c,nonce:s},success:function(e){l.ajaxResponseHandler(e,t,a,n)}})})},ajaxResponseHandler:function(e,t,n,a){"success"===e.status&&(e=n.find("a").attr("href").replace("?post=&","?post="+e.page_id+"&"),n.find("a").attr("href",e),n.css("display","block"),a.remove(),t.remove())}}).init(),m(".merchant-module-page-setting-field-gallery").each(function(){var a,i=m(this),e=i.find(".merchant-gallery-button"),o=i.find(".merchant-gallery-input"),r=i.find(".merchant-gallery-images"),t=i.find(".merchant-gallery-remove");r.sortable({helper:"original",update:function(e,t){var n=[];r.find(".merchant-gallery-image").each(function(){n.push(m(this).data("item-id"))}),o.val(n.join(",")).trigger("change")}});t.on("click",function(e){e.preventDefault(),m(this).parent().remove();var t=[];r.find(".merchant-gallery-image").each(function(){t.push(m(this).data("item-id"))}),o.val(t.join(",")).trigger("change")}),e.on("click",function(e){m(this);var t=o.val(),n=t?"edit":"add";e.preventDefault(),void 0!==u.wp&&u.wp.media&&u.wp.media.gallery&&("add"==n?(a=u.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():a=u.wp.media.gallery.edit('[gallery ids="'+t+'"]'),a.on("update",function(e){r.empty();e=e.models.map(function(e){var e=e.toJSON(),t=(e.sizes&&e.sizes.thumbnail&&e.sizes.thumbnail.url?e.sizes.thumbnail:e).url;return r.append('<div class="merchant-gallery-image" data-item-id="'+e.id+'"><i class="merchant-gallery-remove dashicons dashicons-no-alt"></i><img src="'+t+'" /></div>'),e.id});o.val(e.join(",")).trigger("change"),i.find(".merchant-gallery-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove();var t=[];r.find(".merchant-gallery-image").each(function(){t.push(m(this).data("item-id"))}),o.val(t.join(",")).trigger("change")})}))})});var l=function(e){var a,i=e,e=i.find(".merchant-upload-button"),o=i.find(".merchant-upload-input"),r=i.find(".merchant-upload-wrapper");i.find(".merchant-upload-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove(),o.val("").trigger("change")}),e.on("click",function(e){e.preventDefault(),void 0!==u.wp&&u.wp.media&&((a=a||u.wp.media({library:{type:"image"}})).open(),a.on("select",function(){r.empty();var e=a.state().get("selection").first().attributes,t=(e.sizes&&e.sizes.thumbnail&&e.sizes.thumbnail.url?e.sizes.thumbnail:e).url,n=e.sizes?JSON.stringify(e.sizes):"";r.append('<div class="merchant-upload-image" data-sizes=\''+n+'\'><i class="merchant-upload-remove dashicons dashicons-no-alt"></i><img src="'+t+'" /></div>'),o.val(e.id).trigger("change"),i.find(".merchant-upload-button-drag-drop").hide(),i.find(".merchant-upload-remove").on("click",function(e){e.preventDefault(),m(this).parent().remove(),o.val("").trigger("change"),i.find(".merchant-upload-button-drag-drop").show()})}))})},d=(m(".merchant-module-page-setting-field-upload:not(.template)").each(function(){l(m(this))}),jQuery.each(["dragenter","dragover","dragleave","drop"],function(e,t){m(p).on(t,".merchant-upload-button-drag-drop",function(e){e.preventDefault(),e.stopPropagation()})}),m(p).on("dragenter",".merchant-upload-button-drag-drop",function(e){m(this).closest(".merchant-module-page-setting-field-upload").find(".merchant-upload-button").click()}),function(e){var t=e.find("select"),n=t.data("source"),a=u.merchant_admin_options,i={width:"100%",templateSelection:function(e){return e.text.replace(/ -*\s*/g,"").trim()}};"post"!==n&&"product"!==n&&"user"!==n||(i.minimumInputLength=1,i.ajax={url:a.ajaxurl,dataType:"json",delay:250,cache:!0,data:function(e){return{action:"merchant_admin_options_select_ajax",nonce:a.ajaxnonce,term:e.term,source:n}},processResults:function(e,t){return e.success?{results:e.data}:{}}}),t.select2(i),e.find(".select2-selection--multiple").append('<span class="merchant-select2-clear"></span>')}),h=(m(".merchant-module-page-setting-field-select_ajax:not(.template)").each(function(){d(m(this))}),m(".merchant-module-page-settings-responsive").each(function(){var e=m(this),n=e.find(".merchant-module-page-settings-devices button"),a=e.find(".merchant-module-page-settings-device-container");n.on("click",function(e){e.preventDefault();var t=m(this).data("device");n.removeClass("active"),a.removeClass("active"),m(this).addClass("active"),a.each(function(){m(this).data("device")===t&&m(this).addClass("active")})})}),m(".merchant-animated-buttons").each(function(){var e,t,n=m(this).find("label"),a=m(".merchant-animation-demo");n.on("click",function(){a.removeClass("merchant-animation-"+e),a.removeClass("merchant-animation-"+t),e=m(this).find("input").attr("value"),setTimeout(function(){a.addClass("merchant-animation-"+e)},100),setTimeout(function(){a.removeClass("merchant-animation-"+e)},1e3)}),n.mouseover(function(){a.removeClass("merchant-animation-"+e),t=m(this).find("input").attr("value"),a.addClass("merchant-animation-"+t)}).mouseout(function(){a.removeClass("merchant-animation-"+t)})}),m(".merchant-notifications-sidebar")),e=(h.length&&(m(".merchant-notifications").on("click",function(e){e.preventDefault();var t=m(this),e=h.find(".merchant-notification:first-child .merchant-notification-date").data("raw-date");h.toggleClass("opened"),t.hasClass("read")||m.post(u.merchant.ajax_url,{action:"merchant_notifications_read",nonce:u.merchant.nonce,latest_notification_date:e},function(e){e.success&&setTimeout(function(){t.addClass("read")},2e3)})}),m(".merchant-notification-content").each(function(){var e=m(this),t=(e.find("span.changelog-fixed").each(function(){m(this).closest("li").remove()}),e.find("li")),n=e.find("li.hidden");t.length===n.length&&e.closest(".merchant-notification").remove()}),m(u).on("scroll",function(){60<u.pageYOffset&&(h.addClass("closing"),setTimeout(function(){h.removeClass("opened"),h.removeClass("closing")},300))}),m(".merchant-notifications-sidebar-close").on("click",function(e){e.preventDefault(),h.addClass("closing"),setTimeout(function(){h.removeClass("opened"),h.removeClass("closing")},300)})),m(".merchant-tabs-nav")),t=(e.length&&e.each(function(){var n=m(this).data("tab-wrapper-id");m(this).find(".merchant-tabs-nav-link").on("click",function(e){e.preventDefault();var e=m(this).closest(".merchant-tabs-nav").find(".merchant-tabs-nav-link"),t=m(this).data("tab-to"),e=(e.each(function(){m(this).closest(".merchant-tabs-nav-item").removeClass("active")}),m(this).closest(".merchant-tabs-nav-item").addClass("active"),m('.merchant-tab-content-wrapper[data-tab-wrapper-id="'+n+'"]'));e.find("> .merchant-tab-content").removeClass("active"),e.find('> .merchant-tab-content[data-tab-content-id="'+t+'"]').addClass("active")})}),m(".merchant-module-alert"));t.length&&t.find(".merchant-module-alert-close").on("click",function(e){e.preventDefault(),t.removeClass("merchant-show"),m(p).off("click.merchant-alert-close")})})})(jQuery,window,document),jQuery.fn.extend({getPath:function(){var c=[];return this.each(function(e,t){for(var n,a=jQuery(t);a.length;){var i=a.get(0);if(!(o=i.localName))break;var o=o.toLowerCase(),r=a.parent();1<r.children(o).length&&0<(e=r.children().index(i)+1)&&(o+=":nth-child("+e+")"),n=o+(n?" > "+n:""),a=r}c.push(n)}),c.join(",")}}); -
merchant/trunk/assets/js/admin/merchant-metabox.js
r3003440 r3458319 6 6 7 7 $.fn.merchantMetabox = function () { 8 function initSelectMultiple($container) { 9 var $selectMultiple = $container.find('.merchant-metabox-field-select select[multiple]'); 10 if ($selectMultiple.length) { 11 $selectMultiple.select2({ 12 width: '100%' 13 }); 14 $selectMultiple.each(function () { 15 var $select = $(this); 16 if ($select.next('.select2-container').find('.select2-selection--multiple').length) { 17 $select.next('.select2-container').find('.select2-selection--multiple').append('<span class="merchant-select2-clear"></span>'); 18 } 19 }); 20 } 21 } 22 function initMerchantRange($container) { 23 var $rangeFields = $container.find('.merchant-range'); 24 if ($rangeFields.length) { 25 $rangeFields.each(function () { 26 var $range = $(this); 27 var $rangeInput = $range.find('.merchant-range-input'); 28 var $numberInput = $range.find('.merchant-range-number-input'); 29 $rangeInput.on('change input merchant.range merchant-init.range', function (e) { 30 var $thisRange = $(this); 31 var value = (e.type === 'merchant' ? $numberInput.val() : $thisRange.val()) || 0; 32 var min = $thisRange.attr('min') || 0; 33 var max = $thisRange.attr('max') || 100; 34 var percentage = (value - min) / (max - min) * 100; 35 if ($('body').hasClass('rtl')) { 36 $thisRange.css({ 37 'background': 'linear-gradient(to left, #3858E9 0%, #3858E9 ' + percentage + '%, #ddd ' + percentage + '%, #ddd 100%)' 38 }); 39 } else { 40 $thisRange.css({ 41 'background': 'linear-gradient(to right, #3858E9 0%, #3858E9 ' + percentage + '%, #ddd ' + percentage + '%, #ddd 100%)' 42 }); 43 } 44 $rangeInput.val(value); 45 $numberInput.val(value); 46 }).trigger('merchant-init.range'); 47 $numberInput.on('change input blur', function () { 48 $rangeInput.val($(this).val()).trigger('merchant.range'); 49 }); 50 }); 51 } 52 } 8 53 function initSelectAjax($selectAjax) { 9 54 $selectAjax.each(function () { … … 118 163 initSelectAjax($selectAjax); 119 164 } 165 initSelectMultiple($item); 120 166 $(this).parent().removeClass('active'); 121 167 $layouts.removeClass('empty'); … … 384 430 initSelectAjax($selectAjax); 385 431 } 432 initSelectMultiple($this); 433 initMerchantRange($this); 386 434 var $attributes = $('.merchant-metabox-field-wc-attributes'); 387 435 if ($attributes.length) { … … 433 481 }); 434 482 } 483 484 // Initialize Date Time Pickers 485 var $dateTimeFields = $contents.find('.merchant-metabox-datetime-field'); 486 if ($dateTimeFields.length) { 487 $dateTimeFields.each(function (index) { 488 var $field = $(this); 489 var $input = $field.find('input'); 490 var fieldOptions = $field.data('options') || {}; 491 492 // Base options with event handling 493 var options = { 494 locale: typeof merchant_datepicker_locale !== 'undefined' ? typeof merchant_datepicker_locale === 'string' ? JSON.parse(merchant_datepicker_locale) : merchant_datepicker_locale : {}, 495 selectedDates: [$input.val() ? new Date($input.val()) : ''], 496 onSelect: function onSelect(_ref) { 497 var date = _ref.date, 498 formattedDate = _ref.formattedDate, 499 datepicker = _ref.datepicker; 500 if (typeof formattedDate === "undefined") { 501 // Allow removing date 502 datepicker.$el.value = ''; 503 } 504 $input.trigger('change'); 505 $input.trigger('change.merchant-datepicker', [formattedDate, $input, options, index]); 506 } 507 }; 508 509 // Add default buttons 510 fieldOptions.buttons = ['clear']; 511 512 // Convert 'today' string to actual Date object 513 if (fieldOptions.minDate !== undefined && fieldOptions.minDate === 'today') { 514 fieldOptions.minDate = new Date(); 515 if (fieldOptions.timeZone !== undefined && fieldOptions.timeZone !== '') { 516 fieldOptions.minDate = new Date(fieldOptions.minDate.toLocaleString('en-US', { 517 timeZone: fieldOptions.timeZone 518 })); 519 } 520 } 521 522 // Merge field options with base options 523 options = Object.assign(options, fieldOptions); 524 525 // Initialize datepicker 526 new AirDatepicker($input[0], options); 527 528 // Make input readonly to prevent manual typing 529 $input.attr('readonly', true); 530 }); 531 } 532 $(document).on('click', '.merchant-metabox-color-field .merchant-color-picker', function (e) { 533 e.preventDefault(); 534 e.stopPropagation(); 535 var $picker = $(this); 536 var $field = $picker.closest('.merchant-metabox-color-field'); 537 var $input = $field.find('.merchant-color-input'); 538 var pickr = $picker.data('pickr'); 539 if (!pickr) { 540 try { 541 var $bodyHTML = $('body,html'); 542 $bodyHTML.addClass('merchant-height-auto'); 543 pickr = new Pickr({ 544 el: $picker.get(0), 545 container: $picker.parent().get(0), 546 theme: 'merchant', 547 appClass: 'merchant-pcr-app', 548 default: $input.val() || $picker.data('default-color') || '#212121', 549 swatches: ['#000000', '#F44336', '#E91E63', '#673AB7', '#03A9F4', '#8BC34A', '#FFEB3B', '#FFC107', '#FFFFFF'], 550 sliders: 'h', 551 useAsButton: true, 552 position: 'bottom-start', 553 components: { 554 hue: true, 555 preview: true, 556 opacity: true, 557 interaction: { 558 input: true, 559 clear: true 560 } 561 }, 562 i18n: { 563 'btn:clear': 'Default' 564 } 565 }); 566 pickr.on('change', function (color) { 567 var colorCode; 568 if (color.a === 1) { 569 pickr.setColorRepresentation('HEX'); 570 colorCode = color.toHEXA().toString(0); 571 } else { 572 pickr.setColorRepresentation('RGBA'); 573 colorCode = color.toRGBA().toString(0); 574 } 575 $picker.css({ 576 'background-color': colorCode 577 }); 578 if ($input.val() !== colorCode) { 579 $input.val(colorCode).trigger('change'); 580 } 581 }); 582 pickr.on('clear', function () { 583 var defaultColor = $picker.data('default-color'); 584 if (defaultColor) { 585 pickr.setColor(defaultColor); 586 } else { 587 $picker.css({ 588 'background-color': 'white' 589 }); 590 $input.val(''); 591 } 592 }); 593 pickr.on('hide', function () { 594 $bodyHTML.removeClass('merchant-height-auto'); 595 }); 596 $picker.data('pickr', pickr); 597 setTimeout(function () { 598 pickr.show(); 599 }, 200); 600 } catch (error) { 601 console.error('Error creating Pickr:', error); 602 } 603 } else { 604 pickr.setColor($input.val()); 605 pickr.show(); 606 } 607 }); 608 $(document).on('change keyup', '.merchant-metabox-color-field .merchant-color-input', function () { 609 var $input = $(this); 610 var $picker = $input.siblings('.merchant-color-picker'); 611 var colorCode = $input.val(); 612 $picker.css({ 613 'background-color': colorCode 614 }); 615 }); 616 617 // Enhanced Conditional Logic (conditions attribute) 618 function evaluateConditions(conditions, $field) { 619 var operator = conditions.relation || 'AND'; 620 var results = []; 621 for (var i = 0; i < conditions.terms.length; i++) { 622 var term = conditions.terms[i]; 623 var $target = $contents.find('[name="' + term[0] + '"]'); 624 if (!$target.length) { 625 continue; 626 } 627 var passed = false; 628 var targetValue = null; 629 630 // Get target value based on input type 631 if ($target.attr('type') === 'checkbox') { 632 // For checkboxes/switchers: return '1' if checked, '0' if not 633 targetValue = $target.is(':checked') ? '1' : '0'; 634 } else if ($target.attr('type') === 'radio') { 635 var $checked = $target.filter(':checked'); 636 targetValue = $checked.length ? $checked.val() : ''; 637 } else if ($target.is('select')) { 638 targetValue = $target.val(); 639 } else { 640 targetValue = $target.val(); 641 } 642 643 // Evaluate condition 644 switch (term[1]) { 645 case '==': 646 if (Array.isArray(targetValue)) { 647 passed = targetValue.indexOf(term[2]) !== -1; 648 } else { 649 passed = targetValue == term[2]; 650 } 651 break; 652 case '!=': 653 if (Array.isArray(targetValue)) { 654 passed = targetValue.indexOf(term[2]) === -1; 655 } else { 656 passed = targetValue != term[2]; 657 } 658 break; 659 case 'any': 660 var allowedValues = term[2].split('|'); 661 if (Array.isArray(targetValue)) { 662 passed = targetValue.some(function (val) { 663 return allowedValues.indexOf(val) !== -1; 664 }); 665 } else { 666 passed = allowedValues.indexOf(targetValue) !== -1; 667 } 668 break; 669 case 'not_any': 670 var disallowedValues = term[2].split('|'); 671 if (Array.isArray(targetValue)) { 672 passed = !targetValue.some(function (val) { 673 return disallowedValues.indexOf(val) !== -1; 674 }); 675 } else { 676 passed = disallowedValues.indexOf(targetValue) === -1; 677 } 678 break; 679 } 680 results.push(passed); 681 } 682 683 // Combine results based on operator 684 if (operator === 'OR') { 685 return results.indexOf(true) !== -1; 686 } else { 687 return results.indexOf(false) === -1; 688 } 689 } 690 691 // Check for fields with conditions attribute 692 var $conditionalFields = $contents.find('[data-conditions]'); 693 if ($conditionalFields.length) { 694 var checkConditions = function checkConditions() { 695 $conditionalFields.each(function () { 696 var $field = $(this); 697 var conditions = $field.data('conditions'); 698 if (conditions && conditions.terms) { 699 var passed = evaluateConditions(conditions, $field); 700 if (passed) { 701 $field.removeClass('merchant-metabox-field-hidden'); 702 } else { 703 $field.addClass('merchant-metabox-field-hidden'); 704 } 705 } 706 }); 707 }; 708 709 // Run on load 710 checkConditions(); 711 712 // Bind events 713 $contents.find('input, select, textarea').on('change', checkConditions); 714 } 435 715 }); 436 716 }; -
merchant/trunk/assets/js/admin/merchant-metabox.min.js
r3198417 r3458319 1 ( c=>{c.fn.merchantMetabox=function(){function d(a){a.each(function(){var e=c(this).find("select"),t=e.data("source"),n=window.merchant_metabox;e.select2({width:"100%",minimumInputLength:1,ajax:{url:n.ajaxurl,dataType:"json",delay:250,cache:!0,data:function(e){return{action:"merchant_select_ajax",nonce:n.ajaxnonce,term:e.term,source:t}},processResults:function(e,t){return e.success?{results:e.data}:{}}}}),a.find(".select2-selection--multiple").append('<span class="merchant-select2-clear"></span>')})}return this.each(function(){var e=c(this),t=e.find(".merchant-metabox-tab"),n=e.find(".merchant-metabox-content"),a=(t.each(function(){var t=c(this);t.on("click",function(e){e.preventDefault();e=n.eq(t.index());t.addClass("active").siblings().removeClass("active"),e.addClass("active").siblings().removeClass("active"),c(document).trigger("merchant-metabox-content-show",e)})}),n.find(".merchant-metabox-field-flexible-content")),i=(a.length&&a.each(function(){var i=".merchant-metabox-field-flexible-content-select-ajax",l=c(i),n=(l.length&&d(l),c(this).find(".merchant-metabox-field-flexible-content-list"));n.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-flexible-content-move",stop:function(e,t){n.find("> li").each(function(e){var t=".merchant-metabox-field-flexible-content-item-count",n=c(this).find(t).text(),a=parseInt(n)-1;c(this).find(t).text(e),c(this).find("input, select").each(function(){c(this).attr("name")&&c(this).attr("name",c(this).attr("name").replace("["+a+"]","["+(e-1)+"]"))})})}}),a.find(".merchant-metabox-field-flexible-content-add-button").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),c(this).parent().find(".merchant-metabox-field-flexible-content-add-list").toggleClass("active")}),a.find(".merchant-metabox-field-flexible-content-add").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=c(".merchant-metabox-field-flexible-content-list[data-id="+c(this).data("id")+"]"),t=c(this).data("layout"),n=e.find("> li"),a=e.find("> li").first().clone(!0);a.find(" > div").each(function(){c(this).data("layout")!==t||c(this).children().appendTo(c(this).parent()),c(this).remove()}),a.find("input, select").each(function(){c(this).data("name")&&c(this).attr("name",c(this).data("name").replace("0",n.length-1))}),a.find(".merchant-metabox-field-flexible-content-item-count").text(n.length),a.find(".merchant-metabox-field-flexible-content-select-ajax-clone").each(function(){c(this).removeClass("merchant-metabox-field-flexible-content-select-ajax-clone"),c(this).addClass("merchant-metabox-field-flexible-content-select-ajax")}),a.removeClass("hidden"),e.append(a),(l=c(i)).length&&d(l),c(this).parent().removeClass("active"),e.removeClass("empty")}),a.find(".merchant-metabox-field-flexible-content-remove").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=c(this).closest("li"),t=e.parent();e.remove(),1===t.find(">li").length&&t.addClass("empty")})}),n.find(".merchant-metabox-field-repeater, .merchant-metabox-field-flexible-content-repeater")),l=(i.length&&i.each(function(){var a=c(this).find("ul");a.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-repeater-move"}),i.find(".merchant-metabox-field-repeater-add").on("click",function(e){e.preventDefault();var t=a.find("li"),e=a.find("li").first().clone(!0),n=e.find("input");e.find(".merchant-metabox-field-repeater-list-item-fields").length?e.find("input").each(function(){c(this).attr("name",c(this).data("name").replace("0",t.length-1))}):n.attr("name",n.data("name")),e.removeClass("hidden"),a.append(e)}),i.find(".merchant-metabox-field-repeater-remove").on("click",function(e){e.preventDefault(),c(this).closest("li").remove()})}),n.find(".merchant-metabox-field-uploads")),o=(l.length&&l.each(function(){var n,a,t=c(this).find("ul");t.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-uploads-move"}),l.find(".merchant-metabox-field-uploads-add").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=c(this).parent().find("ul"),t=e.find("li"),n=t.first().clone(!0);n.find("input").each(function(){c(this).attr("name",c(this).data("name").replace("0",t.length))}),n.removeClass("hidden"),e.append(n)}),l.find(".merchant-metabox-field-uploads-upload").on("click",function(e){e.preventDefault(),(a=c(this).closest("li").find(" > input")).attr("name").length&&(n&&n.options.library.type===t.data("library")?n.open():(n=window.wp.media({library:{type:t.data("library")||"image"}}).open()).on("select",function(){var e=n.state().get("selection").first().toJSON();a.val(e.url)}))}),l.find(".merchant-metabox-field-uploads-thumbnail-upload").on("click",function(e){e.preventDefault(),(a=c(this).parent().find("input")).attr("name").length&&(n&&"image"===n.options.library.type?n.open():(n=window.wp.media({library:{type:"image"}}).open()).on("select",function(){var e=n.state().get("selection").first().toJSON(),t=a.parent();a.val(e.id),t.find("span").hide(),t.find("img").remove(),t.find(".merchant-metabox-field-uploads-thumbnail-remove").show(),t.find(".merchant-metabox-field-uploads-thumbnail-upload").append(c("<img>").attr({src:e.url}))}))}),l.find(".merchant-metabox-field-uploads-thumbnail-remove").on("click",function(e){e.preventDefault();e=c(this).parent();e.find("span").show(),e.find("img").remove(),e.find("input").val(""),e.find(".merchant-metabox-field-uploads-thumbnail-remove").hide()}),l.find(".merchant-metabox-field-uploads-remove").on("click",function(e){e.preventDefault(),c(this).closest("li").remove()})}),n.find(".merchant-metabox-field-size-chart")),e=(o.length&&(o.on("multidimensional",function(e,t){(t||o).find("input").each(function(){var e=c(this),t=Math.max(0,e.closest("li").index()-1),n=Math.max(0,e.closest("tr").index()-1),e=Math.max(0,e.closest("td").index());this.name=this.name.replace(/(\[\d+\])\[sizes\](\[\d+\])(\[\d+\])/,"["+t+"][sizes]["+n+"]["+e+"]"),this.name=this.name.replace(/(\[\d+\])\[name\]/,"["+t+"][name]")})}),o.each(function(){var t=c(this).find("ul");o.on("click",".merchant-add",function(e){e.preventDefault();e=t.find("li").first().clone(!0);e.find("input").each(function(){c(this).attr("name",c(this).data("name")),c(this).removeAttr("data-name")}),e.removeClass("hidden"),t.append(e),o.trigger("multidimensional",[e])}),o.on("click",".merchant-add-col",function(e){e.preventDefault();var e=c(this).closest("td"),t=c(this).closest("table");c(this).closest("tbody").find("tr td:nth-child("+(e.index()+1)+")").each(function(){var e=c(this),t=e.clone(!0);t.find("input").val(""),e.after(t)}),o.trigger("multidimensional",[t])}),o.on("click",".merchant-del-col",function(e){e.preventDefault();var e=c(this).closest("td"),t=c(this).closest("table"),n=c(this).closest("tr").find("td").length,e=c(this).closest("tbody").find("tr td:nth-child("+(e.index()+1)+")");2<n?e.remove():e.find("input").val(""),o.trigger("multidimensional",[t])}),o.on("click",".merchant-add-row",function(e){e.preventDefault();var e=c(this).closest("tr"),t=c(this).closest("table"),n=e.clone(!0);n.find("input").val(""),e.after(n),o.trigger("multidimensional",[t])}),o.on("click",".merchant-del-row",function(e){e.preventDefault();var e=c(this).closest("tr"),t=c(this).closest("table");2<c(this).closest("tbody").find("tr").length?e.remove():e.find("input").val(""),o.trigger("multidimensional",[t])}),o.on("click",".merchant-remove",function(e){e.preventDefault(),c(this).closest("li").remove(),o.trigger("multidimensional")}),o.on("click",".merchant-duplicate",function(e){e.preventDefault();var e=c(this).closest("li"),t=e.clone(!0);e.after(t),o.trigger("multidimensional")})})),c(".merchant-metabox-field-media")),t=(e.length&&e.each(function(){var n,e=c(this),a=e.find(".merchant-metabox-field-media-input"),i=e.find(".merchant-metabox-field-media-preview img"),t=e.find(".merchant-metabox-field-media-upload"),l=e.find(".merchant-metabox-field-media-remove"),o=i.data("placeholder");t.on("click",function(e){e.preventDefault(),n||(n=window.wp.media({library:{type:"image"}})).on("select",function(){var e=n.state().get("selection").first().toJSON(),t=(e&&e.sizes&&e.sizes.thumbnail?e.sizes.thumbnail:e).url;a.val(e.id),i.attr("src",t),l.removeClass("hidden")}),n.open()}),l.on("click",function(e){e.preventDefault(),a.val(""),i.attr("src",o),l.addClass("hidden")})}),c(".merchant-metabox-field-select-ajax")),e=(t.length&&d(t),c(".merchant-metabox-field-wc-attributes")),t=(e.length&&e.each(function(){c(this).find("ul").sortable({axis:"y",cursor:"move",helper:"original"})}),c(document).on("merchant-metabox-content-show",function(e,t){var n,t=c(t);t.data("code-editor-initalized")||((n=c(".merchant-metabox-field-code-editor",t)).length&&n.each(function(){var e=c(this).find("textarea"),t=wp.codeEditor.defaultSettings||{};t.codemirror=_.extend({},t.codemirror,{gutters:[]}),wp.codeEditor.initialize(e,t).codemirror.on("keyup",function(e){e.save()})}),t.data("code-editor-initalized",!0))}),n.find("[data-depend-on]"));t.length&&t.each(function(){var t=c(this),e=n.find('[name="'+t.data("depend-on")+'"]');e.data("depend-on")||(e.on("change",function(){var e=n.find('[data-depend-on="'+t.data("depend-on")+'"]');c(this).is(":checked")?e.removeClass("merchant-metabox-field-hidden"):e.addClass("merchant-metabox-field-hidden")}),e.data("depend-on",!0))})})},c(document).ready(function(e){e(".merchant-metabox").merchantMetabox()})})(jQuery);1 (d=>{d.fn.merchantMetabox=function(){function l(e){e=e.find(".merchant-metabox-field-select select[multiple]");e.length&&(e.select2({width:"100%"}),e.each(function(){var e=d(this);e.next(".select2-container").find(".select2-selection--multiple").length&&e.next(".select2-container").find(".select2-selection--multiple").append('<span class="merchant-select2-clear"></span>')}))}function c(a){a.each(function(){var e=d(this).find("select"),t=e.data("source"),n=window.merchant_metabox;e.select2({width:"100%",minimumInputLength:1,ajax:{url:n.ajaxurl,dataType:"json",delay:250,cache:!0,data:function(e){return{action:"merchant_select_ajax",nonce:n.ajaxnonce,term:e.term,source:t}},processResults:function(e,t){return e.success?{results:e.data}:{}}}}),a.find(".select2-selection--multiple").append('<span class="merchant-select2-clear"></span>')})}return this.each(function(){var e=d(this),t=e.find(".merchant-metabox-tab"),m=e.find(".merchant-metabox-content"),a=(t.each(function(){var t=d(this);t.on("click",function(e){e.preventDefault();e=m.eq(t.index());t.addClass("active").siblings().removeClass("active"),e.addClass("active").siblings().removeClass("active"),d(document).trigger("merchant-metabox-content-show",e)})}),m.find(".merchant-metabox-field-flexible-content")),n=(a.length&&a.each(function(){var i=".merchant-metabox-field-flexible-content-select-ajax",o=d(i),n=(o.length&&c(o),d(this).find(".merchant-metabox-field-flexible-content-list"));n.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-flexible-content-move",stop:function(e,t){n.find("> li").each(function(e){var t=".merchant-metabox-field-flexible-content-item-count",n=d(this).find(t).text(),a=parseInt(n)-1;d(this).find(t).text(e),d(this).find("input, select").each(function(){d(this).attr("name")&&d(this).attr("name",d(this).attr("name").replace("["+a+"]","["+(e-1)+"]"))})})}}),a.find(".merchant-metabox-field-flexible-content-add-button").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation(),d(this).parent().find(".merchant-metabox-field-flexible-content-add-list").toggleClass("active")}),a.find(".merchant-metabox-field-flexible-content-add").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=d(".merchant-metabox-field-flexible-content-list[data-id="+d(this).data("id")+"]"),t=d(this).data("layout"),n=e.find("> li"),a=e.find("> li").first().clone(!0);a.find(" > div").each(function(){d(this).data("layout")!==t||d(this).children().appendTo(d(this).parent()),d(this).remove()}),a.find("input, select").each(function(){d(this).data("name")&&d(this).attr("name",d(this).data("name").replace("0",n.length-1))}),a.find(".merchant-metabox-field-flexible-content-item-count").text(n.length),a.find(".merchant-metabox-field-flexible-content-select-ajax-clone").each(function(){d(this).removeClass("merchant-metabox-field-flexible-content-select-ajax-clone"),d(this).addClass("merchant-metabox-field-flexible-content-select-ajax")}),a.removeClass("hidden"),e.append(a),(o=d(i)).length&&c(o),l(a),d(this).parent().removeClass("active"),e.removeClass("empty")}),a.find(".merchant-metabox-field-flexible-content-remove").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=d(this).closest("li"),t=e.parent();e.remove(),1===t.find(">li").length&&t.addClass("empty")})}),m.find(".merchant-metabox-field-repeater, .merchant-metabox-field-flexible-content-repeater")),i=(n.length&&n.each(function(){var a=d(this).find("ul");a.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-repeater-move"}),n.find(".merchant-metabox-field-repeater-add").on("click",function(e){e.preventDefault();var t=a.find("li"),e=a.find("li").first().clone(!0),n=e.find("input");e.find(".merchant-metabox-field-repeater-list-item-fields").length?e.find("input").each(function(){d(this).attr("name",d(this).data("name").replace("0",t.length-1))}):n.attr("name",n.data("name")),e.removeClass("hidden"),a.append(e)}),n.find(".merchant-metabox-field-repeater-remove").on("click",function(e){e.preventDefault(),d(this).closest("li").remove()})}),m.find(".merchant-metabox-field-uploads")),o=(i.length&&i.each(function(){var n,a,t=d(this).find("ul");t.sortable({axis:"y",cursor:"move",helper:"original",handle:".merchant-metabox-field-uploads-move"}),i.find(".merchant-metabox-field-uploads-add").on("click",function(e){e.preventDefault(),e.stopImmediatePropagation();var e=d(this).parent().find("ul"),t=e.find("li"),n=t.first().clone(!0);n.find("input").each(function(){d(this).attr("name",d(this).data("name").replace("0",t.length))}),n.removeClass("hidden"),e.append(n)}),i.find(".merchant-metabox-field-uploads-upload").on("click",function(e){e.preventDefault(),(a=d(this).closest("li").find(" > input")).attr("name").length&&(n&&n.options.library.type===t.data("library")?n.open():(n=window.wp.media({library:{type:t.data("library")||"image"}}).open()).on("select",function(){var e=n.state().get("selection").first().toJSON();a.val(e.url)}))}),i.find(".merchant-metabox-field-uploads-thumbnail-upload").on("click",function(e){e.preventDefault(),(a=d(this).parent().find("input")).attr("name").length&&(n&&"image"===n.options.library.type?n.open():(n=window.wp.media({library:{type:"image"}}).open()).on("select",function(){var e=n.state().get("selection").first().toJSON(),t=a.parent();a.val(e.id),t.find("span").hide(),t.find("img").remove(),t.find(".merchant-metabox-field-uploads-thumbnail-remove").show(),t.find(".merchant-metabox-field-uploads-thumbnail-upload").append(d("<img>").attr({src:e.url}))}))}),i.find(".merchant-metabox-field-uploads-thumbnail-remove").on("click",function(e){e.preventDefault();e=d(this).parent();e.find("span").show(),e.find("img").remove(),e.find("input").val(""),e.find(".merchant-metabox-field-uploads-thumbnail-remove").hide()}),i.find(".merchant-metabox-field-uploads-remove").on("click",function(e){e.preventDefault(),d(this).closest("li").remove()})}),m.find(".merchant-metabox-field-size-chart")),t=(o.length&&(o.on("multidimensional",function(e,t){(t||o).find("input").each(function(){var e=d(this),t=Math.max(0,e.closest("li").index()-1),n=Math.max(0,e.closest("tr").index()-1),e=Math.max(0,e.closest("td").index());this.name=this.name.replace(/(\[\d+\])\[sizes\](\[\d+\])(\[\d+\])/,"["+t+"][sizes]["+n+"]["+e+"]"),this.name=this.name.replace(/(\[\d+\])\[name\]/,"["+t+"][name]")})}),o.each(function(){var t=d(this).find("ul");o.on("click",".merchant-add",function(e){e.preventDefault();e=t.find("li").first().clone(!0);e.find("input").each(function(){d(this).attr("name",d(this).data("name")),d(this).removeAttr("data-name")}),e.removeClass("hidden"),t.append(e),o.trigger("multidimensional",[e])}),o.on("click",".merchant-add-col",function(e){e.preventDefault();var e=d(this).closest("td"),t=d(this).closest("table");d(this).closest("tbody").find("tr td:nth-child("+(e.index()+1)+")").each(function(){var e=d(this),t=e.clone(!0);t.find("input").val(""),e.after(t)}),o.trigger("multidimensional",[t])}),o.on("click",".merchant-del-col",function(e){e.preventDefault();var e=d(this).closest("td"),t=d(this).closest("table"),n=d(this).closest("tr").find("td").length,e=d(this).closest("tbody").find("tr td:nth-child("+(e.index()+1)+")");2<n?e.remove():e.find("input").val(""),o.trigger("multidimensional",[t])}),o.on("click",".merchant-add-row",function(e){e.preventDefault();var e=d(this).closest("tr"),t=d(this).closest("table"),n=e.clone(!0);n.find("input").val(""),e.after(n),o.trigger("multidimensional",[t])}),o.on("click",".merchant-del-row",function(e){e.preventDefault();var e=d(this).closest("tr"),t=d(this).closest("table");2<d(this).closest("tbody").find("tr").length?e.remove():e.find("input").val(""),o.trigger("multidimensional",[t])}),o.on("click",".merchant-remove",function(e){e.preventDefault(),d(this).closest("li").remove(),o.trigger("multidimensional")}),o.on("click",".merchant-duplicate",function(e){e.preventDefault();var e=d(this).closest("li"),t=e.clone(!0);e.after(t),o.trigger("multidimensional")})})),d(".merchant-metabox-field-media")),t=(t.length&&t.each(function(){var n,e=d(this),a=e.find(".merchant-metabox-field-media-input"),i=e.find(".merchant-metabox-field-media-preview img"),t=e.find(".merchant-metabox-field-media-upload"),o=e.find(".merchant-metabox-field-media-remove"),r=i.data("placeholder");t.on("click",function(e){e.preventDefault(),n||(n=window.wp.media({library:{type:"image"}})).on("select",function(){var e=n.state().get("selection").first().toJSON(),t=(e&&e.sizes&&e.sizes.thumbnail?e.sizes.thumbnail:e).url;a.val(e.id),i.attr("src",t),o.removeClass("hidden")}),n.open()}),o.on("click",function(e){e.preventDefault(),a.val(""),i.attr("src",r),o.addClass("hidden")})}),d(".merchant-metabox-field-select-ajax")),e=(t.length&&c(t),l(e),(t=(t=e).find(".merchant-range")).length&&t.each(function(){var e=d(this),a=e.find(".merchant-range-input"),i=e.find(".merchant-range-number-input");a.on("change input merchant.range merchant-init.range",function(e){var t=d(this),e=("merchant"===e.type?i:t).val()||0,n=t.attr("min")||0,n=(e-n)/((t.attr("max")||100)-n)*100;d("body").hasClass("rtl")?t.css({background:"linear-gradient(to left, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}):t.css({background:"linear-gradient(to right, #3858E9 0%, #3858E9 "+n+"%, #ddd "+n+"%, #ddd 100%)"}),a.val(e),i.val(e)}).trigger("merchant-init.range"),i.on("change input blur",function(){a.val(d(this).val()).trigger("merchant.range")})}),d(".merchant-metabox-field-wc-attributes")),t=(e.length&&e.each(function(){d(this).find("ul").sortable({axis:"y",cursor:"move",helper:"original"})}),d(document).on("merchant-metabox-content-show",function(e,t){var n,t=d(t);t.data("code-editor-initalized")||((n=d(".merchant-metabox-field-code-editor",t)).length&&n.each(function(){var e=d(this).find("textarea"),t=wp.codeEditor.defaultSettings||{};t.codemirror=_.extend({},t.codemirror,{gutters:[]}),wp.codeEditor.initialize(e,t).codemirror.on("keyup",function(e){e.save()})}),t.data("code-editor-initalized",!0))}),m.find("[data-depend-on]")),e=(t.length&&t.each(function(){var t=d(this),e=m.find('[name="'+t.data("depend-on")+'"]');e.data("depend-on")||(e.on("change",function(){var e=m.find('[data-depend-on="'+t.data("depend-on")+'"]');d(this).is(":checked")?e.removeClass("merchant-metabox-field-hidden"):e.addClass("merchant-metabox-field-hidden")}),e.data("depend-on",!0))}),m.find(".merchant-metabox-datetime-field"));e.length&&e.each(function(n){var e=d(this),a=e.find("input"),e=e.data("options")||{},i={locale:"undefined"!=typeof merchant_datepicker_locale?"string"==typeof merchant_datepicker_locale?JSON.parse(merchant_datepicker_locale):merchant_datepicker_locale:{},selectedDates:[a.val()?new Date(a.val()):""],onSelect:function(e){e.date;var t=e.formattedDate;void 0===t&&(e.datepicker.$el.value=""),a.trigger("change"),a.trigger("change.merchant-datepicker",[t,a,i,n])}};e.buttons=["clear"],void 0!==e.minDate&&"today"===e.minDate&&(e.minDate=new Date,void 0!==e.timeZone)&&""!==e.timeZone&&(e.minDate=new Date(e.minDate.toLocaleString("en-US",{timeZone:e.timeZone}))),i=Object.assign(i,e),new AirDatepicker(a[0],i),a.attr("readonly",!0)}),d(document).on("click",".merchant-metabox-color-field .merchant-color-picker",function(e){e.preventDefault(),e.stopPropagation();var t=d(this),n=t.closest(".merchant-metabox-color-field").find(".merchant-color-input"),a=t.data("pickr");if(a)a.setColor(n.val()),a.show();else try{var i=d("body,html");i.addClass("merchant-height-auto"),(a=new Pickr({el:t.get(0),container:t.parent().get(0),theme:"merchant",appClass:"merchant-pcr-app",default:n.val()||t.data("default-color")||"#212121",swatches:["#000000","#F44336","#E91E63","#673AB7","#03A9F4","#8BC34A","#FFEB3B","#FFC107","#FFFFFF"],sliders:"h",useAsButton:!0,position:"bottom-start",components:{hue:!0,preview:!0,opacity:!0,interaction:{input:!0,clear:!0}},i18n:{"btn:clear":"Default"}})).on("change",function(e){e=(1===e.a?(a.setColorRepresentation("HEX"),e.toHEXA()):(a.setColorRepresentation("RGBA"),e.toRGBA())).toString(0);t.css({"background-color":e}),n.val()!==e&&n.val(e).trigger("change")}),a.on("clear",function(){var e=t.data("default-color");e?a.setColor(e):(t.css({"background-color":"white"}),n.val(""))}),a.on("hide",function(){i.removeClass("merchant-height-auto")}),t.data("pickr",a),setTimeout(function(){a.show()},200)}catch(e){console.error("Error creating Pickr:",e)}}),d(document).on("change keyup",".merchant-metabox-color-field .merchant-color-input",function(){var e=d(this),t=e.siblings(".merchant-color-picker"),e=e.val();t.css({"background-color":e})});var r=m.find("[data-conditions]");r.length&&((t=function(){r.each(function(){var e=d(this),t=e.data("conditions");t&&t.terms&&((e=>{for(var t=e.relation||"AND",n=[],a=0;a<e.terms.length;a++){var i=e.terms[a],o=m.find('[name="'+i[0]+'"]');if(o.length){var r,l=!1,c=null;switch(c="checkbox"===o.attr("type")?o.is(":checked")?"1":"0":"radio"===o.attr("type")?(r=o.filter(":checked")).length?r.val():"":(o.is("select"),o.val()),i[1]){case"==":l=Array.isArray(c)?-1!==c.indexOf(i[2]):c==i[2];break;case"!=":l=Array.isArray(c)?-1===c.indexOf(i[2]):c!=i[2];break;case"any":var d=i[2].split("|"),l=Array.isArray(c)?c.some(function(e){return-1!==d.indexOf(e)}):-1!==d.indexOf(c);break;case"not_any":var s=i[2].split("|");l=Array.isArray(c)?!c.some(function(e){return-1!==s.indexOf(e)}):-1===s.indexOf(c)}n.push(l)}}return"OR"===t?-1!==n.indexOf(!0):-1===n.indexOf(!1)})(t)?e.removeClass("merchant-metabox-field-hidden"):e.addClass("merchant-metabox-field-hidden"))})})(),m.find("input, select, textarea").on("change",t))})},d(document).ready(function(e){e(".merchant-metabox").merchantMetabox()})})(jQuery); -
merchant/trunk/assets/js/modules/quick-view/quick-view.js
r3389952 r3458319 55 55 window.botiga.qtyButton.init('quick-view'); 56 56 } 57 58 // Initialize AJAX add to cart if enabled. 59 if (window.merchant.setting.ajax_add_to_cart) { 60 self.initAjaxAddToCart($content, $modal); 61 } 57 62 } else { 58 63 $content.html(response.data); … … 78 83 }); 79 84 }); 85 }, 86 /** 87 * Initialize AJAX add to cart handler. 88 * 89 * @param {jQuery} $content The modal content container. 90 * @param {jQuery} $modal The modal container. 91 */ 92 initAjaxAddToCart: function initAjaxAddToCart($content, $modal) { 93 var self = this; 94 95 // Remove any existing handlers to prevent duplicates. 96 $content.off('submit', 'form.cart'); 97 98 // Handle add to cart form submission. 99 $content.on('submit', 'form.cart', function (e) { 100 // Access the native submitter. 101 var submitter = e.originalEvent ? e.originalEvent.submitter : null; 102 var $submitter = $(submitter); 103 var isAddToCart = false; 104 105 // 1. If triggered by Enter key (no submitter), assume Add to Cart (standard behavior) 106 // Note: You can add extra checks here for document.activeElement if you want to be extra safe for "Enter on Buy Now", 107 // but typically Enter in input fields implies the default action (Add to Cart). 108 if (!submitter) { 109 isAddToCart = true; 110 } 111 // 2. Check if submitter is explicitly the "Add to Cart" button 112 // WooCommerce standard Add to Cart usually has name="add-to-cart" or class="single_add_to_cart_button" 113 else if ($submitter.attr('name') === 'add-to-cart' || $submitter.hasClass('single_add_to_cart_button')) { 114 isAddToCart = true; 115 } 116 117 // If it's NOT an Add to Cart action (e.g. it's a Buy Now button), allow default submission 118 if (!isAddToCart) { 119 return; 120 } 121 e.preventDefault(); 122 e.stopImmediatePropagation(); // Prevent other handlers from firing. 123 124 var $form = $(this); 125 var $button = $form.find('button[type="submit"], input[type="submit"]'); 126 var $addToCartButton = $form.find('.single_add_to_cart_button'); 127 128 // Use add to cart button if available, otherwise use first submit button. 129 if (!$addToCartButton.length) { 130 $addToCartButton = $button.first(); 131 } 132 133 // Prevent duplicate submissions. 134 if ($addToCartButton.hasClass('loading') || $addToCartButton.prop('disabled')) { 135 return false; 136 } 137 138 // Get form data. 139 var formData = $form.serializeArray(); 140 var data = { 141 action: 'merchant_quick_view_add_to_cart', 142 nonce: window.merchant.setting.nonce 143 }; 144 145 // Check if this is a grouped product (has quantity fields with array notation like quantity[14]). 146 var isGroupedProduct = false; 147 $.each(formData, function (i, field) { 148 if (field.name && field.name.indexOf('quantity[') === 0) { 149 isGroupedProduct = true; 150 return false; // Break the loop. 151 } 152 }); 153 154 // Convert form data to object, but handle quantity specially. 155 $.each(formData, function (i, field) { 156 // Skip standalone quantity field - we'll handle it separately for non-grouped products. 157 if (field.name === 'quantity') { 158 return; 159 } 160 // Skip add-to-cart field - we'll handle product ID separately. 161 if (field.name === 'add-to-cart') { 162 return; 163 } 164 // For grouped products, quantity[ID] fields are added as-is. 165 // Variation attributes are sent as-is (attribute_pa_color, etc.). 166 data[field.name] = field.value; 167 }); 168 169 // Get product ID - try multiple sources (most reliable first). 170 // 1. Extract from product wrapper div ID (format: product-{id}) - this is always present in the modal. 171 var $productWrapper = $form.closest('[id^="product-"]'); 172 if ($productWrapper.length) { 173 var productIdMatch = $productWrapper.attr('id').match(/product-(\d+)/); 174 if (productIdMatch && productIdMatch[1]) { 175 data.product_id = productIdMatch[1]; 176 } 177 } 178 179 // 2. Try to get it directly from the form input. 180 if (!data.product_id) { 181 var addToCartInput = $form.find('input[name="add-to-cart"]'); 182 if (addToCartInput.length && addToCartInput.val()) { 183 data.product_id = addToCartInput.val(); 184 } 185 } 186 187 // Ensure product_id is set, otherwise we can't proceed. 188 if (!data.product_id) { 189 console.error('Quick View: Could not determine product ID'); 190 return false; 191 } 192 193 // Get variation ID if it's a variable product. 194 if ($form.find('.variations_form').length) { 195 var variationId = $form.find('input[name="variation_id"]').val(); 196 if (variationId) { 197 data.variation_id = parseInt(variationId, 10); 198 } 199 } 200 201 // Get quantity and ensure it's a number (not a string). 202 // Only add standalone quantity for non-grouped products. 203 // Grouped products use quantity[product_id] format which is already in the data object. 204 if (!isGroupedProduct) { 205 delete data.quantity; // Remove if it was included in serialized data. 206 var quantityInput = $form.find('input[name="quantity"]'); 207 var quantity = quantityInput.length ? parseInt(quantityInput.val(), 10) : 1; 208 if (isNaN(quantity) || quantity < 1) { 209 quantity = 1; 210 } 211 data.quantity = quantity; 212 } else { 213 // For grouped products, ensure no standalone quantity field exists. 214 delete data.quantity; 215 } 216 217 // Show loading state. 218 var originalText = $addToCartButton.html(); 219 var originalDisabled = $addToCartButton.prop('disabled'); 220 $addToCartButton.addClass('loading').prop('disabled', true); 221 if ($addToCartButton.is('button')) { 222 $addToCartButton.data('original-text', originalText); 223 $addToCartButton.html('<span class="spinner"></span>'); 224 } 225 226 // Send AJAX request. 227 $.ajax({ 228 type: 'POST', 229 url: window.merchant.setting.ajax_url, 230 data: data, 231 success: function success(response) { 232 self.handleAddToCartSuccess(response, $addToCartButton, originalText, originalDisabled, $content, $modal); 233 }, 234 error: function error(xhr, textStatus, errorThrown) { 235 self.handleAddToCartError(xhr, textStatus, errorThrown, $addToCartButton, originalText, originalDisabled, $content); 236 } 237 }); 238 return false; 239 }); 240 }, 241 /** 242 * Handle successful add to cart response. 243 * 244 * @param {Object} response AJAX response. 245 * @param {jQuery} $button The add to cart button. 246 * @param {string} originalText Original button text. 247 * @param {boolean} originalDisabled Original disabled state. 248 * @param {jQuery} $content The modal content container. 249 * @param {jQuery} $modal The modal container. 250 */ 251 handleAddToCartSuccess: function handleAddToCartSuccess(response, $button, originalText, originalDisabled, $content, $modal) { 252 // Remove loading state. 253 $button.removeClass('loading').prop('disabled', originalDisabled); 254 if ($button.is('button') && $button.data('original-text')) { 255 $button.html($button.data('original-text')); 256 } 257 if (response.success && response.data) { 258 // Update cart fragments. 259 if (response.data.fragments) { 260 $.each(response.data.fragments, function (selector, html) { 261 $(selector).replaceWith(html); 262 }); 263 } 264 265 // Trigger WooCommerce events. 266 $(document.body).trigger('added_to_cart', [response.data.fragments, response.data.cart_hash, $button, 'quick-view']); 267 $(document.body).trigger('wc_fragment_refresh'); 268 269 // Show success message. 270 if (response.data.message) { 271 // Remove existing notices. 272 $content.find('.merchant-quick-view-inner .woocommerce-error, .woocommerce-message, .woocommerce-info').remove(); 273 // trigger event for third party integration 274 $(document).trigger('merchant_quick_view_add_to_cart_success', [response.data.message, $content]); 275 } 276 } else { 277 // Handle unexpected response. 278 this.handleAddToCartError(null, 'error', 'Unexpected response format', $button, originalText, originalDisabled, $content); 279 } 280 }, 281 /** 282 * Handle add to cart error response. 283 * 284 * @param {Object} xhr XMLHttpRequest object. 285 * @param {string} textStatus Status text. 286 * @param {string} errorThrown Error thrown. 287 * @param {jQuery} $button The add to cart button. 288 * @param {string} originalText Original button text. 289 * @param {boolean} originalDisabled Original disabled state. 290 * @param {jQuery} $content The modal content container. 291 */ 292 handleAddToCartError: function handleAddToCartError(xhr, textStatus, errorThrown, $button, originalText, originalDisabled, $content) { 293 // Remove loading state. 294 $button.removeClass('loading').prop('disabled', originalDisabled); 295 if ($button.is('button') && $button.data('original-text')) { 296 $button.html($button.data('original-text')); 297 } 298 299 // Get error message. 300 var errorMessage = ''; 301 if (xhr && xhr.responseJSON && xhr.responseJSON.data && xhr.responseJSON.data.message) { 302 errorMessage = xhr.responseJSON.data.message; 303 } else if (xhr && xhr.responseJSON && xhr.responseJSON.data && xhr.responseJSON.data.notices) { 304 // Extract error from notices. 305 var notices = xhr.responseJSON.data.notices; 306 if (notices.error && notices.error.length > 0) { 307 errorMessage = notices.error[0].notice; 308 } 309 } else { 310 errorMessage = errorThrown || textStatus || 'An error occurred while adding the product to cart.'; 311 } 312 313 // Remove existing notices. 314 $content.find('.woocommerce-error, .woocommerce-message, .woocommerce-info').remove(); 315 316 // Add error message. 317 var $error = $('<div class="woocommerce-error" role="alert"></div>').text(errorMessage); 318 $content.find('form.cart').before($error); 319 320 // Scroll to error if needed. 321 $error[0].scrollIntoView({ 322 behavior: 'smooth', 323 block: 'nearest' 324 }); 80 325 } 81 326 }; -
merchant/trunk/assets/js/modules/quick-view/quick-view.min.js
r3389952 r3458319 1 var merchant=merchant||{};merchant.modules=merchant.modules||{},( o=>{merchant.modules.quickView={init:function(){var t=o(".merchant-quick-view-modal");t.length&&t.each(function(){var e=o(this),n=e.find(".merchant-quick-view-close-button"),a=e.find(".merchant-quick-view-inner"),i=e.find(".merchant-quick-view-content"),t=e.find(".merchant-quick-view-overlay"),c=!1;o(document).on("click",".merchant-quick-view-button",function(t){t.preventDefault(),i.empty(),e.addClass("merchant-show"),e.addClass("merchant-loading"),c=!0,o.post(window.merchant.setting.ajax_url,{action:"merchant_quick_view_content",nonce:window.merchant.setting.nonce,product_id:o(this).data("product-id")},function(t){var n;t.success&&c?(i.html(t.data),a.addClass("merchant-show"),e.removeClass("merchant-loading"),n=i.find(".woocommerce-product-gallery"),wc_single_product_params.zoom_enabled=window.merchant.setting.quick_view_zoom,"function"==typeof o.fn.wc_product_gallery&&n.length&&(n.trigger("wc-product-gallery-before-init",[n.get(0),wc_single_product_params]),wc_single_product_params.flexslider_enabled="1",n.wc_product_gallery(wc_single_product_params),n.trigger("wc-product-gallery-after-init",[n.get(0),wc_single_product_params])),n=i.find(".variations_form"),"function"==typeof o.fn.wc_variation_form&&n.length&&n.each(function(){o(this).wc_variation_form()}),window.botiga&&window.botiga.productSwatch&&window.botiga.productSwatch.init(),window.botiga&&window.botiga.qtyButton&&window.botiga.qtyButton.init("quick-view")):(i.html(t.data),a.addClass("merchant-show"),e.removeClass("merchant-loading")),window.dispatchEvent(new Event("merchant.quickview.ajax.loaded"))}).fail(function(t,n){i.html(n),a.addClass("merchant-show"),e.removeClass("merchant-loading")})}),t.on("click",function(t){t.preventDefault(),n.trigger("click")}),n.on("click",function(t){t.preventDefault(),c=!1,e.removeClass("merchant-show"),a.removeClass("merchant-show")})})}},o(document).ready(function(){merchant.modules.quickView.init()})})(jQuery);1 var merchant=merchant||{};merchant.modules=merchant.modules||{},(u=>{merchant.modules.quickView={init:function(){var i=this,t=u(".merchant-quick-view-modal");t.length&&t.each(function(){var a=u(this),e=a.find(".merchant-quick-view-close-button"),n=a.find(".merchant-quick-view-inner"),o=a.find(".merchant-quick-view-content"),t=a.find(".merchant-quick-view-overlay"),r=!1;u(document).on("click",".merchant-quick-view-button",function(t){t.preventDefault(),o.empty(),a.addClass("merchant-show"),a.addClass("merchant-loading"),r=!0,u.post(window.merchant.setting.ajax_url,{action:"merchant_quick_view_content",nonce:window.merchant.setting.nonce,product_id:u(this).data("product-id")},function(t){var e;t.success&&r?(o.html(t.data),n.addClass("merchant-show"),a.removeClass("merchant-loading"),e=o.find(".woocommerce-product-gallery"),wc_single_product_params.zoom_enabled=window.merchant.setting.quick_view_zoom,"function"==typeof u.fn.wc_product_gallery&&e.length&&(e.trigger("wc-product-gallery-before-init",[e.get(0),wc_single_product_params]),wc_single_product_params.flexslider_enabled="1",e.wc_product_gallery(wc_single_product_params),e.trigger("wc-product-gallery-after-init",[e.get(0),wc_single_product_params])),e=o.find(".variations_form"),"function"==typeof u.fn.wc_variation_form&&e.length&&e.each(function(){u(this).wc_variation_form()}),window.botiga&&window.botiga.productSwatch&&window.botiga.productSwatch.init(),window.botiga&&window.botiga.qtyButton&&window.botiga.qtyButton.init("quick-view"),window.merchant.setting.ajax_add_to_cart&&i.initAjaxAddToCart(o,a)):(o.html(t.data),n.addClass("merchant-show"),a.removeClass("merchant-loading")),window.dispatchEvent(new Event("merchant.quickview.ajax.loaded"))}).fail(function(t,e){o.html(e),n.addClass("merchant-show"),a.removeClass("merchant-loading")})}),t.on("click",function(t){t.preventDefault(),e.trigger("click")}),e.on("click",function(t){t.preventDefault(),r=!1,a.removeClass("merchant-show"),n.removeClass("merchant-show")})})},initAjaxAddToCart:function(s,l){var m=this;s.off("submit","form.cart"),s.on("submit","form.cart",function(t){var n,a,o,r,i,e=t.originalEvent?t.originalEvent.submitter:null,c=u(e),d=!1;if(d=e&&"add-to-cart"!==c.attr("name")&&!c.hasClass("single_add_to_cart_button")?d:!0)return t.preventDefault(),t.stopImmediatePropagation(),c=(e=u(this)).find('button[type="submit"], input[type="submit"]'),(n=(n=e.find(".single_add_to_cart_button")).length?n:c.first()).hasClass("loading")||n.prop("disabled")||(d=e.serializeArray(),a={action:"merchant_quick_view_add_to_cart",nonce:window.merchant.setting.nonce},o=!1,u.each(d,function(t,e){if(e.name&&0===e.name.indexOf("quantity["))return!(o=!0)}),u.each(d,function(t,e){"quantity"!==e.name&&"add-to-cart"!==e.name&&(a[e.name]=e.value)}),(t=e.closest('[id^="product-"]')).length&&(c=t.attr("id").match(/product-(\d+)/))&&c[1]&&(a.product_id=c[1]),a.product_id||(d=e.find('input[name="add-to-cart"]')).length&&d.val()&&(a.product_id=d.val()),a.product_id?(e.find(".variations_form").length&&(t=e.find('input[name="variation_id"]').val())&&(a.variation_id=parseInt(t,10)),o?delete a.quantity:(delete a.quantity,d=(c=e.find('input[name="quantity"]')).length?parseInt(c.val(),10):1,(isNaN(d)||d<1)&&(d=1),a.quantity=d),r=n.html(),i=n.prop("disabled"),n.addClass("loading").prop("disabled",!0),n.is("button")&&(n.data("original-text",r),n.html('<span class="spinner"></span>')),u.ajax({type:"POST",url:window.merchant.setting.ajax_url,data:a,success:function(t){m.handleAddToCartSuccess(t,n,r,i,s,l)},error:function(t,e,a){m.handleAddToCartError(t,e,a,n,r,i,s)}})):console.error("Quick View: Could not determine product ID")),!1})},handleAddToCartSuccess:function(t,e,a,n,o,r){e.removeClass("loading").prop("disabled",n),e.is("button")&&e.data("original-text")&&e.html(e.data("original-text")),t.success&&t.data?(t.data.fragments&&u.each(t.data.fragments,function(t,e){u(t).replaceWith(e)}),u(document.body).trigger("added_to_cart",[t.data.fragments,t.data.cart_hash,e,"quick-view"]),u(document.body).trigger("wc_fragment_refresh"),t.data.message&&(o.find(".merchant-quick-view-inner .woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),u(document).trigger("merchant_quick_view_add_to_cart_success",[t.data.message,o]))):this.handleAddToCartError(null,"error","Unexpected response format",e,a,n,o)},handleAddToCartError:function(t,e,a,n,o,r,i){n.removeClass("loading").prop("disabled",r),n.is("button")&&n.data("original-text")&&n.html(n.data("original-text"));r="",t&&t.responseJSON&&t.responseJSON.data&&t.responseJSON.data.message?r=t.responseJSON.data.message:t&&t.responseJSON&&t.responseJSON.data&&t.responseJSON.data.notices?(n=t.responseJSON.data.notices).error&&0<n.error.length&&(r=n.error[0].notice):r=a||e||"An error occurred while adding the product to cart.",i.find(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove(),t=u('<div class="woocommerce-error" role="alert"></div>').text(r);i.find("form.cart").before(t),t[0].scrollIntoView({behavior:"smooth",block:"nearest"})}},u(document).ready(function(){merchant.modules.quickView.init()})})(jQuery); -
merchant/trunk/inc/classes/class-merchant-metabox.php
r3338013 r3458319 69 69 wp_enqueue_style( 'merchant-select2', MERCHANT_URI . 'assets/vendor/select2/select2.min.css', array(), '4.0.13', 'all' ); 70 70 71 // Enqueue Air Datepicker for date_time fields 72 wp_enqueue_script( 'air-datepicker', MERCHANT_URI . 'assets/vendor/air-datepicker/air-datepicker.js', array( 'jquery' ), '3.4.0', true ); 73 wp_enqueue_style( 'air-datepicker', MERCHANT_URI . 'assets/vendor/air-datepicker/air-datepicker.css', array(), '3.4.0' ); 74 75 // Enqueue Pickr for color fields (CSS is bundled in metabox.min.css) 76 wp_enqueue_script( 'pickr', MERCHANT_URI . 'assets/vendor/pickr/pickr.min.js', array(), '1.8.2', true ); 77 71 78 wp_enqueue_style( 'merchant-metabox-styles', MERCHANT_URI . 'assets/css/admin/metabox.min.css', array(), MERCHANT_VERSION ); 72 wp_enqueue_script( 'merchant-metabox-scripts', MERCHANT_URI . 'assets/js/admin/merchant-metabox.min.js', array( 'jquery', 'jquery-ui-sortable' ), MERCHANT_VERSION, true ); 79 wp_enqueue_script( 'merchant-metabox-scripts', MERCHANT_URI . 'assets/js/admin/merchant-metabox.min.js', array( 'jquery', 'jquery-ui-sortable', 'air-datepicker', 'pickr' ), MERCHANT_VERSION, true ); 80 81 // Localize datepicker 82 $datepicker_locale = array( 83 'days' => array( 84 __( 'Sunday', 'merchant' ), 85 __( 'Monday', 'merchant' ), 86 __( 'Tuesday', 'merchant' ), 87 __( 'Wednesday', 'merchant' ), 88 __( 'Thursday', 'merchant' ), 89 __( 'Friday', 'merchant' ), 90 __( 'Saturday', 'merchant' ), 91 ), 92 'daysShort' => array( 93 __( 'Sun', 'merchant' ), 94 __( 'Mon', 'merchant' ), 95 __( 'Tue', 'merchant' ), 96 __( 'Wed', 'merchant' ), 97 __( 'Thu', 'merchant' ), 98 __( 'Fri', 'merchant' ), 99 __( 'Sat', 'merchant' ), 100 ), 101 'daysMin' => array( 102 __( 'Su', 'merchant' ), 103 __( 'Mo', 'merchant' ), 104 __( 'Tu', 'merchant' ), 105 __( 'We', 'merchant' ), 106 __( 'Th', 'merchant' ), 107 __( 'Fr', 'merchant' ), 108 __( 'Sa', 'merchant' ), 109 ), 110 'months' => array( 111 __( 'January', 'merchant' ), 112 __( 'February', 'merchant' ), 113 __( 'March', 'merchant' ), 114 __( 'April', 'merchant' ), 115 __( 'May', 'merchant' ), 116 __( 'June', 'merchant' ), 117 __( 'July', 'merchant' ), 118 __( 'August', 'merchant' ), 119 __( 'September', 'merchant' ), 120 __( 'October', 'merchant' ), 121 __( 'November', 'merchant' ), 122 __( 'December', 'merchant' ), 123 ), 124 'monthsShort' => array( 125 __( 'Jan', 'merchant' ), 126 __( 'Feb', 'merchant' ), 127 __( 'Mar', 'merchant' ), 128 __( 'Apr', 'merchant' ), 129 __( 'May', 'merchant' ), 130 __( 'Jun', 'merchant' ), 131 __( 'Jul', 'merchant' ), 132 __( 'Aug', 'merchant' ), 133 __( 'Sep', 'merchant' ), 134 __( 'Oct', 'merchant' ), 135 __( 'Nov', 'merchant' ), 136 __( 'Dec', 'merchant' ), 137 ), 138 'today' => __( 'Today', 'merchant' ), 139 'clear' => __( 'Clear', 'merchant' ), 140 ); 73 141 74 142 wp_localize_script( 'merchant-metabox-scripts', 'merchant_metabox', array( … … 76 144 'ajaxnonce' => wp_create_nonce( 'merchant_metabox' ), 77 145 ) ); 146 147 wp_localize_script( 'merchant-metabox-scripts', 'merchant_datepicker_locale', $datepicker_locale ); 78 148 } 79 149 … … 115 185 } 116 186 187 break; 188 189 case 'user': 190 $query = new WP_User_Query( array( 191 'search' => '*' . $term . '*', 192 'search_columns' => array( 'user_login', 'user_email', 'display_name' ), 193 'number' => 25, 194 'orderby' => 'display_name', 195 'order' => 'ASC', 196 'fields' => array( 'ID', 'display_name', 'user_email' ), 197 ) ); 198 $users = $query->get_results(); 199 if ( ! empty( $users ) ) { 200 foreach ( $users as $user ) { 201 $options[] = array( 202 'id' => $user->ID, 203 'text' => $user->display_name . ' (' . $user->user_email . ')', 204 ); 205 } 206 } 117 207 break; 118 208 } … … 305 395 } 306 396 397 // Build data attributes array 398 $data_attrs = array(); 399 400 // Handle old simple dependency (data-depend-on) 307 401 if ( ! empty( $field['depend'] ) ) { 308 402 $depend_meta = get_post_meta( $post->ID, $field['depend'], true ); … … 312 406 } 313 407 314 echo '<div class="' . esc_attr( join( ' ', $classes ) ) . '" data-depend-on="' . esc_attr( $field['depend'] ) . '">'; 315 } else { 316 echo '<div class="' . esc_attr( join( ' ', $classes ) ) . '">'; 317 } 408 $data_attrs[] = 'data-depend-on="' . esc_attr( $field['depend'] ) . '"'; 409 } 410 411 // Handle new enhanced conditions (data-conditions) 412 if ( ! empty( $field['conditions'] ) ) { 413 $data_attrs[] = "data-conditions='" . esc_attr( wp_json_encode( $field['conditions'] ) ) . "'"; 414 415 // Check if field should be initially hidden based on conditions 416 if ( $this->should_hide_field( $field['conditions'], $post->ID ) ) { 417 $classes[] = 'merchant-metabox-field-hidden'; 418 } 419 } 420 421 // Output the field wrapper with all data attributes 422 echo '<div class="' . esc_attr( join( ' ', $classes ) ) . '"'; 423 if ( ! empty( $data_attrs ) ) { 424 echo ' ' . wp_kses_post( implode( ' ', $data_attrs ) ); 425 } 426 echo '>'; 318 427 319 428 if ( isset( $field['title'] ) || isset( $field['subtitle'] ) ) { … … 424 533 break; 425 534 535 case 'range': 426 536 case 'number': 427 537 return absint( $value ); … … 429 539 430 540 case 'select': 541 if ( isset( $field['multiple'] ) && $field['multiple'] && is_array( $value ) ) { 542 return array_filter( array_map( 'sanitize_key', $value ) ); 543 } 544 return ( in_array( $value, array_keys( $field['options'] ), true ) ) ? sanitize_key( $value ) : ''; 545 break; 546 431 547 case 'choices': 432 548 return ( in_array( $value, array_keys( $field['options'] ), true ) ) ? sanitize_key( $value ) : ''; … … 438 554 break; 439 555 440 case 'wc-attributes':441 return ( is_array( $value ) && ! empty( $value ) ) ? array_filter( array_map( 'sanitize_text_field', $value ) ) : array();442 break;443 444 556 case 'repeater': 445 557 case 'uploads': 446 return ( is_array( $value ) && ! empty( $value ) ) ? array_filter( map_deep( $value, 'sanitize_text_field' ) ) : array();447 break;448 449 558 case 'size-chart': 450 case 'uploads':451 559 return ( is_array( $value ) && ! empty( $value ) ) ? array_filter( map_deep( $value, 'sanitize_text_field' ) ) : array(); 452 560 break; … … 454 562 case 'wp-editor': 455 563 return wp_kses_post( $value ); 564 break; 565 566 case 'date_time': 567 case 'color': 568 case 'radio': 569 return sanitize_text_field( $value ); 456 570 break; 457 571 … … 482 596 echo '<div class="merchant-metabox-field-prepend">' . esc_attr( $field['prepend'] ) . '</div>'; 483 597 } 484 echo '<input type="text" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" />'; 598 echo '<input type="text" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '"'; 599 if ( isset( $field['placeholder'] ) ) { 600 echo ' placeholder="' . esc_attr( $field['placeholder'] ) . '"'; 601 } 602 echo ' />'; 603 485 604 if ( isset( $field['append'] ) ) { 486 605 echo '<div class="merchant-metabox-field-append">' . esc_attr( $field['append'] ) . '</div>'; … … 488 607 echo '</div>'; 489 608 } else { 490 echo '<input type="text" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" />'; 609 echo '<input type="text" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '"'; 610 if ( isset( $field['placeholder'] ) ) { 611 echo ' placeholder="' . esc_attr( $field['placeholder'] ) . '"'; 612 } 613 echo ' />'; 491 614 } 492 615 break; … … 540 663 541 664 case 'select': 542 echo '<select name="' . esc_attr( $field_id ) . '">'; 665 $multiple = ( isset( $field['multiple'] ) && $field['multiple'] ) ? ' multiple' : ''; 666 $name = $field_id . ( $multiple ? '[]' : '' ); 667 668 echo '<select name="' . esc_attr( $name ) . '"' . esc_attr( $multiple ) . '>'; 543 669 544 670 foreach ( $field['options'] as $key => $option ) { 545 echo '<option value="' . esc_attr( $key ) . '"' . selected( $key, $value, false ) . '>' . esc_html( $option ) . '</option>'; 671 $is_selected = is_array( $value ) ? in_array( $key, $value, true ) : ( (string) $key === (string) $value ); 672 echo '<option value="' . esc_attr( $key ) . '"' . selected( $is_selected, true, false ) . '>' . esc_html( $option ) . '</option>'; 546 673 } 547 674 … … 573 700 } 574 701 break; 702 703 case 'user': 704 $user = get_user_by( 'id', $id ); 705 706 if ( ! empty( $user ) ) { 707 echo '<option value="' . esc_attr( $user->ID ) . '" selected>' . esc_html( $user->display_name ) . ' (' . esc_html( $user->user_email ) . ')</option>'; 708 } 709 break; 575 710 } 576 711 } … … 626 761 echo '</label>'; 627 762 } 628 629 763 echo '</div>'; 630 764 break; 631 765 632 case 'content': 633 echo wp_kses_post( $field['content'] ); 766 case 'date_time': 767 $field = wp_parse_args( $field, array( 768 'options' => array(), 769 'placeholder' => '', 770 ) ); 771 772 // Set default options to match admin settings framework 773 $default_options = array( 774 'dateFormat' => 'MM-dd-yyyy', 775 'timepicker' => true, 776 'timeFormat' => 'hh:mm AA', 777 'minDate' => 'today', 778 'timeZone' => wp_timezone_string(), 779 ); 780 781 $options = wp_parse_args( $field['options'], $default_options ); 782 783 echo '<div class="merchant-metabox-datetime-field" data-options="' . esc_attr( wp_json_encode( $options ) ) . '">'; 784 echo '<input type="text" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" />'; 785 echo '</div>'; 786 break; 787 788 case 'color': 789 $field = wp_parse_args( $field, array( 790 'default' => '#212121', 791 ) ); 792 793 echo '<div class="merchant-metabox-color-field">'; 794 echo '<div class="merchant-color-picker" data-default-color="' . esc_attr( $field['default'] ) . '" style="background-color: ' . esc_attr( $value ? $value : $field['default'] ) . ';"></div>'; 795 echo '<input type="text" class="merchant-color-input" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $value ) . '" />'; 796 echo '</div>'; 797 break; 798 799 case 'radio': 800 $field = wp_parse_args( $field, array( 801 'options' => array(), 802 ) ); 803 804 echo '<div class="merchant-metabox-radio-field">'; 805 foreach ( $field['options'] as $option_key => $option_label ) { 806 echo '<label>'; 807 echo '<input type="radio" name="' . esc_attr( $field_id ) . '" value="' . esc_attr( $option_key ) . '"' . checked( $value, $option_key, false ) . ' /> '; 808 echo esc_html( $option_label ); 809 echo '</label><br/>'; 810 } 811 echo '</div>'; 634 812 break; 635 813 … … 984 1162 break; 985 1163 1164 case 'range': 1165 $min = isset( $field['min'] ) ? $field['min'] : 0; 1166 $max = isset( $field['max'] ) ? $field['max'] : 100; 1167 $step = isset( $field['step'] ) ? $field['step'] : 1; 1168 $unit = isset( $field['unit'] ) ? $field['unit'] : ''; 1169 ?> 1170 <div class="merchant-range"> 1171 <input type="range" class="merchant-range-input" min="<?php echo esc_attr( $min ); ?>" max="<?php echo esc_attr( $max ); ?>" step="<?php echo esc_attr( $step ); ?>" value="<?php echo esc_attr( $value ); ?>" /> 1172 <input type="number" class="merchant-range-number-input" name="<?php echo esc_attr( $field_id ); ?>" min="<?php echo esc_attr( $min ); ?>" max="<?php echo esc_attr( $max ); ?>" step="<?php echo esc_attr( $step ); ?>" value="<?php echo esc_attr( $value ); ?>" /> 1173 <?php if ( ! empty( $unit ) ) : ?> 1174 <span class="merchant-range-unit"><?php echo esc_html( $unit ); ?></span> 1175 <?php endif; ?> 1176 </div> 1177 <?php 1178 break; 986 1179 case 'flexible-content': 987 1180 $field = wp_parse_args( $field, array( … … 1085 1278 } 1086 1279 } 1280 1281 /** 1282 * Evaluate if a field should be hidden based on conditions. 1283 * 1284 * @param array $conditions Conditions array with 'relation' and 'terms'. 1285 * @param int $post_id Post ID. 1286 * @return bool True if field should be hidden, false otherwise. 1287 */ 1288 private function should_hide_field( $conditions, $post_id ) { 1289 if ( empty( $conditions['terms'] ) || ! is_array( $conditions['terms'] ) ) { 1290 return false; 1291 } 1292 1293 $operator = isset( $conditions['relation'] ) ? $conditions['relation'] : 'AND'; 1294 $results = array(); 1295 1296 foreach ( $conditions['terms'] as $term ) { 1297 if ( ! is_array( $term ) || count( $term ) < 3 ) { 1298 continue; 1299 } 1300 1301 $field_name = $term[0]; 1302 $comparison = $term[1]; 1303 $target_value = $term[2]; 1304 1305 // Get the actual field value from post meta 1306 $meta_value = get_post_meta( $post_id, $field_name, true ); 1307 1308 $passed = false; 1309 1310 // Cast to strings to ensure consistent comparison with JavaScript. 1311 // Switcher values are saved as integers (1/0) but conditions check against strings ('1'/'0'). 1312 $meta_value_str = is_array( $meta_value ) ? $meta_value : (string) $meta_value; 1313 $target_value_str = (string) $target_value; 1314 1315 // Evaluate condition based on comparison operator 1316 switch ( $comparison ) { 1317 case '==': 1318 if ( is_array( $meta_value_str ) ) { 1319 $passed = in_array( $target_value_str, array_map( 'strval', $meta_value_str ), true ); 1320 } else { 1321 $passed = $meta_value_str === $target_value_str; 1322 } 1323 break; 1324 case '!=': 1325 if ( is_array( $meta_value_str ) ) { 1326 $passed = ! in_array( $target_value_str, array_map( 'strval', $meta_value_str ), true ); 1327 } else { 1328 $passed = $meta_value_str !== $target_value_str; 1329 } 1330 break; 1331 case 'any': 1332 $allowed_values = explode( '|', $target_value_str ); 1333 if ( is_array( $meta_value_str ) ) { 1334 $passed = count( array_intersect( array_map( 'strval', $meta_value_str ), $allowed_values ) ) > 0; 1335 } else { 1336 $passed = in_array( $meta_value_str, $allowed_values, true ); 1337 } 1338 break; 1339 case 'not_any': 1340 $disallowed_values = explode( '|', $target_value_str ); 1341 if ( is_array( $meta_value_str ) ) { 1342 $passed = count( array_intersect( array_map( 'strval', $meta_value_str ), $disallowed_values ) ) === 0; 1343 } else { 1344 $passed = ! in_array( $meta_value_str, $disallowed_values, true ); 1345 } 1346 break; 1347 } 1348 1349 $results[] = $passed; 1350 } 1351 1352 // Combine results based on operator 1353 if ( $operator === 'OR' ) { 1354 // For OR, at least one must be true (if all false, hide) 1355 return ! in_array( true, $results, true ); 1356 } else { 1357 // For AND, all must be true (if any false, hide) 1358 return in_array( false, $results, true ); 1359 } 1360 } 1087 1361 } 1088 1362 } -
merchant/trunk/inc/compatibility/class-merchant-woo-multi-currency.php
r3343740 r3458319 30 30 add_filter( 'merchant_storewide_sale_cart_item_price', array( $this, 'multi_currency_pro_support' ) ); 31 31 32 // Add multi-currency support for Buy X Get Y widget variation price (product single page) 33 add_filter( 'merchant_bogo_widget_variation_price', array( $this, 'multi_currency_free_support' ) ); 34 add_filter( 'merchant_bogo_widget_variation_price', array( $this, 'multi_currency_pro_support' ) ); 35 32 36 add_filter( 'merchant_free_gifts_min_amount', array( $this, 'multi_currency_support_free_gifts' ) ); 33 37 add_filter( 'merchant_free_gifts_min_amount', array( $this, 'multi_currency_pro_support_free_gifts' ) ); 38 39 // Add multi-currency support for Buy X Get Y (BOGO) cart item price 40 add_filter( 'merchant_bogo_cart_item_price', array( $this, 'multi_currency_free_support' ) ); 41 add_filter( 'merchant_bogo_cart_item_price', array( $this, 'multi_currency_pro_support' ) ); 34 42 } 35 43 -
merchant/trunk/inc/helpers.php
r3379075 r3458319 676 676 } 677 677 678 if ( ! function_exists( 'merchant_date_string_to_timestamp' ) ) { 679 /** 680 * Convert a date string to a Unix timestamp based on the specified format and timezone. 681 * 682 * This function signature matches Merchant Pro for compatibility. 683 * 684 * @param string $date The date string to convert. 685 * @param string|null $timezone_offset The timezone offset or timezone string. Defaults to WordPress timezone. 686 * @param string $format The format of the date string. Defaults to 'm-d-Y h:i A'. 687 * 688 * @return int The timestamp, or 0 on failure. 689 */ 690 function merchant_date_string_to_timestamp( $date, $timezone_offset = null, $format = 'm-d-Y h:i A' ) { 691 try { 692 // If it's already numeric, return it as-is 693 if ( is_numeric( $date ) ) { 694 return (int) $date; 695 } 696 697 // Use WordPress timezone if not specified 698 $timezone_offset = $timezone_offset ?? wp_timezone_string(); 699 700 // Create DateTime object from the specified format and timezone 701 $date_object = DateTime::createFromFormat( $format, $date, new DateTimeZone( $timezone_offset ) ); 702 703 return $date_object ? $date_object->getTimestamp() : 0; 704 } catch ( Exception $e ) { 705 return 0; 706 } 707 } 708 } 709 678 710 /** 679 711 * Parses a list of product IDs … … 743 775 744 776 case 'customers': 777 case 'users': 745 778 $allowed_customers = array_map( 'intval', $args['user_condition_users'] ?? array() ); 746 779 return $is_logged_in && in_array( $customer_id, $allowed_customers, true ); -
merchant/trunk/inc/modules/buy-now/admin/options.php
r3403526 r3458319 281 281 ), 282 282 ) ); 283 284 // Exclusion Settings 285 Merchant_Admin_Options::create( array( 286 'module' => 'buy-now', 287 'title' => esc_html__( 'Conditional Display', 'merchant' ), 288 'fields' => array( 289 array( 290 'id' => 'exclusion', 291 'type' => 'switcher', 292 'title' => __( 'Enable conditional display', 'merchant' ), 293 'desc' => __( 'Enable product exclusion rules', 'merchant' ), 294 'default' => 0, 295 ), 296 array( 297 'id' => 'excluded_products', 298 'type' => 'products_selector', 299 'title' => __( 'Exclude Products', 'merchant' ), 300 'desc' => __( 'Select products to exclude from buy now button', 'merchant' ), 301 'condition' => array( 'exclusion', '==', '1' ), 302 ), 303 array( 304 'id' => 'excluded_categories', 305 'type' => 'select_ajax', 306 'title' => __( 'Exclude Categories', 'merchant' ), 307 'source' => 'options', 308 'multiple' => true, 309 'options' => Merchant_Admin_Options::get_category_select2_choices(), 310 'placeholder' => __( 'Select categories', 'merchant' ), 311 'desc' => __( 'Select categories to exclude from buy now button', 'merchant' ), 312 'condition' => array( 'exclusion', '==', '1' ), 313 ), 314 array( 315 'id' => 'excluded_tags', 316 'type' => 'select_ajax', 317 'source' => 'options', 318 'multiple' => true, 319 'options' => Merchant_Admin_Options::get_tag_select2_choices(), 320 'placeholder' => __( 'Select tags', 'merchant' ), 321 'title' => __( 'Exclude Tags', 'merchant' ), 322 'desc' => __( 'Select tags to exclude from buy now button', 'merchant' ), 323 'condition' => array( 'exclusion', '==', '1' ), 324 ), 325 array( 326 'id' => 'excluded_brands', 327 'type' => 'select_ajax', 328 'source' => 'options', 329 'multiple' => true, 330 'options' => Merchant_Admin_Options::get_brand_select2_choices(), 331 'placeholder' => __( 'Select brands', 'merchant' ), 332 'title' => __( 'Exclude Brands', 'merchant' ), 333 'desc' => __( 'Select brands to exclude from buy now button', 'merchant' ), 334 'condition' => array( 'exclusion', '==', '1' ), 335 ), 336 ), 337 ) ); -
merchant/trunk/inc/modules/buy-now/class-buy-now.php
r3403526 r3458319 30 30 31 31 /** 32 * Exclusion manager instance. 33 * 34 * @var Merchant_Buy_Now_Exclusion 35 */ 36 public $exclusion; 37 38 /** 32 39 * Constructor. 33 40 * … … 47 54 48 55 // Module default settings. 49 $this->module_default_settings = array( 50 'button-text' => __( 'Buy Now', 'merchant' ), 51 'customize-button' => 1, 52 ); 56 $this->module_default_settings = array( 57 'button-text' => __( 'Buy Now', 'merchant' ), 58 'customize-button' => 1, 59 'exclusion' => 0, 60 'excluded_products' => array(), 61 'excluded_categories' => array(), 62 'excluded_tags' => array(), 63 'excluded_brands' => array(), 64 ); 53 65 54 66 // Module data. … … 82 94 return; 83 95 } 96 97 // Initialize exclusion manager. 98 $this->exclusion = new Merchant_Buy_Now_Exclusion( $this ); 99 100 // Allow other modules (like Quick View) to check if a product is excluded. 101 add_filter( 'merchant_buy_now_is_excluded', array( $this, 'check_product_exclusion' ), 10, 2 ); 84 102 85 103 // Return early if it's on admin but not in the respective module settings page. … … 363 381 } 364 382 383 // Check if product should be excluded. 384 if ( $this->exclusion && $this->exclusion->should_exclude( $product ) ) { 385 return; 386 } 387 365 388 if ( ! empty( $product ) ) { 366 389 if ( 'yes' === get_post_meta( $post->ID, '_is_pre_order', true ) && strtotime( get_post_meta( $post->ID, '_pre_order_date', true ) ) > time() ) { … … 438 461 $settings = $this->get_module_settings(); 439 462 463 // Check if product should be excluded. 464 if ( $this->exclusion && $this->exclusion->should_exclude( $product ) ) { 465 return; 466 } 467 440 468 if ( ! is_product() && isset( $settings['display-archive'] ) && ! $settings['display-archive'] ) { 441 469 return; … … 560 588 return $classes; 561 589 } 590 591 /** 592 * Check if a product should be excluded from the Buy Now button. 593 * 594 * This method is called by the 'merchant_buy_now_is_excluded' filter, 595 * allowing other modules (like Quick View) to check exclusion status 596 * without directly accessing the exclusion manager. 597 * 598 * @param bool $is_excluded Current exclusion status. 599 * @param WC_Product $product The product to check. 600 * 601 * @return bool True if the product should be excluded, false otherwise. 602 * @since 2.2.4 603 */ 604 public function check_product_exclusion( $is_excluded, $product ) { 605 // If already excluded by another filter, respect that decision. 606 if ( $is_excluded ) { 607 return $is_excluded; 608 } 609 610 // Delegate to the exclusion manager if it exists. 611 if ( $this->exclusion && method_exists( $this->exclusion, 'should_exclude' ) ) { 612 return $this->exclusion->should_exclude( $product ); 613 } 614 615 return false; 616 } 562 617 } 618 619 require_once MERCHANT_DIR.'inc/modules/buy-now/class-buy-now-exclusion.php'; 563 620 564 621 // Initialize the module. -
merchant/trunk/inc/modules/pre-orders/admin/options.php
r3379075 r3458319 517 517 'title' => esc_html__( 'Button border color hover', 'merchant' ), 518 518 'default' => '#414141', 519 ), 520 521 array( 522 'id' => 'border-width', 523 'type' => 'range', 524 'title' => esc_html__( 'Button Border Width (px)', 'merchant' ), 525 'min' => 0, 526 'max' => 10, 527 'step' => 1, 528 'default' => 0, 529 ), 530 531 array( 532 'id' => 'border-radius', 533 'type' => 'range', 534 'title' => esc_html__( 'Button Border Radius (px)', 'merchant' ), 535 'min' => 0, 536 'max' => 50, 537 'step' => 1, 538 'default' => 0, 519 539 ), 520 540 -
merchant/trunk/inc/modules/pre-orders/class-pre-orders-main-functionality.php
r3389952 r3458319 156 156 private function convert_timestamp_to_human_readable( $timestamp ) { 157 157 $timezone = new DateTimeZone( merchant_timezone() ); 158 $date = new \DateTime( ' now', $timezone );159 $date->setTime stamp( $timestamp );158 $date = new \DateTime( '@' . $timestamp ); // Create from UTC timestamp 159 $date->setTimezone( $timezone ); // Convert to site timezone 160 160 161 161 return $date->format( self::DATE_TIME_FORMAT ); … … 600 600 if ( empty( $offer ) && $product->is_type( 'variation' ) ) { 601 601 $offer = self::available_product_rule( $product->get_parent_id() ); 602 $is_excluded = self::is_product_excluded( $product->get_id(), $offer );602 $is_excluded = Merchant_Pre_Orders_Rules_Repository::is_product_excluded( $product->get_id(), $offer ); 603 603 if ( $is_excluded ) { 604 604 $offer = array(); … … 624 624 */ 625 625 private function variable_product_price_html( $product, $offer, $html_price ) { 626 $sale = self::get_rule_sale( $offer );626 $sale = Merchant_Pre_Orders_Rules_Repository::get_rule_sale( $offer ); 627 627 if ( ! $sale ) { 628 628 return $html_price; … … 645 645 $variation_offer = self::available_product_rule( $product->get_id() ); 646 646 647 $is_excluded = self::is_product_excluded( $variation_id, $variation_offer );647 $is_excluded = Merchant_Pre_Orders_Rules_Repository::is_product_excluded( $variation_id, $variation_offer ); 648 648 if ( $is_excluded ) { 649 649 $prices[] = $regular_price; … … 711 711 */ 712 712 private function simple_product_price_html( $product, $offer, $html_price ) { 713 $sale = self::get_rule_sale( $offer );713 $sale = Merchant_Pre_Orders_Rules_Repository::get_rule_sale( $offer ); 714 714 if ( ! $sale ) { 715 715 return $html_price; … … 731 731 */ 732 732 public function calculate_discounted_price( $price, $offer, $product = null ) { 733 $sale = self::get_rule_sale( $offer );733 $sale = Merchant_Pre_Orders_Rules_Repository::get_rule_sale( $offer ); 734 734 $discount_type = $discount_value = ''; 735 735 if ( $sale ) { … … 801 801 $offer = self::available_product_rule( $product->get_parent_id() ); 802 802 803 $is_excluded = self::is_product_excluded( $product_id, $offer );803 $is_excluded = Merchant_Pre_Orders_Rules_Repository::is_product_excluded( $product_id, $offer ); 804 804 if ( $is_excluded ) { 805 805 continue; … … 1398 1398 * @return array|false The pre-order rules or false if there are no rule sale. 1399 1399 */ 1400 private static function get_rule_sale( $rule ) {1401 $sale = false;1402 if ( isset( $rule['discount_toggle'] ) && $rule['discount_toggle'] ) {1403 $discount_type = $rule['discount_type'];1404 $discount_amount = $rule['discount_amount'];1405 1406 $sale = array(1407 'discount_type' => $discount_type,1408 'discount_amount' => $discount_amount,1409 );1410 }1411 1412 /**1413 * Filter the pre order sale.1414 *1415 * @param array $sale The pre order sale.1416 * @param array $rule The pre order rule.1417 *1418 * @since 1.9.91419 */1420 return apply_filters( 'merchant_pre_order_rule_sale', $sale, $rule );1421 }1422 1423 /**1424 * Get the pre order rules.1425 *1426 * @return array The pre order rules.1427 */1428 private static function pre_order_rules() {1429 return Merchant_Admin_Options::get( self::MODULE_ID, 'rules', array() );1430 }1431 1432 /**1433 * Check if the rule is valid.1434 *1435 * @param array $rule The rule to check.1436 *1437 * @return boolean True if the rule is valid, false otherwise.1438 */1439 private static function is_valid_rule( $rule ) {1440 if ( ! isset( $rule['trigger_on'] ) ) {1441 return false;1442 }1443 1444 if ( 'product' === $rule['trigger_on'] && empty( $rule['product_ids'] ) ) {1445 return false;1446 }1447 1448 if ( 'category' === $rule['trigger_on'] && empty( $rule['category_slugs'] ) ) {1449 return false;1450 }1451 1452 if ( 'tags' === $rule['trigger_on'] && empty( $rule['tag_slugs'] ) ) {1453 return false;1454 }1455 1456 if ( 'brands' === $rule['trigger_on'] && empty( $rule['brand_slugs'] ) ) {1457 return false;1458 }1459 1460 if ( isset( $rule['discount_toggle'] ) && $rule['discount_toggle'] === true ) {1461 if ( ! isset( $rule['discount_type'] ) ) {1462 return false;1463 }1464 if ( ! isset( $rule['discount_amount'] ) ) {1465 return false;1466 }1467 }1468 1469 if ( isset( $rule['partial_payment_toggle'] ) && $rule['partial_payment_toggle'] === true ) {1470 if ( ! isset( $rule['partial_payment_type'] ) ) {1471 return false;1472 }1473 if ( ! isset( $rule['partial_payment_amount'] ) ) {1474 return false;1475 }1476 }1477 1478 $user_condition_passed = merchant_is_user_condition_passed( $rule );1479 if ( ! $user_condition_passed ) {1480 return false;1481 }1482 1483 if ( empty( $rule['shipping_date'] ) ) {1484 return false;1485 }1486 1487 if ( empty( $rule['button_text'] ) ) {1488 return false;1489 }1490 1491 if ( empty( $rule['placement'] ) ) {1492 return false;1493 }1494 1495 return true;1496 }1497 1498 /**1499 * Prepare the rule fields.1500 *1501 * @param array $rule The rule to prepare.1502 *1503 * @return array The prepared rule.1504 */1505 private static function prepare_rule( $rule ) {1506 if ( 'product' === $rule['trigger_on'] ) {1507 $rule['product_ids'] = array_map( 'intval', explode( ',', $rule['product_ids'] ) );1508 }1509 1510 if ( ! empty( $rule['pre_order_start'] ) ) {1511 $rule['pre_order_start'] = merchant_convert_date_to_timestamp( $rule['pre_order_start'], self::DATE_TIME_FORMAT );1512 }1513 1514 if ( ! empty( $rule['pre_order_end'] ) ) {1515 $rule['pre_order_end'] = merchant_convert_date_to_timestamp( $rule['pre_order_end'], self::DATE_TIME_FORMAT );1516 }1517 1518 $rule['shipping_timestamp'] = merchant_convert_date_to_timestamp( $rule['shipping_date'], self::DATE_TIME_FORMAT );1519 1520 return $rule;1521 }1522 1523 /**1524 * Check if a product is excluded from a pre-order rule.1525 *1526 * @param int $product_id The product ID.1527 * @param array $rule The pre-order rule.1528 *1529 * @return bool True if the product is excluded, false otherwise.1530 */1531 private static function is_product_excluded( $product_id, $rule ) {1532 $trigger_on = $rule['trigger_on'] ?? 'product';1533 $product = wc_get_product( $product_id );1534 $_product_id = $product && $product->is_type( 'variation' ) ? $product->get_parent_id() : $product_id;1535 1536 // Exclude products1537 if ( ! empty( $rule['exclude_products_toggle'] ) ) {1538 $excluded_product_ids = $rule['excluded_products'] ?? array();1539 $excluded_product_ids = merchant_parse_product_ids( $excluded_product_ids );1540 1541 if ( in_array( (int) $product_id, $excluded_product_ids, true ) || in_array( (int) $_product_id, $excluded_product_ids, true ) ) {1542 return true;1543 }1544 }1545 1546 // Exclude categories (only when not targeting specific categories)1547 if ( ! empty( $rule['exclude_categories_toggle'] ) && $trigger_on !== 'category' ) {1548 $excluded_categories_slugs = $rule['excluded_categories'] ?? array();1549 1550 if ( ! empty( $excluded_categories_slugs ) && has_term( $excluded_categories_slugs, 'product_cat', $_product_id ) ) {1551 return true;1552 }1553 }1554 1555 // Exclude tags (only when not targeting specific tags)1556 if ( ! empty( $rule['exclude_tags_toggle'] ) && $trigger_on !== 'tags' ) {1557 $excluded_tags_slugs = $rule['excluded_tags'] ?? array();1558 1559 if ( ! empty( $excluded_tags_slugs ) && has_term( $excluded_tags_slugs, 'product_tag', $_product_id ) ) {1560 return true;1561 }1562 }1563 1564 // Exclude brands (only when not targeting specific brands)1565 if ( ! empty( $rule['exclude_brands_toggle'] ) && $trigger_on !== 'brands' ) {1566 $excluded_brands_slugs = $rule['excluded_brands'] ?? array();1567 1568 if ( ! empty( $excluded_brands_slugs ) && has_term( $excluded_brands_slugs, 'product_brand', $_product_id ) ) {1569 return true;1570 }1571 }1572 1573 return false;1574 }1575 1576 1400 /** 1577 1401 * Get the available product rule. 1578 1402 * 1579 * @param string$product_id The product ID.1403 * @param int $product_id The product ID. 1580 1404 * 1581 1405 * @return array The available product rule. 1582 1406 */ 1583 1407 public static function available_product_rule( $product_id ) { 1584 $available_rule = array(); 1585 $rules = self::pre_order_rules(); 1586 $current_time = merchant_get_current_timestamp(); 1587 1588 foreach ( $rules as $rule ) { 1589 if ( isset( $rule['campaign_status'] ) && $rule['campaign_status'] === 'inactive' ) { 1590 continue; 1591 } 1592 1593 if ( self::is_valid_rule( $rule ) ) { 1594 $rule = self::prepare_rule( $rule ); 1595 1596 // check if pre-order start date is set and if it is not in the future 1597 if ( ! empty( $rule['pre_order_start'] ) && $rule['pre_order_start'] > $current_time ) { 1598 continue; 1599 } 1600 1601 // check if pre-order end date is set and if it is in the past 1602 if ( ! empty( $rule['pre_order_end'] ) && $rule['pre_order_end'] < $current_time ) { 1603 continue; 1604 } 1605 1606 $user_condition_passed = merchant_is_user_condition_passed( $rule ); 1607 if ( ! $user_condition_passed ) { 1608 continue; 1609 } 1610 1611 $trigger = $rule['trigger_on'] ?? 'product'; 1612 1613 $is_excluded = self::is_product_excluded( $product_id, $rule ); 1614 if ( $is_excluded ) { 1615 continue; 1616 } 1617 1618 if ( 'product' === $trigger && in_array( $product_id, $rule['product_ids'], true ) ) { 1619 $available_rule = $rule; 1620 break; 1621 } elseif ( 'category' === $trigger || 'tags' === $trigger || 'brands' === $trigger ) { 1622 $taxonomy = $trigger === 'category' ? 'product_cat' : ( $trigger === 'tags' ? 'product_tag' : 'product_brand' ); 1623 $slugs = $trigger === 'category' ? ( $rule['category_slugs'] ?? array() ) : ( $trigger === 'tags' ? ( $rule['tag_slugs'] ?? array() ) : ( $rule['brand_slugs'] ?? array() ) ); 1624 1625 $terms = get_the_terms( $product_id, $taxonomy ); 1626 if ( ! empty( $terms ) ) { 1627 foreach ( $terms as $term ) { 1628 if ( in_array( $term->slug, $slugs, true ) ) { 1629 $available_rule = $rule; 1630 break; 1631 } 1632 } 1633 } 1634 } elseif ( 'all' === $trigger ) { 1635 $available_rule = $rule; 1636 } 1637 } 1638 } 1639 1640 /** 1641 * Filter the available product rule. 1642 * 1643 * @param array $available_rule The available product rule. 1644 * @param int $product_id The product ID. 1645 * 1646 * @return array The available product rule. 1647 * 1648 * @since 1.9.9 1649 */ 1650 return apply_filters( 'merchant_pre_order_available_rule', $available_rule, $product_id ); 1408 return Merchant_Pre_Orders_Rules_Repository::get_rule_for_product( $product_id ); 1651 1409 } 1652 1410 … … 1664 1422 } 1665 1423 1666 $rules = self::pre_order_rules();1424 $rules = Merchant_Pre_Orders_Rules_Repository::get_global_rules(); 1667 1425 if ( empty( $rules ) ) { 1668 1426 update_option( $option_name, true ); … … 1746 1504 $products = new WP_Query( $args ); 1747 1505 if ( $products->have_posts() ) { 1748 $rules = self::pre_order_rules();1506 $rules = Merchant_Pre_Orders_Rules_Repository::get_global_rules(); 1749 1507 while ( $products->have_posts() ) { 1750 1508 $products->the_post(); -
merchant/trunk/inc/modules/pre-orders/class-pre-orders.php
r3232601 r3458319 1 1 <?php 2 3 2 /** 4 * Pre Orders.3 * Merchant - Pre Orders 5 4 * 6 5 * @package Merchant … … 14 13 * Pre Orders Class. 15 14 * 15 * This class handles the initialization and setup of the Pre Orders module, including 16 * admin settings, asset enqueueing, and frontend styling. 17 * 18 * @property string $module_id The module ID. 19 * @property bool $wc_only The WooCommerce only flag. 20 * @property string $module_section The module section. 21 * @property array $module_default_settings The module default settings. 22 * @property array $module_data The module data. 23 * @property string $module_options_path The module options path. 16 24 */ 17 25 class Merchant_Pre_Orders extends Merchant_Add_Module { … … 20 28 * Module ID. 21 29 * 30 * @var string The module ID. 22 31 */ 23 32 const MODULE_ID = 'pre-orders'; … … 26 35 * Is module preview. 27 36 * 37 * @var bool The is module preview flag. 28 38 */ 29 39 public static $is_module_preview = false; … … 32 42 * Main functionality dependency. 33 43 * 44 * @var Merchant_Pre_Orders_Main_Functionality The main functionality instance. 34 45 */ 35 46 public $main_func; … … 45 56 * Constructor. 46 57 * 58 * @param Merchant_Pre_Orders_Main_Functionality $main_func The main functionality instance. 47 59 */ 48 60 public function __construct( Merchant_Pre_Orders_Main_Functionality $main_func ) { … … 97 109 // Init translations. 98 110 $this->init_translations(); 99 } 111 112 // Include product metabox for per-product settings. 113 require_once MERCHANT_DIR . 'inc/modules/' . self::MODULE_ID . '/admin/class-pre-orders-metabox.php'; 114 } 115 100 116 101 117 if ( ! Merchant_Modules::is_module_active( self::MODULE_ID ) ) { … … 127 143 128 144 /** 129 * Init translations. 145 * Init translations for module settings. 146 * 147 * Registers strings for the Merchant translator tool. 130 148 * 131 149 * @return void … … 149 167 150 168 /** 151 * Admin enqueueCSS.169 * Enqueue admin-specific CSS. 152 170 * 153 171 * @return void 154 172 */ 155 173 public function admin_enqueue_css() { 156 $page = ( ! empty( $_GET['page'] ) ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended 157 $module = ( ! empty( $_GET['module'] ) ) ? sanitize_text_field( wp_unslash( $_GET['module'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended 158 159 if ( 'merchant' === $page && self::MODULE_ID === $module ) { 174 if ( parent::is_module_settings_page() ) { 160 175 wp_enqueue_style( 'merchant-' . self::MODULE_ID, MERCHANT_URI . 'assets/css/modules/' . self::MODULE_ID . '/pre-orders.min.css', array(), MERCHANT_VERSION ); 161 176 wp_enqueue_style( 'merchant-admin-' . self::MODULE_ID, MERCHANT_URI . 'assets/css/modules/' . self::MODULE_ID . '/admin/preview.min.css', array(), MERCHANT_VERSION ); … … 164 179 165 180 /** 166 * Admin JS 167 *181 * Enqueue admin-specific JavaScript. 182 * 168 183 * @return void 169 184 */ … … 181 196 182 197 /** 183 * Enqueue CSS.198 * Enqueue frontend-specific CSS. 184 199 * 185 200 * @return void … … 195 210 } 196 211 212 /** 213 * Add inline CSS styles based on the active rule. 214 * 215 * @return string The generated inline CSS. 216 */ 197 217 public function add_inline_style() { 198 ob_start();218 ob_start(); 199 219 $rule = $this->current_rule(); 200 220 if ( ! empty( $rule ) ) { 201 221 ?> 202 222 .woocommerce .merchant-pre-ordered-product{ 203 --mrc-po-text-color: <?php 204 echo esc_attr( $rule['text-color'] ); ?>; 205 --mrc-po-text-hover-color: <?php 206 echo esc_attr( $rule['text-hover-color'] ); ?>; 207 --mrc-po-border-color: <?php 208 echo esc_attr( $rule['border-color'] ); ?>; 209 --mrc-po-border-hover-color: <?php 210 echo esc_attr( $rule['border-hover-color'] ); ?>; 211 --mrc-po-background-color: <?php 212 echo esc_attr( $rule['background-color'] ); ?>; 213 --mrc-po-background-hover-color: <?php 214 echo esc_attr( $rule['background-hover-color'] ); ?>; 223 --mrc-po-text-color: <?php echo esc_attr( $rule['text-color'] ?? '#FFF' ); ?>; 224 --mrc-po-text-hover-color: <?php echo esc_attr( $rule['text-hover-color'] ?? '#FFF' ); ?>; 225 --mrc-po-border-color: <?php echo esc_attr( $rule['border-color'] ?? '#212121' ); ?>; 226 --mrc-po-border-hover-color: <?php echo esc_attr( $rule['border-hover-color'] ?? '#414141' ); ?>; 227 --mrc-po-border-width: <?php echo esc_attr( ( $rule['border-width'] ?? 0 ) . 'px' ); ?>; 228 --mrc-po-border-radius: <?php echo esc_attr( ( $rule['border-radius'] ?? 0 ) . 'px' ); ?>; 229 --mrc-po-background-color: <?php echo esc_attr( $rule['background-color'] ?? '#212121' ); ?>; 230 --mrc-po-background-hover-color: <?php echo esc_attr( $rule['background-hover-color'] ?? '#414141' ); ?>; 215 231 } 216 232 <?php … … 221 237 222 238 /** 223 * Enqueue scripts.239 * Enqueue frontend-specific scripts. 224 240 * 225 241 * @return void … … 231 247 232 248 /** 233 * Localize script with module settings.234 * 235 * @param array $setting The merchant global object setting parameter.236 * 237 * @return array $setting The merchant global object setting parameter.249 * Localize the main module script with settings and translations. 250 * 251 * @param array $setting The localized settings array. 252 * 253 * @return array The updated settings array. 238 254 */ 239 255 public function localize_script( $setting ) { 240 //$module_settings = $this->get_module_settings();241 242 256 $setting['pre_orders'] = true; 243 257 $rule = $this->current_rule(); 244 if ( ! empty( $rule ) && $rule['button_text']) {258 if ( ! empty( $rule ) && ! empty( $rule['button_text'] ) ) { 245 259 $setting['pre_orders_add_button_title'] = Merchant_Translator::translate( $rule['button_text'] ); 246 260 } else { … … 254 268 255 269 /** 256 * Render admin preview257 * 258 * @param Merchant_Admin_Preview $preview 259 * @param string $module 260 * 261 * @return Merchant_Admin_Preview 270 * Render the admin preview for the module. 271 * 272 * @param Merchant_Admin_Preview $preview The preview object. 273 * @param string $module The module ID. 274 * 275 * @return Merchant_Admin_Preview The updated preview object. 262 276 */ 263 277 public function render_admin_preview( $preview, $module ) { … … 295 309 296 310 /** 297 * Admin preview content. 311 * Admin preview HTML content. 312 * 313 * @param array $settings The module settings. 314 * @param string $text The formatted additional text. 298 315 * 299 316 * @return void … … 318 335 <div class="mrc-preview-text-placeholder mrc-mw-30 mrc-hide-on-smaller-screens"></div> 319 336 <div class="merchant-pre-ordered-product"> 320 <div class="merchant-pre-orders-date"><?php 321 printf( '<div class="merchant-pre-orders-date">%s</div>', esc_html( $text ) ); ?></div> 322 <a href="#" class="add_to_cart_button"><?php 323 echo esc_html( $settings['button_text'] ); ?></a> 337 <div class="merchant-pre-orders-date"><?php echo esc_html( $text ); ?></div> 338 <a href="#" class="add_to_cart_button"><?php echo esc_html( $settings['button_text'] ); ?></a> 324 339 </div> 325 340 </div> … … 329 344 330 345 /** 331 * Custom CSS.332 * 333 * @return string 346 * Get Custom CSS for the module. 347 * 348 * @return string The generated CSS. 334 349 */ 335 350 public function get_module_custom_css() { … … 349 364 $css .= Merchant_Custom_CSS::get_variable_css( 'pre-orders', 'border-hover-color', '#414141', '.merchant-pre-ordered-product', '--mrc-po-border-hover-color' ); 350 365 366 // Border Width. 367 $css .= Merchant_Custom_CSS::get_variable_css( 'pre-orders', 'border-width', 0, '.merchant-pre-ordered-product', '--mrc-po-border-width', 'px' ); 368 369 // Border Radius. 370 $css .= Merchant_Custom_CSS::get_variable_css( 'pre-orders', 'border-radius', 0, '.merchant-pre-ordered-product', '--mrc-po-border-radius', 'px' ); 371 351 372 // Background Color. 352 373 $css .= Merchant_Custom_CSS::get_variable_css( 'pre-orders', 'background-color', '#212121', '.merchant-pre-ordered-product', '--mrc-po-background-color' ); … … 360 381 361 382 /** 362 * Admin custom CSS.383 * Filter for admin custom CSS. 363 384 * 364 385 * @param string $css The custom CSS. 365 386 * 366 * @return string $css Thecustom CSS.387 * @return string The updated custom CSS. 367 388 */ 368 389 public function admin_custom_css( $css ) { … … 373 394 374 395 /** 375 * F rontend custom CSS.396 * Filter for frontend custom CSS. 376 397 * 377 398 * @param string $css The custom CSS. 378 399 * 379 * @return string $css Thecustom CSS.400 * @return string The updated custom CSS. 380 401 */ 381 402 public function frontend_custom_css( $css ) { … … 386 407 387 408 /** 388 * Get currentproduct rule.389 *390 * @return array 409 * Get the currently applicable product rule. 410 * 411 * @return array The rule array if found, empty array otherwise. 391 412 */ 392 413 private function current_rule() { 393 414 if ( is_singular( 'product' ) ) { 394 $product = wc_get_product( get_queried_object_id() ); 395 $rule = Merchant_Pre_Orders_Main_Functionality::available_product_rule( $product->get_id() ); 396 if ( empty( $rule ) && $product->is_type( 'variable' ) ) { 415 $product_id = get_queried_object_id(); 416 $product = wc_get_product( $product_id ); 417 418 if ( ! $product ) { 419 return array(); 420 } 421 422 $rule = Merchant_Pre_Orders_Main_Functionality::available_product_rule( $product->get_id() ); 423 if ( empty( $rule ) && $product instanceof \WC_Product_Variable ) { 397 424 $available_variations = $product->get_available_variations(); 398 425 foreach ( $available_variations as $variation ) { … … 411 438 412 439 /** 413 * Help banner. 440 * Display a help banner in the module settings page. 441 * 442 * @param string $module_id The module ID. 414 443 * 415 444 * @return void 416 445 */ 417 446 public function help_banner( $module_id ) { 418 if ( $module_id === 'pre-orders') {447 if ( $module_id === self::MODULE_ID ) { 419 448 ?> 420 449 <div class="merchant-module-page-setting-fields"> … … 426 455 <?php 427 456 echo esc_html__( 428 'Pre-orders captured by Merchant are tagged with "Merchant PreOrder" and can be found in your WooCommerce Order Section.',457 'Pre-orders captured by Merchant are tagged with "Merchant PreOrder" and can be found in your WooCommerce Order Section. You can control pre-order settings on a per-product basis from the individual product page.', 429 458 'merchant' 430 459 ); … … 444 473 445 474 /** 446 * Supply missing ID for flexible items.447 * 448 * @param string $setting_key 475 * Supply missing flexible_id for the rules setting. 476 * 477 * @param string $setting_key The setting key for the flexible items. 449 478 * 450 479 * @return void … … 476 505 } 477 506 507 // Rules Repository. 508 require_once MERCHANT_DIR . 'inc/modules/pre-orders/classes/class-pre-orders-rules.php'; 509 478 510 // Main functionality. 479 require MERCHANT_DIR . 'inc/modules/pre-orders/class-pre-orders-main-functionality.php';511 require_once MERCHANT_DIR . 'inc/modules/pre-orders/class-pre-orders-main-functionality.php'; 480 512 481 513 // Initialize the module. -
merchant/trunk/inc/modules/quick-view/admin/options.php
r3175862 r3458319 304 304 'condition' => array( 'show_buy_now_button', '==', '1' ), 305 305 ), 306 306 array( 307 'id' => 'ajax_add_to_cart', 308 'type' => 'switcher', 309 'title' => esc_html__( 'Ajax add to cart', 'merchant' ), 310 'default' => 0, 311 ), 307 312 array( 308 313 'id' => 'show_suggested_products', -
merchant/trunk/inc/modules/quick-view/class-quick-view.php
r3389952 r3458319 180 180 add_action( 'wp_ajax_merchant_quick_view_content', array( $this, 'modal_content_ajax_callback' ) ); 181 181 add_action( 'wp_ajax_nopriv_merchant_quick_view_content', array( $this, 'modal_content_ajax_callback' ) ); 182 183 // Initialize AJAX add to cart handler (separate class). 184 $this->init_ajax_add_to_cart(); 185 } 186 187 /** 188 * Initialize AJAX add to cart functionality. 189 * 190 * @return void 191 */ 192 private function init_ajax_add_to_cart() { 193 Merchant_Quick_View_Ajax_Add_To_Cart::get_instance()->init(); 182 194 } 183 195 … … 307 319 $module_settings = $this->get_module_settings(); 308 320 309 $setting[ 'quick_view' ] = true; 310 $setting[ 'quick_view_zoom' ] = $module_settings[ 'zoom_effect' ]; 321 $setting[ 'quick_view' ] = true; 322 $setting[ 'quick_view_zoom' ] = $module_settings[ 'zoom_effect' ]; 323 $setting[ 'ajax_add_to_cart' ] = ! empty( $module_settings[ 'ajax_add_to_cart' ] ); 311 324 312 325 return $setting; … … 589 602 wp_send_json_success( $content ); 590 603 } 604 591 605 592 606 /** … … 677 691 global $product; 678 692 693 /** 694 * Filters whether the Buy Now button should be excluded for a specific product in Quick View. 695 * 696 * This filter allows modules (like Buy Now) to control the visibility of the Buy Now button 697 * in the Quick View modal based on their own exclusion rules. 698 * 699 * @param bool $is_excluded Whether the product is excluded. Default false. 700 * @param WC_Product $product The product object. 701 * 702 * @since 2.2.4 703 */ 704 if ( apply_filters( 'merchant_buy_now_is_excluded', false, $product ) ) { 705 return; 706 } 707 679 708 $text = Merchant_Admin_Options::get( Merchant_Buy_Now::MODULE_ID, 'button-text', esc_html__( 'Buy Now', 'merchant' ) ); 680 709 … … 927 956 // Initialize the module. 928 957 add_action( 'init', function() { 958 // Load AJAX add to cart class file. 959 require_once MERCHANT_DIR . 'inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php'; 960 961 // Create and initialize the module. 929 962 Merchant_Modules::create_module( Merchant_Quick_View::get_instance() ); 930 963 } ); -
merchant/trunk/inc/modules/sticky-add-to-cart/admin/options.php
r3379075 r3458319 152 152 ) ); 153 153 154 // Conditional Display 155 Merchant_Admin_Options::create( 156 array( 157 'module' => 'sticky-add-to-cart', 158 'title' => esc_html__( 'Conditional Display', 'merchant' ), 159 'fields' => array( 160 // Exclusion. 161 array( 162 'id' => 'exclusion', 163 'type' => 'switcher', 164 'title' => esc_html__( 'Enable conditional display', 'merchant' ), 165 'desc' => esc_html__( 'Sticky Add to Cart will appear on all products except ones selected below.', 'merchant' ), 166 'default' => 0, 167 ), 168 169 // Excluded Products. 170 array( 171 'id' => 'excluded_products', 172 'type' => 'products_selector', 173 'title' => esc_html__( 'Excluded products', 'merchant' ), 174 'desc' => esc_html__( 'Select specific products to exclude from sticky add to cart.', 'merchant' ), 175 'multiple' => true, 176 'allowed_types' => array( 'simple', 'variable', 'grouped', 'external' ), 177 'conditions' => array( 178 'relation' => 'AND', 179 'terms' => array( 180 array( 181 'field' => 'exclusion', 182 'operator' => '===', 183 'value' => true, 184 ), 185 ), 186 ), 187 ), 188 189 // Excluded Categories. 190 array( 191 'id' => 'excluded_categories', 192 'type' => 'select_ajax', 193 'title' => esc_html__( 'Excluded categories', 'merchant' ), 194 'desc' => esc_html__( 'Select categories to exclude from sticky add to cart.', 'merchant' ), 195 'multiple' => true, 196 'source' => 'options', 197 'options' => Merchant_Admin_Options::get_category_select2_choices(), 198 'conditions' => array( 199 'relation' => 'AND', 200 'terms' => array( 201 array( 202 'field' => 'exclusion', 203 'operator' => '===', 204 'value' => true, 205 ), 206 ), 207 ), 208 ), 209 210 // Excluded Tags. 211 array( 212 'id' => 'excluded_tags', 213 'type' => 'select_ajax', 214 'title' => esc_html__( 'Excluded tags', 'merchant' ), 215 'desc' => esc_html__( 'Select tags to exclude from sticky add to cart.', 'merchant' ), 216 'multiple' => true, 217 'source' => 'options', 218 'options' => Merchant_Admin_Options::get_tag_select2_choices(), 219 'conditions' => array( 220 'relation' => 'AND', 221 'terms' => array( 222 array( 223 'field' => 'exclusion', 224 'operator' => '===', 225 'value' => true, 226 ), 227 ), 228 ), 229 ), 230 231 // Excluded Brands. 232 array( 233 'id' => 'excluded_brands', 234 'type' => 'select_ajax', 235 'title' => esc_html__( 'Excluded brands', 'merchant' ), 236 'desc' => esc_html__( 'Select brands to exclude from sticky add to cart.', 'merchant' ), 237 'multiple' => true, 238 'source' => 'options', 239 'options' => Merchant_Admin_Options::get_brand_select2_choices(), 240 'conditions' => array( 241 'relation' => 'AND', 242 'terms' => array( 243 array( 244 'field' => 'exclusion', 245 'operator' => '===', 246 'value' => true, 247 ), 248 ), 249 ), 250 ), 251 ), 252 ) 253 ); 254 154 255 // Style Settings 155 256 Merchant_Admin_Options::create( array( -
merchant/trunk/languages/merchant.pot
r3434669 r3458319 9 9 "Language-Team: aThemes <team@athemes.com>\n" 10 10 "Last-Translator: aThemes <team@athemes.com>\n" 11 "POT-Creation-Date: 2026-0 1-07 19:05+0000\n"11 "POT-Creation-Date: 2026-02-10 17:28+0000\n" 12 12 "Report-Msgid-Bugs-To: https://athemes.com/contact/\n" 13 13 "X-Poedit-Basepath: ..\n" … … 130 130 msgstr "" 131 131 132 #: admin/classes/class-merchant-admin-menu.php:132, admin/classes/class-merchant-admin-options.php:80 132 #: admin/classes/class-merchant-admin-menu.php:132, admin/classes/class-merchant-admin-options.php:80, inc/classes/class-merchant-metabox.php:84 133 133 msgid "Sunday" 134 134 msgstr "" 135 135 136 #: admin/classes/class-merchant-admin-menu.php:133, admin/classes/class-merchant-admin-options.php:81 136 #: admin/classes/class-merchant-admin-menu.php:133, admin/classes/class-merchant-admin-options.php:81, inc/classes/class-merchant-metabox.php:85 137 137 msgid "Monday" 138 138 msgstr "" 139 139 140 #: admin/classes/class-merchant-admin-menu.php:134, admin/classes/class-merchant-admin-options.php:82 140 #: admin/classes/class-merchant-admin-menu.php:134, admin/classes/class-merchant-admin-options.php:82, inc/classes/class-merchant-metabox.php:86 141 141 msgid "Tuesday" 142 142 msgstr "" 143 143 144 #: admin/classes/class-merchant-admin-menu.php:135, admin/classes/class-merchant-admin-options.php:83 144 #: admin/classes/class-merchant-admin-menu.php:135, admin/classes/class-merchant-admin-options.php:83, inc/classes/class-merchant-metabox.php:87 145 145 msgid "Wednesday" 146 146 msgstr "" 147 147 148 #: admin/classes/class-merchant-admin-menu.php:136, admin/classes/class-merchant-admin-options.php:84 148 #: admin/classes/class-merchant-admin-menu.php:136, admin/classes/class-merchant-admin-options.php:84, inc/classes/class-merchant-metabox.php:88 149 149 msgid "Thursday" 150 150 msgstr "" 151 151 152 #: admin/classes/class-merchant-admin-menu.php:137, admin/classes/class-merchant-admin-options.php:85 152 #: admin/classes/class-merchant-admin-menu.php:137, admin/classes/class-merchant-admin-options.php:85, inc/classes/class-merchant-metabox.php:89 153 153 msgid "Friday" 154 154 msgstr "" 155 155 156 #: admin/classes/class-merchant-admin-menu.php:138, admin/classes/class-merchant-admin-options.php:86 156 #: admin/classes/class-merchant-admin-menu.php:138, admin/classes/class-merchant-admin-options.php:86, inc/classes/class-merchant-metabox.php:90 157 157 msgid "Saturday" 158 158 msgstr "" 159 159 160 #: admin/classes/class-merchant-admin-menu.php:141, admin/classes/class-merchant-admin-options.php:89 160 #: admin/classes/class-merchant-admin-menu.php:141, admin/classes/class-merchant-admin-options.php:89, inc/classes/class-merchant-metabox.php:93 161 161 msgid "Sun" 162 162 msgstr "" 163 163 164 #: admin/classes/class-merchant-admin-menu.php:142, admin/classes/class-merchant-admin-options.php:90 164 #: admin/classes/class-merchant-admin-menu.php:142, admin/classes/class-merchant-admin-options.php:90, inc/classes/class-merchant-metabox.php:94 165 165 msgid "Mon" 166 166 msgstr "" 167 167 168 #: admin/classes/class-merchant-admin-menu.php:143, admin/classes/class-merchant-admin-options.php:91 168 #: admin/classes/class-merchant-admin-menu.php:143, admin/classes/class-merchant-admin-options.php:91, inc/classes/class-merchant-metabox.php:95 169 169 msgid "Tue" 170 170 msgstr "" 171 171 172 #: admin/classes/class-merchant-admin-menu.php:144, admin/classes/class-merchant-admin-options.php:92 172 #: admin/classes/class-merchant-admin-menu.php:144, admin/classes/class-merchant-admin-options.php:92, inc/classes/class-merchant-metabox.php:96 173 173 msgid "Wed" 174 174 msgstr "" 175 175 176 #: admin/classes/class-merchant-admin-menu.php:145, admin/classes/class-merchant-admin-options.php:93 176 #: admin/classes/class-merchant-admin-menu.php:145, admin/classes/class-merchant-admin-options.php:93, inc/classes/class-merchant-metabox.php:97 177 177 msgid "Thu" 178 178 msgstr "" 179 179 180 #: admin/classes/class-merchant-admin-menu.php:146, admin/classes/class-merchant-admin-options.php:94 180 #: admin/classes/class-merchant-admin-menu.php:146, admin/classes/class-merchant-admin-options.php:94, inc/classes/class-merchant-metabox.php:98 181 181 msgid "Fri" 182 182 msgstr "" 183 183 184 #: admin/classes/class-merchant-admin-menu.php:147, admin/classes/class-merchant-admin-options.php:95 184 #: admin/classes/class-merchant-admin-menu.php:147, admin/classes/class-merchant-admin-options.php:95, inc/classes/class-merchant-metabox.php:99 185 185 msgid "Sat" 186 186 msgstr "" 187 187 188 #: admin/classes/class-merchant-admin-menu.php:150, admin/classes/class-merchant-admin-options.php:98 188 #: admin/classes/class-merchant-admin-menu.php:150, admin/classes/class-merchant-admin-options.php:98, inc/classes/class-merchant-metabox.php:102 189 189 msgid "Su" 190 190 msgstr "" 191 191 192 #: admin/classes/class-merchant-admin-menu.php:151, admin/classes/class-merchant-admin-options.php:99 192 #: admin/classes/class-merchant-admin-menu.php:151, admin/classes/class-merchant-admin-options.php:99, inc/classes/class-merchant-metabox.php:103 193 193 msgid "Mo" 194 194 msgstr "" 195 195 196 #: admin/classes/class-merchant-admin-menu.php:152, admin/classes/class-merchant-admin-options.php:100 196 #: admin/classes/class-merchant-admin-menu.php:152, admin/classes/class-merchant-admin-options.php:100, inc/classes/class-merchant-metabox.php:104 197 197 msgid "Tu" 198 198 msgstr "" 199 199 200 #: admin/classes/class-merchant-admin-menu.php:153, admin/classes/class-merchant-admin-options.php:101 200 #: admin/classes/class-merchant-admin-menu.php:153, admin/classes/class-merchant-admin-options.php:101, inc/classes/class-merchant-metabox.php:105 201 201 msgid "We" 202 202 msgstr "" 203 203 204 #: admin/classes/class-merchant-admin-menu.php:154, admin/classes/class-merchant-admin-options.php:102 204 #: admin/classes/class-merchant-admin-menu.php:154, admin/classes/class-merchant-admin-options.php:102, inc/classes/class-merchant-metabox.php:106 205 205 msgid "Th" 206 206 msgstr "" 207 207 208 #: admin/classes/class-merchant-admin-menu.php:155, admin/classes/class-merchant-admin-options.php:103 208 #: admin/classes/class-merchant-admin-menu.php:155, admin/classes/class-merchant-admin-options.php:103, inc/classes/class-merchant-metabox.php:107 209 209 msgid "Fr" 210 210 msgstr "" 211 211 212 #: admin/classes/class-merchant-admin-menu.php:156, admin/classes/class-merchant-admin-options.php:104 212 #: admin/classes/class-merchant-admin-menu.php:156, admin/classes/class-merchant-admin-options.php:104, inc/classes/class-merchant-metabox.php:108 213 213 msgid "Sa" 214 214 msgstr "" 215 215 216 #: admin/classes/class-merchant-admin-menu.php:159, admin/classes/class-merchant-admin-options.php:107 216 #: admin/classes/class-merchant-admin-menu.php:159, admin/classes/class-merchant-admin-options.php:107, inc/classes/class-merchant-metabox.php:111 217 217 msgid "January" 218 218 msgstr "" 219 219 220 #: admin/classes/class-merchant-admin-menu.php:160, admin/classes/class-merchant-admin-options.php:108 220 #: admin/classes/class-merchant-admin-menu.php:160, admin/classes/class-merchant-admin-options.php:108, inc/classes/class-merchant-metabox.php:112 221 221 msgid "February" 222 222 msgstr "" 223 223 224 #: admin/classes/class-merchant-admin-menu.php:161, admin/classes/class-merchant-admin-options.php:109 224 #: admin/classes/class-merchant-admin-menu.php:161, admin/classes/class-merchant-admin-options.php:109, inc/classes/class-merchant-metabox.php:113 225 225 msgid "March" 226 226 msgstr "" 227 227 228 #: admin/classes/class-merchant-admin-menu.php:162, admin/classes/class-merchant-admin-options.php:110 228 #: admin/classes/class-merchant-admin-menu.php:162, admin/classes/class-merchant-admin-options.php:110, inc/classes/class-merchant-metabox.php:114 229 229 msgid "April" 230 230 msgstr "" 231 231 232 #: admin/classes/class-merchant-admin-menu.php:163, admin/classes/class-merchant-admin-menu.php:177, admin/classes/class-merchant-admin-options.php:111, admin/classes/class-merchant-admin-options.php:125 232 #: admin/classes/class-merchant-admin-menu.php:163, admin/classes/class-merchant-admin-menu.php:177, admin/classes/class-merchant-admin-options.php:111, admin/classes/class-merchant-admin-options.php:125, inc/classes/class-merchant-metabox.php:115, inc/classes/class-merchant-metabox.php:129 233 233 msgid "May" 234 234 msgstr "" 235 235 236 #: admin/classes/class-merchant-admin-menu.php:164, admin/classes/class-merchant-admin-options.php:112 236 #: admin/classes/class-merchant-admin-menu.php:164, admin/classes/class-merchant-admin-options.php:112, inc/classes/class-merchant-metabox.php:116 237 237 msgid "June" 238 238 msgstr "" 239 239 240 #: admin/classes/class-merchant-admin-menu.php:165, admin/classes/class-merchant-admin-options.php:113 240 #: admin/classes/class-merchant-admin-menu.php:165, admin/classes/class-merchant-admin-options.php:113, inc/classes/class-merchant-metabox.php:117 241 241 msgid "July" 242 242 msgstr "" 243 243 244 #: admin/classes/class-merchant-admin-menu.php:166, admin/classes/class-merchant-admin-options.php:114 244 #: admin/classes/class-merchant-admin-menu.php:166, admin/classes/class-merchant-admin-options.php:114, inc/classes/class-merchant-metabox.php:118 245 245 msgid "August" 246 246 msgstr "" 247 247 248 #: admin/classes/class-merchant-admin-menu.php:167, admin/classes/class-merchant-admin-options.php:115 248 #: admin/classes/class-merchant-admin-menu.php:167, admin/classes/class-merchant-admin-options.php:115, inc/classes/class-merchant-metabox.php:119 249 249 msgid "September" 250 250 msgstr "" 251 251 252 #: admin/classes/class-merchant-admin-menu.php:168, admin/classes/class-merchant-admin-options.php:116 252 #: admin/classes/class-merchant-admin-menu.php:168, admin/classes/class-merchant-admin-options.php:116, inc/classes/class-merchant-metabox.php:120 253 253 msgid "October" 254 254 msgstr "" 255 255 256 #: admin/classes/class-merchant-admin-menu.php:169, admin/classes/class-merchant-admin-options.php:117 256 #: admin/classes/class-merchant-admin-menu.php:169, admin/classes/class-merchant-admin-options.php:117, inc/classes/class-merchant-metabox.php:121 257 257 msgid "November" 258 258 msgstr "" 259 259 260 #: admin/classes/class-merchant-admin-menu.php:170, admin/classes/class-merchant-admin-options.php:118 260 #: admin/classes/class-merchant-admin-menu.php:170, admin/classes/class-merchant-admin-options.php:118, inc/classes/class-merchant-metabox.php:122 261 261 msgid "December" 262 262 msgstr "" 263 263 264 #: admin/classes/class-merchant-admin-menu.php:173, admin/classes/class-merchant-admin-options.php:121 264 #: admin/classes/class-merchant-admin-menu.php:173, admin/classes/class-merchant-admin-options.php:121, inc/classes/class-merchant-metabox.php:125 265 265 msgid "Jan" 266 266 msgstr "" 267 267 268 #: admin/classes/class-merchant-admin-menu.php:174, admin/classes/class-merchant-admin-options.php:122 268 #: admin/classes/class-merchant-admin-menu.php:174, admin/classes/class-merchant-admin-options.php:122, inc/classes/class-merchant-metabox.php:126 269 269 msgid "Feb" 270 270 msgstr "" 271 271 272 #: admin/classes/class-merchant-admin-menu.php:175, admin/classes/class-merchant-admin-options.php:123 272 #: admin/classes/class-merchant-admin-menu.php:175, admin/classes/class-merchant-admin-options.php:123, inc/classes/class-merchant-metabox.php:127 273 273 msgid "Mar" 274 274 msgstr "" 275 275 276 #: admin/classes/class-merchant-admin-menu.php:176, admin/classes/class-merchant-admin-options.php:124 276 #: admin/classes/class-merchant-admin-menu.php:176, admin/classes/class-merchant-admin-options.php:124, inc/classes/class-merchant-metabox.php:128 277 277 msgid "Apr" 278 278 msgstr "" 279 279 280 #: admin/classes/class-merchant-admin-menu.php:178, admin/classes/class-merchant-admin-options.php:126 280 #: admin/classes/class-merchant-admin-menu.php:178, admin/classes/class-merchant-admin-options.php:126, inc/classes/class-merchant-metabox.php:130 281 281 msgid "Jun" 282 282 msgstr "" 283 283 284 #: admin/classes/class-merchant-admin-menu.php:179, admin/classes/class-merchant-admin-options.php:127 284 #: admin/classes/class-merchant-admin-menu.php:179, admin/classes/class-merchant-admin-options.php:127, inc/classes/class-merchant-metabox.php:131 285 285 msgid "Jul" 286 286 msgstr "" 287 287 288 #: admin/classes/class-merchant-admin-menu.php:180, admin/classes/class-merchant-admin-options.php:128 288 #: admin/classes/class-merchant-admin-menu.php:180, admin/classes/class-merchant-admin-options.php:128, inc/classes/class-merchant-metabox.php:132 289 289 msgid "Aug" 290 290 msgstr "" 291 291 292 #: admin/classes/class-merchant-admin-menu.php:181, admin/classes/class-merchant-admin-options.php:129 292 #: admin/classes/class-merchant-admin-menu.php:181, admin/classes/class-merchant-admin-options.php:129, inc/classes/class-merchant-metabox.php:133 293 293 msgid "Sep" 294 294 msgstr "" 295 295 296 #: admin/classes/class-merchant-admin-menu.php:182, admin/classes/class-merchant-admin-options.php:130 296 #: admin/classes/class-merchant-admin-menu.php:182, admin/classes/class-merchant-admin-options.php:130, inc/classes/class-merchant-metabox.php:134 297 297 msgid "Oct" 298 298 msgstr "" 299 299 300 #: admin/classes/class-merchant-admin-menu.php:183, admin/classes/class-merchant-admin-options.php:131 300 #: admin/classes/class-merchant-admin-menu.php:183, admin/classes/class-merchant-admin-options.php:131, inc/classes/class-merchant-metabox.php:135 301 301 msgid "Nov" 302 302 msgstr "" 303 303 304 #: admin/classes/class-merchant-admin-menu.php:184, admin/classes/class-merchant-admin-options.php:132 304 #: admin/classes/class-merchant-admin-menu.php:184, admin/classes/class-merchant-admin-options.php:132, inc/classes/class-merchant-metabox.php:136 305 305 msgid "Dec" 306 306 msgstr "" 307 307 308 #: admin/classes/class-merchant-admin-menu.php:186, admin/classes/class-merchant-admin-options.php:134 308 #: admin/classes/class-merchant-admin-menu.php:186, admin/classes/class-merchant-admin-options.php:134, inc/classes/class-merchant-metabox.php:139 309 309 msgid "Clear" 310 310 msgstr "" … … 366 366 msgstr "" 367 367 368 #: admin/classes/class-merchant-admin-modules.php:422 368 #: admin/classes/class-merchant-admin-modules.php:422, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:39 369 369 msgid "Pre-Orders" 370 370 msgstr "" … … 390 390 msgstr "" 391 391 392 #: admin/classes/class-merchant-admin-modules.php:437, templates/modules/frequently-bought-together/single-product.php:36, inc/modules/frequently-bought-together/admin/options.php:554, inc/modules/quick-view/admin/options.php:32 1, templates/modules/added-to-cart-popup/admin/layout-1.php:128, templates/modules/added-to-cart-popup/admin/layout-2.php:114, templates/modules/added-to-cart-popup/admin/layout-3.php:127392 #: admin/classes/class-merchant-admin-modules.php:437, templates/modules/frequently-bought-together/single-product.php:36, inc/modules/frequently-bought-together/admin/options.php:554, inc/modules/quick-view/admin/options.php:326, templates/modules/added-to-cart-popup/admin/layout-1.php:128, templates/modules/added-to-cart-popup/admin/layout-2.php:114, templates/modules/added-to-cart-popup/admin/layout-3.php:127 393 393 msgid "Frequently Bought Together" 394 394 msgstr "" … … 414 414 msgstr "" 415 415 416 #: admin/classes/class-merchant-admin-modules.php:452, inc/modules/quick-view/admin/options.php:3 19416 #: admin/classes/class-merchant-admin-modules.php:452, inc/modules/quick-view/admin/options.php:324 417 417 msgid "Bulk Discounts" 418 418 msgstr "" … … 518 518 msgstr "" 519 519 520 #: admin/classes/class-merchant-admin-modules.php:517, inc/modules/buy-now/class-buy-now.php:5 0, inc/modules/buy-now/class-buy-now.php:371, inc/modules/buy-now/class-buy-now.php:464, inc/modules/quick-view/class-quick-view.php:679, inc/modules/buy-now/admin/options.php:22520 #: admin/classes/class-merchant-admin-modules.php:517, inc/modules/buy-now/class-buy-now.php:57, inc/modules/buy-now/class-buy-now.php:394, inc/modules/buy-now/class-buy-now.php:492, inc/modules/quick-view/class-quick-view.php:708, inc/modules/buy-now/admin/options.php:22 521 521 msgid "Buy Now" 522 522 msgstr "" … … 868 868 msgstr "" 869 869 870 #: admin/classes/class-merchant-admin-options.php:1788, inc/classes/class-merchant-metabox.php: 831, inc/classes/class-merchant-metabox.php:875870 #: admin/classes/class-merchant-admin-options.php:1788, inc/classes/class-merchant-metabox.php:1009, inc/classes/class-merchant-metabox.php:1053 871 871 msgid "Remove" 872 872 msgstr "" … … 885 885 msgstr "" 886 886 887 #: admin/classes/class-merchant-admin-options.php:1996, inc/classes/class-merchant-metabox.php: 924, inc/modules/advanced-reviews/admin/options.php:89, inc/modules/product-navigation-links/admin/options.php:35887 #: admin/classes/class-merchant-admin-options.php:1996, inc/classes/class-merchant-metabox.php:1102, inc/modules/advanced-reviews/admin/options.php:89, inc/modules/product-navigation-links/admin/options.php:35 888 888 msgid "Default" 889 889 msgstr "" … … 902 902 903 903 #. translators: 1. Coupon admin url 2. Link target attribute value 904 #: admin/classes/class-merchant-admin-options.php:2391, inc/classes/class-merchant-metabox.php: 976904 #: admin/classes/class-merchant-admin-options.php:2391, inc/classes/class-merchant-metabox.php:1154 905 905 msgid "No coupons found! <a href=\"%1$s\" target=\"%2$s\">Create a new coupon</a>" 906 906 msgstr "" 907 907 908 #: admin/classes/class-merchant-admin-options.php:2370, inc/classes/class-merchant-metabox.php: 958908 #: admin/classes/class-merchant-admin-options.php:2370, inc/classes/class-merchant-metabox.php:1136 909 909 msgid "Select a coupon" 910 910 msgstr "" 911 911 912 #: admin/classes/class-merchant-admin-options.php:2381, inc/classes/class-merchant-metabox.php: 969912 #: admin/classes/class-merchant-admin-options.php:2381, inc/classes/class-merchant-metabox.php:1147 913 913 msgid "Manage coupons" 914 914 msgstr "" … … 957 957 msgstr "" 958 958 959 #: admin/classes/class-merchant-admin-options.php:3079, admin/classes/class-merchant-admin-options.php:3083, inc/classes/class-merchant-metabox.php: 817, inc/classes/class-merchant-metabox.php:861959 #: admin/classes/class-merchant-admin-options.php:3079, admin/classes/class-merchant-admin-options.php:3083, inc/classes/class-merchant-metabox.php:995, inc/classes/class-merchant-metabox.php:1039 960 960 msgid "Duplicate" 961 961 msgstr "" … … 977 977 msgstr "" 978 978 979 #: admin/classes/class-merchant-plugin-installer.php:85 979 #: admin/classes/class-merchant-plugin-installer.php:88 980 msgid "Plugin is already active." 981 msgstr "" 982 983 #: admin/classes/class-merchant-plugin-installer.php:107 984 msgid "Plugin activated successfully." 985 msgstr "" 986 987 #: admin/classes/class-merchant-plugin-installer.php:121 980 988 msgid "You do not have permission to install plugins." 981 989 msgstr "" 982 990 983 #: admin/classes/class-merchant-plugin-installer.php: 89991 #: admin/classes/class-merchant-plugin-installer.php:125 984 992 msgid "Plugin URL is required." 985 993 msgstr "" 986 994 987 #: admin/classes/class-merchant-plugin-installer.php: 95995 #: admin/classes/class-merchant-plugin-installer.php:129 988 996 msgid "Plugin name is required." 989 997 msgstr "" 990 998 991 #: admin/classes/class-merchant-plugin-installer.php:118 992 msgid "Plugin activated successfully." 999 #: admin/classes/class-merchant-plugin-installer.php:222 1000 msgid "The download is currently unavailable. Please try again later or contact support for assistance." 1001 msgstr "" 1002 1003 #: admin/classes/class-merchant-plugin-installer.php:233 1004 msgid "The download server is temporarily unavailable. Please try again in a few minutes." 1005 msgstr "" 1006 1007 #: admin/classes/class-merchant-plugin-installer.php:238 1008 msgid "Too many download requests. Please wait a moment and try again." 1009 msgstr "" 1010 1011 #: admin/classes/class-merchant-plugin-installer.php:243 1012 msgid "The server could not connect to the download source. Please try again or contact your hosting provider if the problem persists." 1013 msgstr "" 1014 1015 #: admin/classes/class-merchant-plugin-installer.php:248 1016 msgid "The download could not be completed. Please try again or install the plugin manually." 1017 msgstr "" 1018 1019 #: admin/classes/class-merchant-plugin-installer.php:252 1020 msgid "Installation failed. Please try again or contact support if the problem persists." 993 1021 msgstr "" 994 1022 … … 1555 1583 msgstr "" 1556 1584 1557 #: inc/classes/class-merchant-metabox.php:218 1585 #: inc/classes/class-merchant-metabox.php:138 1586 msgid "Today" 1587 msgstr "" 1588 1589 #: inc/classes/class-merchant-metabox.php:308 1558 1590 msgid "Options" 1559 1591 msgstr "" 1560 1592 1561 #: inc/classes/class-merchant-metabox.php: 2211593 #: inc/classes/class-merchant-metabox.php:311 1562 1594 msgid "Post Options" 1563 1595 msgstr "" 1564 1596 1565 #: inc/classes/class-merchant-metabox.php: 2251597 #: inc/classes/class-merchant-metabox.php:315 1566 1598 msgid "Page Options" 1567 1599 msgstr "" 1568 1600 1569 #: inc/classes/class-merchant-metabox.php: 2291601 #: inc/classes/class-merchant-metabox.php:319 1570 1602 msgid "Product Options" 1571 1603 msgstr "" 1572 1604 1573 #: inc/classes/class-merchant-metabox.php: 2391605 #: inc/classes/class-merchant-metabox.php:329 1574 1606 msgid "Merchant " 1575 1607 msgstr "" 1576 1608 1577 #: inc/classes/class-merchant-metabox.php: 7221609 #: inc/classes/class-merchant-metabox.php:900 1578 1610 msgid "Upload/Add Image" 1579 1611 msgstr "" 1580 1612 1581 #: inc/classes/class-merchant-metabox.php: 7231613 #: inc/classes/class-merchant-metabox.php:901 1582 1614 msgid "Remove Image" 1583 1615 msgstr "" 1584 1616 1585 #: inc/classes/class-merchant-metabox.php: 755, inc/classes/class-merchant-metabox.php:7811617 #: inc/classes/class-merchant-metabox.php:933, inc/classes/class-merchant-metabox.php:959 1586 1618 msgid "Upload" 1587 1619 msgstr "" 1588 1620 1589 #: inc/classes/class-merchant-metabox.php: 806, inc/classes/class-merchant-metabox.php:8481621 #: inc/classes/class-merchant-metabox.php:984, inc/classes/class-merchant-metabox.php:1026 1590 1622 msgid "Chart Name" 1591 1623 msgstr "" 1592 1624 1593 #: inc/classes/class-merchant-metabox.php: 8841625 #: inc/classes/class-merchant-metabox.php:1062 1594 1626 msgid "Add Size Chart" 1595 1627 msgstr "" 1596 1628 1597 #: inc/classes/class-merchant-metabox.php: 9041629 #: inc/classes/class-merchant-metabox.php:1082 1598 1630 msgid "Select a size chart" 1599 1631 msgstr "" … … 1639 1671 msgstr "" 1640 1672 1641 #: inc/modules/add-to-cart-text/class-add-to-cart-text.php:52, templates/modules/buy-x-get-y/single-product.php:2 15, inc/modules/add-to-cart-text/admin/options.php:1061673 #: inc/modules/add-to-cart-text/class-add-to-cart-text.php:52, templates/modules/buy-x-get-y/single-product.php:241, inc/modules/add-to-cart-text/admin/options.php:106 1642 1674 msgid "Out of stock" 1643 1675 msgstr "" … … 1831 1863 msgstr "" 1832 1864 1833 #: inc/modules/animated-add-to-cart/class-animated-add-to-cart.php:185, inc/modules/buy-x-get-y/class-buy-x-get-y.php:253, inc/modules/frequently-bought-together/class-frequently-bought-together.php:219, inc/modules/quick-view/class-quick-view.php:3 86, inc/modules/volume-discounts/class-volume-discounts.php:373, templates/modules/buy-x-get-y/single-product.php:250, inc/modules/buy-x-get-y/admin/options.php:566, inc/modules/buy-x-get-y/admin/options.php:695, inc/modules/buy-x-get-y/admin/options.php:757, inc/modules/buy-x-get-y/admin/options.php:820, inc/modules/complementary-products/admin/options.php:599, inc/modules/frequently-bought-together/admin/options.php:759, inc/modules/volume-discounts/admin/options.php:717, inc/modules/volume-discounts/admin/options.php:781, inc/modules/volume-discounts/admin/options.php:853, templates/modules/complementary-products/admin-preview/cart.php:361865 #: inc/modules/animated-add-to-cart/class-animated-add-to-cart.php:185, inc/modules/buy-x-get-y/class-buy-x-get-y.php:253, inc/modules/frequently-bought-together/class-frequently-bought-together.php:219, inc/modules/quick-view/class-quick-view.php:399, inc/modules/volume-discounts/class-volume-discounts.php:373, templates/modules/buy-x-get-y/single-product.php:276, inc/modules/buy-x-get-y/admin/options.php:566, inc/modules/buy-x-get-y/admin/options.php:695, inc/modules/buy-x-get-y/admin/options.php:757, inc/modules/buy-x-get-y/admin/options.php:820, inc/modules/complementary-products/admin/options.php:599, inc/modules/frequently-bought-together/admin/options.php:759, inc/modules/volume-discounts/admin/options.php:717, inc/modules/volume-discounts/admin/options.php:781, inc/modules/volume-discounts/admin/options.php:853, templates/modules/complementary-products/admin-preview/cart.php:36 1834 1866 msgid "Add To Cart" 1835 1867 msgstr "" 1836 1868 1837 #: inc/modules/buy-now/class-buy-now.php:1 291869 #: inc/modules/buy-now/class-buy-now.php:147 1838 1870 msgid "Buy now button text" 1839 1871 msgstr "" 1840 1872 1841 #: inc/modules/buy-now/class-buy-now.php:3 161873 #: inc/modules/buy-now/class-buy-now.php:334 1842 1874 msgid "Please choose the quantity of items you wish to add to your cart…" 1843 1875 msgstr "" … … 2217 2249 msgstr "" 2218 2250 2219 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:940, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1 764, inc/modules/pre-orders/class-pre-orders.php:65, inc/modules/pre-orders/class-pre-orders.php:2472251 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:940, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1522, inc/modules/pre-orders/class-pre-orders.php:77, inc/modules/pre-orders/class-pre-orders.php:261 2220 2252 msgid "Pre Order Now!" 2221 2253 msgstr "" 2222 2254 2223 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:965, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1084, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1 765, inc/modules/pre-orders/class-pre-orders.php:662255 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:965, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1084, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1523, inc/modules/pre-orders/class-pre-orders.php:78 2224 2256 msgid "Ships on {date}." 2225 2257 msgstr "" … … 2240 2272 msgstr "" 2241 2273 2242 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:1160, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1350, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1 767, inc/modules/pre-orders/admin/options.php:4912274 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:1160, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1350, inc/modules/pre-orders/class-pre-orders-main-functionality.php:1525, inc/modules/pre-orders/admin/options.php:491, inc/modules/pre-orders/classes/class-pre-orders-rules.php:277 2243 2275 msgid "Ships on" 2244 2276 msgstr "" 2245 2277 2246 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:1 758, inc/modules/pre-orders/admin/options.php:522278 #: inc/modules/pre-orders/class-pre-orders-main-functionality.php:1516, inc/modules/pre-orders/admin/options.php:52 2247 2279 msgid "Custom Pre-order" 2248 2280 msgstr "" 2249 2281 2250 #: inc/modules/pre-orders/class-pre-orders.php:2 502282 #: inc/modules/pre-orders/class-pre-orders.php:264 2251 2283 msgid "Please set a shipping date first" 2252 2284 msgstr "" 2253 2285 2254 #: inc/modules/pre-orders/class-pre-orders.php:4 272255 msgid "Pre-orders captured by Merchant are tagged with \"Merchant PreOrder\" and can be found in your WooCommerce Order Section."2256 msgstr "" 2257 2258 #: inc/modules/pre-orders/class-pre-orders.php:4 342286 #: inc/modules/pre-orders/class-pre-orders.php:456 2287 msgid "Pre-orders captured by Merchant are tagged with \"Merchant PreOrder\" and can be found in your WooCommerce Order Section. You can control pre-order settings on a per-product basis from the individual product page." 2288 msgstr "" 2289 2290 #: inc/modules/pre-orders/class-pre-orders.php:463 2259 2291 msgid "View Pre-Orders" 2260 2292 msgstr "" … … 2292 2324 msgstr "" 2293 2325 2294 #: inc/modules/product-labels/class-product-labels.php:336, inc/modules/quick-view/class-quick-view.php:3 80, inc/modules/recently-viewed-products/class-recently-viewed-products.php:199, inc/modules/recently-viewed-products/class-recently-viewed-products.php:206, inc/modules/recently-viewed-products/class-recently-viewed-products.php:213, inc/modules/sticky-add-to-cart/class-sticky-add-to-cart.php:218, inc/modules/wishlist/class-wishlist.php:1732326 #: inc/modules/product-labels/class-product-labels.php:336, inc/modules/quick-view/class-quick-view.php:393, inc/modules/recently-viewed-products/class-recently-viewed-products.php:199, inc/modules/recently-viewed-products/class-recently-viewed-products.php:206, inc/modules/recently-viewed-products/class-recently-viewed-products.php:213, inc/modules/sticky-add-to-cart/class-sticky-add-to-cart.php:218, inc/modules/wishlist/class-wishlist.php:173 2295 2327 msgid "Product Title" 2296 2328 msgstr "" … … 2456 2488 msgstr "" 2457 2489 2458 #: inc/modules/quick-view/class-quick-view.php:205 2490 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:176, inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:405 2491 msgid "Please choose the quantity of items you wish to add to your cart." 2492 msgstr "" 2493 2494 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:180 2495 msgid "Product could not be added to cart." 2496 msgstr "" 2497 2498 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:196 2499 msgid "Quick View module is not active." 2500 msgstr "" 2501 2502 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:202 2503 msgid "AJAX add to cart is disabled." 2504 msgstr "" 2505 2506 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:207 2507 msgid "WooCommerce is not available." 2508 msgstr "" 2509 2510 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:284 2511 msgid "Product ID is required." 2512 msgstr "" 2513 2514 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:288 2515 msgid "Quantity is required." 2516 msgstr "" 2517 2518 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:312 2519 msgid "Invalid product." 2520 msgstr "" 2521 2522 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:374 2523 msgid "Please select product options." 2524 msgstr "" 2525 2526 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:379 2527 msgid "This variation is not available." 2528 msgstr "" 2529 2530 #: inc/modules/quick-view/class-quick-view-ajax-add-to-cart.php:389 2531 msgid "Validation failed." 2532 msgstr "" 2533 2534 #: inc/modules/quick-view/class-quick-view.php:217 2459 2535 msgid "Quick view button text" 2460 2536 msgstr "" 2461 2537 2462 #: inc/modules/quick-view/class-quick-view.php:3 812538 #: inc/modules/quick-view/class-quick-view.php:394 2463 2539 msgid "The product description normally is displayed here." 2464 2540 msgstr "" 2465 2541 2466 #: inc/modules/quick-view/class-quick-view.php:6 102542 #: inc/modules/quick-view/class-quick-view.php:624 2467 2543 msgid "Close quick view modal" 2468 2544 msgstr "" … … 2915 2991 2916 2992 #. translators: 1. Attribute name 2917 #: templates/modules/buy-x-get-y/single-product.php:2 36, templates/modules/frequently-bought-together/single-product.php:87, templates/modules/volume-discounts/single-product-radio.php:240, templates/modules/volume-discounts/single-product.php:2212993 #: templates/modules/buy-x-get-y/single-product.php:262, templates/modules/frequently-bought-together/single-product.php:87, templates/modules/volume-discounts/single-product-radio.php:240, templates/modules/volume-discounts/single-product.php:221 2918 2994 msgid "Select %s" 2919 2995 msgstr "" … … 3115 3191 msgstr "" 3116 3192 3117 #: inc/modules/added-to-cart-popup/admin/options.php:168, inc/modules/quick-view/admin/options.php:31 13193 #: inc/modules/added-to-cart-popup/admin/options.php:168, inc/modules/quick-view/admin/options.php:316 3118 3194 msgid "Show suggested products" 3119 3195 msgstr "" … … 3127 3203 msgstr "" 3128 3204 3129 #: inc/modules/added-to-cart-popup/admin/options.php:196, inc/modules/quick-view/admin/options.php:36 23205 #: inc/modules/added-to-cart-popup/admin/options.php:196, inc/modules/quick-view/admin/options.php:367 3130 3206 msgid "View Frequently Bought Together" 3131 3207 msgstr "" … … 3139 3215 msgstr "" 3140 3216 3141 #: inc/modules/added-to-cart-popup/admin/options.php:241, inc/modules/quick-view/admin/options.php:3 853217 #: inc/modules/added-to-cart-popup/admin/options.php:241, inc/modules/quick-view/admin/options.php:390 3142 3218 msgid "View Buy X Get Y" 3143 3219 msgstr "" … … 3163 3239 msgstr "" 3164 3240 3165 #: inc/modules/added-to-cart-popup/admin/options.php:313, inc/modules/buy- x-get-y/admin/options.php:75, inc/modules/buy-x-get-y/admin/options.php:169, inc/modules/complementary-products/admin/options.php:75, inc/modules/complementary-products/admin/options.php:167, inc/modules/free-gifts/admin/options.php:76, inc/modules/free-gifts/admin/options.php:170, inc/modules/frequently-bought-together/admin/options.php:75, inc/modules/frequently-bought-together/admin/options.php:170, inc/modules/pre-orders/admin/options.php:83, inc/modules/pre-orders/admin/options.php:178, inc/modules/product-labels/admin/options.php:282, inc/modules/product-labels/admin/options.php:387, inc/modules/reasons-to-buy/admin/options.php:78, inc/modules/reasons-to-buy/admin/options.php:171, inc/modules/side-cart/admin/options.php:224, inc/modules/side-cart/admin/options.php:357, inc/modules/size-chart/admin/options.php:34, inc/modules/spending-goal/admin/options.php:98, inc/modules/spending-goal/admin/options.php:143, inc/modules/storewide-sale/admin/options.php:75, inc/modules/storewide-sale/admin/options.php:167, inc/modules/volume-discounts/admin/options.php:84, inc/modules/volume-discounts/admin/options.php:224, inc/modules/wishlist/admin/options.php:115, inc/modules/wishlist/admin/options.php:1603241 #: inc/modules/added-to-cart-popup/admin/options.php:313, inc/modules/buy-now/admin/options.php:310, inc/modules/buy-x-get-y/admin/options.php:75, inc/modules/buy-x-get-y/admin/options.php:169, inc/modules/complementary-products/admin/options.php:75, inc/modules/complementary-products/admin/options.php:167, inc/modules/free-gifts/admin/options.php:76, inc/modules/free-gifts/admin/options.php:170, inc/modules/frequently-bought-together/admin/options.php:75, inc/modules/frequently-bought-together/admin/options.php:170, inc/modules/pre-orders/admin/options.php:83, inc/modules/pre-orders/admin/options.php:178, inc/modules/product-labels/admin/options.php:282, inc/modules/product-labels/admin/options.php:387, inc/modules/reasons-to-buy/admin/options.php:78, inc/modules/reasons-to-buy/admin/options.php:171, inc/modules/side-cart/admin/options.php:224, inc/modules/side-cart/admin/options.php:357, inc/modules/size-chart/admin/options.php:34, inc/modules/spending-goal/admin/options.php:98, inc/modules/spending-goal/admin/options.php:143, inc/modules/storewide-sale/admin/options.php:75, inc/modules/storewide-sale/admin/options.php:167, inc/modules/volume-discounts/admin/options.php:84, inc/modules/volume-discounts/admin/options.php:224, inc/modules/wishlist/admin/options.php:115, inc/modules/wishlist/admin/options.php:160 3166 3242 msgid "Select categories" 3167 3243 msgstr "" … … 3493 3569 msgstr "" 3494 3570 3495 #: inc/modules/advanced-reviews/admin/options.php:299, inc/modules/complementary-products/admin/options.php:290, inc/modules/frequently-bought-together/admin/options.php:388, inc/modules/pre-orders/admin/ options.php:296, inc/modules/storewide-sale/admin/options.php:294, inc/modules/volume-discounts/admin/options.php:3593571 #: inc/modules/advanced-reviews/admin/options.php:299, inc/modules/complementary-products/admin/options.php:290, inc/modules/frequently-bought-together/admin/options.php:388, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:142, inc/modules/pre-orders/admin/options.php:296, inc/modules/storewide-sale/admin/options.php:294, inc/modules/volume-discounts/admin/options.php:359 3496 3572 msgid "Percentage" 3497 3573 msgstr "" … … 3769 3845 msgstr "" 3770 3846 3771 #: inc/modules/advanced-reviews/admin/options.php:963, inc/modules/complementary-products/admin/options.php:736, inc/modules/countdown-timer/admin/options.php:293, inc/modules/product-swatches/admin/options.php:100, inc/modules/product-swatches/admin/options.php:158, inc/modules/product-swatches/admin/options.php:250, inc/modules/product-swatches/admin/options.php:338, inc/modules/product-swatches/admin/options.php:409, inc/modules/product-swatches/admin/options.php:512, inc/modules/product-swatches/admin/options.php:645, inc/modules/product-swatches/admin/options.php:733, inc/modules/recent-sales-notifications/admin/options.php:675, inc/modules/scroll-to-top-button/admin/options.php:240, inc/modules/sticky-add-to-cart/admin/options.php: 164, inc/modules/trust-badges/admin/options.php:89, inc/modules/volume-discounts/admin/options.php:6453847 #: inc/modules/advanced-reviews/admin/options.php:963, inc/modules/complementary-products/admin/options.php:736, inc/modules/countdown-timer/admin/options.php:293, inc/modules/product-swatches/admin/options.php:100, inc/modules/product-swatches/admin/options.php:158, inc/modules/product-swatches/admin/options.php:250, inc/modules/product-swatches/admin/options.php:338, inc/modules/product-swatches/admin/options.php:409, inc/modules/product-swatches/admin/options.php:512, inc/modules/product-swatches/admin/options.php:645, inc/modules/product-swatches/admin/options.php:733, inc/modules/recent-sales-notifications/admin/options.php:675, inc/modules/scroll-to-top-button/admin/options.php:240, inc/modules/sticky-add-to-cart/admin/options.php:265, inc/modules/trust-badges/admin/options.php:89, inc/modules/volume-discounts/admin/options.php:645 3772 3848 msgid "Border color" 3773 3849 msgstr "" … … 3789 3865 msgstr "" 3790 3866 3791 #: inc/modules/advanced-reviews/admin/options.php:986, inc/modules/buy-x-get-y/admin/options.php:712, inc/modules/buy-x-get-y/admin/options.php:791, inc/modules/clear-cart/admin/options.php:101, inc/modules/complementary-products/admin/options.php:555, inc/modules/complementary-products/admin/options.php:617, inc/modules/free-shipping-progress-bar/admin/options.php:207, inc/modules/frequently-bought-together/admin/options.php:722, inc/modules/frequently-bought-together/admin/options.php:792, inc/modules/pre-orders/admin/ options.php:480, inc/modules/product-navigation-links/admin/options.php:45, inc/modules/volume-discounts/admin/options.php:734, inc/modules/volume-discounts/admin/options.php:8163867 #: inc/modules/advanced-reviews/admin/options.php:986, inc/modules/buy-x-get-y/admin/options.php:712, inc/modules/buy-x-get-y/admin/options.php:791, inc/modules/clear-cart/admin/options.php:101, inc/modules/complementary-products/admin/options.php:555, inc/modules/complementary-products/admin/options.php:617, inc/modules/free-shipping-progress-bar/admin/options.php:207, inc/modules/frequently-bought-together/admin/options.php:722, inc/modules/frequently-bought-together/admin/options.php:792, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:314, inc/modules/pre-orders/admin/options.php:480, inc/modules/product-navigation-links/admin/options.php:45, inc/modules/volume-discounts/admin/options.php:734, inc/modules/volume-discounts/admin/options.php:816 3792 3868 msgid "Placement" 3793 3869 msgstr "" … … 3810 3886 msgstr "" 3811 3887 3812 #: inc/modules/advanced-reviews/admin/options.php:1054, inc/modules/complementary-products/admin/options.php:722, inc/modules/login-popup/admin/options.php:123, inc/modules/reasons-to-buy/admin/options.php:339, inc/modules/recently-viewed-products/admin/options.php:166, inc/modules/side-cart/admin/options.php:615, inc/modules/size-chart/admin/options.php:141, inc/modules/sticky-add-to-cart/admin/options.php: 1883888 #: inc/modules/advanced-reviews/admin/options.php:1054, inc/modules/complementary-products/admin/options.php:722, inc/modules/login-popup/admin/options.php:123, inc/modules/reasons-to-buy/admin/options.php:339, inc/modules/recently-viewed-products/admin/options.php:166, inc/modules/side-cart/admin/options.php:615, inc/modules/size-chart/admin/options.php:141, inc/modules/sticky-add-to-cart/admin/options.php:289 3813 3889 msgid "Title color" 3814 3890 msgstr "" … … 3838 3914 msgstr "" 3839 3915 3840 #: inc/modules/advanced-reviews/admin/options.php:1110, inc/modules/login-popup/admin/options.php:151, inc/modules/side-cart/admin/options.php:678, inc/modules/sticky-add-to-cart/admin/options.php: 2123916 #: inc/modules/advanced-reviews/admin/options.php:1110, inc/modules/login-popup/admin/options.php:151, inc/modules/side-cart/admin/options.php:678, inc/modules/sticky-add-to-cart/admin/options.php:313 3841 3917 msgid "Button color" 3842 3918 msgstr "" 3843 3919 3844 #: inc/modules/advanced-reviews/admin/options.php:1118, inc/modules/sticky-add-to-cart/admin/options.php: 2203920 #: inc/modules/advanced-reviews/admin/options.php:1118, inc/modules/sticky-add-to-cart/admin/options.php:321 3845 3921 msgid "Button color (hover)" 3846 3922 msgstr "" 3847 3923 3848 #: inc/modules/advanced-reviews/admin/options.php:1126, inc/modules/buy-now/admin/options.php:68, inc/modules/cookie-banner/admin/options.php:133, inc/modules/login-popup/admin/options.php:179, inc/modules/pre-orders/admin/options.php:5 24, inc/modules/quick-view/admin/options.php:198, inc/modules/side-cart/admin/options.php:706, inc/modules/sticky-add-to-cart/admin/options.php:1963924 #: inc/modules/advanced-reviews/admin/options.php:1126, inc/modules/buy-now/admin/options.php:68, inc/modules/cookie-banner/admin/options.php:133, inc/modules/login-popup/admin/options.php:179, inc/modules/pre-orders/admin/options.php:544, inc/modules/quick-view/admin/options.php:198, inc/modules/side-cart/admin/options.php:706, inc/modules/sticky-add-to-cart/admin/options.php:297 3849 3925 msgid "Button background color" 3850 3926 msgstr "" 3851 3927 3852 #: inc/modules/advanced-reviews/admin/options.php:1134, inc/modules/sticky-add-to-cart/admin/options.php: 2043928 #: inc/modules/advanced-reviews/admin/options.php:1134, inc/modules/sticky-add-to-cart/admin/options.php:305 3853 3929 msgid "Button background color (hover)" 3854 3930 msgstr "" … … 3882 3958 msgstr "" 3883 3959 3884 #: inc/modules/advanced-reviews/admin/options.php:1206, inc/modules/advanced-reviews/admin/options.php:1211, inc/modules/buy-x-get-y/admin/options.php:841, inc/modules/buy-x-get-y/admin/options.php:846, inc/modules/cart-reserved-timer/admin/options.php:103, inc/modules/cart-reserved-timer/admin/options.php:108, inc/modules/clear-cart/admin/options.php:315, inc/modules/clear-cart/admin/options.php:320, inc/modules/complementary-products/admin/options.php:814, inc/modules/complementary-products/admin/options.php:819, inc/modules/countdown-timer/admin/options.php:336, inc/modules/countdown-timer/admin/options.php:341, inc/modules/frequently-bought-together/admin/options.php:861, inc/modules/frequently-bought-together/admin/options.php:866, inc/modules/payment-logos/admin/options.php:125, inc/modules/payment-logos/admin/options.php:130, inc/modules/product-audio/admin/options.php:34, inc/modules/product-audio/admin/options.php:39, inc/modules/product-brand-image/admin/options.php:82, inc/modules/product-brand-image/admin/options.php:87, inc/modules/product-bundles/admin/options.php:170, inc/modules/product-bundles/admin/options.php:175, inc/modules/product-labels/admin/options.php:541, inc/modules/product-labels/admin/options.php:546, inc/modules/product-navigation-links/admin/options.php:144, inc/modules/product-navigation-links/admin/options.php:149, inc/modules/product-video/admin/options.php:52, inc/modules/product-video/admin/options.php:57, inc/modules/quick-social-links/admin/options.php:419, inc/modules/quick-social-links/admin/options.php:424, inc/modules/quick-view/admin/options.php:4 45, inc/modules/quick-view/admin/options.php:450, inc/modules/real-time-search/admin/options.php:112, inc/modules/real-time-search/admin/options.php:117, inc/modules/reasons-to-buy/admin/options.php:374, inc/modules/reasons-to-buy/admin/options.php:379, inc/modules/recently-viewed-products/admin/options.php:215, inc/modules/recently-viewed-products/admin/options.php:220, inc/modules/size-chart/admin/options.php:215, inc/modules/size-chart/admin/options.php:220, inc/modules/stock-scarcity/admin/options.php:188, inc/modules/stock-scarcity/admin/options.php:193, inc/modules/trust-badges/admin/options.php:144, inc/modules/trust-badges/admin/options.php:149, inc/modules/volume-discounts/admin/options.php:901, inc/modules/volume-discounts/admin/options.php:906, inc/modules/wait-list/admin/options.php:150, inc/modules/wait-list/admin/options.php:155, inc/modules/wishlist/admin/options.php:488, inc/modules/wishlist/admin/options.php:4933960 #: inc/modules/advanced-reviews/admin/options.php:1206, inc/modules/advanced-reviews/admin/options.php:1211, inc/modules/buy-x-get-y/admin/options.php:841, inc/modules/buy-x-get-y/admin/options.php:846, inc/modules/cart-reserved-timer/admin/options.php:103, inc/modules/cart-reserved-timer/admin/options.php:108, inc/modules/clear-cart/admin/options.php:315, inc/modules/clear-cart/admin/options.php:320, inc/modules/complementary-products/admin/options.php:814, inc/modules/complementary-products/admin/options.php:819, inc/modules/countdown-timer/admin/options.php:336, inc/modules/countdown-timer/admin/options.php:341, inc/modules/frequently-bought-together/admin/options.php:861, inc/modules/frequently-bought-together/admin/options.php:866, inc/modules/payment-logos/admin/options.php:125, inc/modules/payment-logos/admin/options.php:130, inc/modules/product-audio/admin/options.php:34, inc/modules/product-audio/admin/options.php:39, inc/modules/product-brand-image/admin/options.php:82, inc/modules/product-brand-image/admin/options.php:87, inc/modules/product-bundles/admin/options.php:170, inc/modules/product-bundles/admin/options.php:175, inc/modules/product-labels/admin/options.php:541, inc/modules/product-labels/admin/options.php:546, inc/modules/product-navigation-links/admin/options.php:144, inc/modules/product-navigation-links/admin/options.php:149, inc/modules/product-video/admin/options.php:52, inc/modules/product-video/admin/options.php:57, inc/modules/quick-social-links/admin/options.php:419, inc/modules/quick-social-links/admin/options.php:424, inc/modules/quick-view/admin/options.php:450, inc/modules/quick-view/admin/options.php:455, inc/modules/real-time-search/admin/options.php:112, inc/modules/real-time-search/admin/options.php:117, inc/modules/reasons-to-buy/admin/options.php:374, inc/modules/reasons-to-buy/admin/options.php:379, inc/modules/recently-viewed-products/admin/options.php:215, inc/modules/recently-viewed-products/admin/options.php:220, inc/modules/size-chart/admin/options.php:215, inc/modules/size-chart/admin/options.php:220, inc/modules/stock-scarcity/admin/options.php:188, inc/modules/stock-scarcity/admin/options.php:193, inc/modules/trust-badges/admin/options.php:144, inc/modules/trust-badges/admin/options.php:149, inc/modules/volume-discounts/admin/options.php:901, inc/modules/volume-discounts/admin/options.php:906, inc/modules/wait-list/admin/options.php:150, inc/modules/wait-list/admin/options.php:155, inc/modules/wishlist/admin/options.php:488, inc/modules/wishlist/admin/options.php:493 3885 3961 msgid "Use shortcode" 3886 3962 msgstr "" … … 3890 3966 msgstr "" 3891 3967 3892 #: inc/modules/advanced-reviews/admin/options.php:1223, inc/modules/buy-x-get-y/admin/options.php:858, inc/modules/cart-reserved-timer/admin/options.php:119, inc/modules/clear-cart/admin/options.php:333, inc/modules/complementary-products/admin/options.php:831, inc/modules/countdown-timer/admin/options.php:352, inc/modules/free-shipping-progress-bar/admin/options.php:595, inc/modules/free-shipping-progress-bar/admin/options.php:770, inc/modules/free-shipping-progress-bar/admin/options.php:879, inc/modules/frequently-bought-together/admin/options.php:878, inc/modules/payment-logos/admin/options.php:141, inc/modules/product-audio/admin/options.php:50, inc/modules/product-brand-image/admin/options.php:98, inc/modules/product-bundles/admin/options.php:187, inc/modules/product-labels/admin/options.php:557, inc/modules/product-navigation-links/admin/options.php:160, inc/modules/product-video/admin/options.php:68, inc/modules/quick-social-links/admin/options.php:435, inc/modules/quick-view/admin/options.php:46 1, inc/modules/real-time-search/admin/options.php:128, inc/modules/reasons-to-buy/admin/options.php:390, inc/modules/recently-viewed-products/admin/options.php:231, inc/modules/size-chart/admin/options.php:231, inc/modules/stock-scarcity/admin/options.php:207, inc/modules/trust-badges/admin/options.php:160, inc/modules/volume-discounts/admin/options.php:918, inc/modules/wait-list/admin/options.php:166, inc/modules/wishlist/admin/options.php:5043968 #: inc/modules/advanced-reviews/admin/options.php:1223, inc/modules/buy-x-get-y/admin/options.php:858, inc/modules/cart-reserved-timer/admin/options.php:119, inc/modules/clear-cart/admin/options.php:333, inc/modules/complementary-products/admin/options.php:831, inc/modules/countdown-timer/admin/options.php:352, inc/modules/free-shipping-progress-bar/admin/options.php:595, inc/modules/free-shipping-progress-bar/admin/options.php:770, inc/modules/free-shipping-progress-bar/admin/options.php:879, inc/modules/frequently-bought-together/admin/options.php:878, inc/modules/payment-logos/admin/options.php:141, inc/modules/product-audio/admin/options.php:50, inc/modules/product-brand-image/admin/options.php:98, inc/modules/product-bundles/admin/options.php:187, inc/modules/product-labels/admin/options.php:557, inc/modules/product-navigation-links/admin/options.php:160, inc/modules/product-video/admin/options.php:68, inc/modules/quick-social-links/admin/options.php:435, inc/modules/quick-view/admin/options.php:466, inc/modules/real-time-search/admin/options.php:128, inc/modules/reasons-to-buy/admin/options.php:390, inc/modules/recently-viewed-products/admin/options.php:231, inc/modules/size-chart/admin/options.php:231, inc/modules/stock-scarcity/admin/options.php:207, inc/modules/trust-badges/admin/options.php:160, inc/modules/volume-discounts/admin/options.php:918, inc/modules/wait-list/admin/options.php:166, inc/modules/wishlist/admin/options.php:504 3893 3969 msgid "Shortcode text" 3894 3970 msgstr "" … … 3950 4026 msgstr "" 3951 4027 3952 #: inc/modules/buy-now/admin/options.php:76, inc/modules/login-popup/admin/options.php:186, inc/modules/pre-orders/admin/options.php:5 31, inc/modules/quick-view/admin/options.php:205, inc/modules/side-cart/admin/options.php:7134028 #: inc/modules/buy-now/admin/options.php:76, inc/modules/login-popup/admin/options.php:186, inc/modules/pre-orders/admin/options.php:551, inc/modules/quick-view/admin/options.php:205, inc/modules/side-cart/admin/options.php:713 3953 4029 msgid "Button background color hover" 3954 4030 msgstr "" … … 4066 4142 msgstr "" 4067 4143 4144 #: inc/modules/buy-now/admin/options.php:287, inc/modules/sticky-add-to-cart/admin/options.php:158 4145 msgid "Conditional Display" 4146 msgstr "" 4147 4148 #: inc/modules/buy-now/admin/options.php:292, inc/modules/sticky-add-to-cart/admin/options.php:164 4149 msgid "Enable conditional display" 4150 msgstr "" 4151 4152 #: inc/modules/buy-now/admin/options.php:293 4153 msgid "Enable product exclusion rules" 4154 msgstr "" 4155 4156 #: inc/modules/buy-now/admin/options.php:299, inc/modules/buy-x-get-y/admin/options.php:125, inc/modules/free-gifts/admin/options.php:107, inc/modules/frequently-bought-together/admin/options.php:126, inc/modules/product-labels/admin/options.php:323, inc/modules/spending-goal/admin/options.php:122, inc/modules/storewide-sale/admin/options.php:123, inc/modules/volume-discounts/admin/options.php:180, inc/modules/wishlist/admin/options.php:139 4157 msgid "Exclude Products" 4158 msgstr "" 4159 4160 #: inc/modules/buy-now/admin/options.php:300 4161 msgid "Select products to exclude from buy now button" 4162 msgstr "" 4163 4164 #: inc/modules/buy-now/admin/options.php:306, inc/modules/free-gifts/admin/options.php:148, inc/modules/product-labels/admin/options.php:365, inc/modules/spending-goal/admin/options.php:139, inc/modules/wishlist/admin/options.php:156 4165 msgid "Exclude Categories" 4166 msgstr "" 4167 4168 #: inc/modules/buy-now/admin/options.php:311 4169 msgid "Select categories to exclude from buy now button" 4170 msgstr "" 4171 4172 #: inc/modules/buy-now/admin/options.php:320, inc/modules/buy-x-get-y/admin/options.php:86, inc/modules/buy-x-get-y/admin/options.php:212, inc/modules/complementary-products/admin/options.php:87, inc/modules/complementary-products/admin/options.php:210, inc/modules/free-gifts/admin/options.php:88, inc/modules/free-gifts/admin/options.php:214, inc/modules/frequently-bought-together/admin/options.php:87, inc/modules/frequently-bought-together/admin/options.php:213, inc/modules/pre-orders/admin/options.php:94, inc/modules/pre-orders/admin/options.php:222, inc/modules/product-labels/admin/options.php:294, inc/modules/product-labels/admin/options.php:431, inc/modules/reasons-to-buy/admin/options.php:90, inc/modules/reasons-to-buy/admin/options.php:214, inc/modules/storewide-sale/admin/options.php:87, inc/modules/storewide-sale/admin/options.php:210, inc/modules/volume-discounts/admin/options.php:144, inc/modules/volume-discounts/admin/options.php:267 4173 msgid "Select tags" 4174 msgstr "" 4175 4176 #: inc/modules/buy-now/admin/options.php:321, inc/modules/free-gifts/admin/options.php:192, inc/modules/product-labels/admin/options.php:409 4177 msgid "Exclude Tags" 4178 msgstr "" 4179 4180 #: inc/modules/buy-now/admin/options.php:322 4181 msgid "Select tags to exclude from buy now button" 4182 msgstr "" 4183 4184 #: inc/modules/buy-now/admin/options.php:331, inc/modules/buy-x-get-y/admin/options.php:97, inc/modules/buy-x-get-y/admin/options.php:255, inc/modules/complementary-products/admin/options.php:98, inc/modules/complementary-products/admin/options.php:253, inc/modules/free-gifts/admin/options.php:99, inc/modules/free-gifts/admin/options.php:258, inc/modules/frequently-bought-together/admin/options.php:98, inc/modules/frequently-bought-together/admin/options.php:256, inc/modules/pre-orders/admin/options.php:105, inc/modules/pre-orders/admin/options.php:266, inc/modules/product-labels/admin/options.php:306, inc/modules/product-labels/admin/options.php:475, inc/modules/reasons-to-buy/admin/options.php:101, inc/modules/reasons-to-buy/admin/options.php:257, inc/modules/storewide-sale/admin/options.php:98, inc/modules/storewide-sale/admin/options.php:253, inc/modules/volume-discounts/admin/options.php:155, inc/modules/volume-discounts/admin/options.php:310 4185 msgid "Select brands" 4186 msgstr "" 4187 4188 #: inc/modules/buy-now/admin/options.php:332, inc/modules/buy-x-get-y/admin/options.php:234, inc/modules/complementary-products/admin/options.php:232, inc/modules/free-gifts/admin/options.php:236, inc/modules/frequently-bought-together/admin/options.php:235, inc/modules/product-labels/admin/options.php:453, inc/modules/reasons-to-buy/admin/options.php:236 4189 msgid "Exclude Brands" 4190 msgstr "" 4191 4192 #: inc/modules/buy-now/admin/options.php:333 4193 msgid "Select brands to exclude from buy now button" 4194 msgstr "" 4195 4068 4196 #: inc/modules/buy-x-get-y/admin/options.php:15, inc/modules/volume-discounts/admin/options.php:14 4069 4197 msgid "Offers" … … 4106 4234 msgstr "" 4107 4235 4108 #: inc/modules/buy-x-get-y/admin/options.php:86, inc/modules/buy-x-get-y/admin/options.php:212, inc/modules/complementary-products/admin/options.php:87, inc/modules/complementary-products/admin/options.php:210, inc/modules/free-gifts/admin/options.php:88, inc/modules/free-gifts/admin/options.php:214, inc/modules/frequently-bought-together/admin/options.php:87, inc/modules/frequently-bought-together/admin/options.php:213, inc/modules/pre-orders/admin/options.php:94, inc/modules/pre-orders/admin/options.php:222, inc/modules/product-labels/admin/options.php:294, inc/modules/product-labels/admin/options.php:431, inc/modules/reasons-to-buy/admin/options.php:90, inc/modules/reasons-to-buy/admin/options.php:214, inc/modules/storewide-sale/admin/options.php:87, inc/modules/storewide-sale/admin/options.php:210, inc/modules/volume-discounts/admin/options.php:144, inc/modules/volume-discounts/admin/options.php:2674109 msgid "Select tags"4110 msgstr ""4111 4112 4236 #: inc/modules/buy-x-get-y/admin/options.php:87, inc/modules/frequently-bought-together/admin/options.php:88, inc/modules/storewide-sale/admin/options.php:88, inc/modules/volume-discounts/admin/options.php:145 4113 4237 msgid "Select the product tags that will show the offer." … … 4118 4242 msgstr "" 4119 4243 4120 #: inc/modules/buy-x-get-y/admin/options.php:97, inc/modules/buy-x-get-y/admin/options.php:255, inc/modules/complementary-products/admin/options.php:98, inc/modules/complementary-products/admin/options.php:253, inc/modules/free-gifts/admin/options.php:99, inc/modules/free-gifts/admin/options.php:258, inc/modules/frequently-bought-together/admin/options.php:98, inc/modules/frequently-bought-together/admin/options.php:256, inc/modules/pre-orders/admin/options.php:105, inc/modules/pre-orders/admin/options.php:266, inc/modules/product-labels/admin/options.php:306, inc/modules/product-labels/admin/options.php:475, inc/modules/reasons-to-buy/admin/options.php:101, inc/modules/reasons-to-buy/admin/options.php:257, inc/modules/storewide-sale/admin/options.php:98, inc/modules/storewide-sale/admin/options.php:253, inc/modules/volume-discounts/admin/options.php:155, inc/modules/volume-discounts/admin/options.php:3104121 msgid "Select brands"4122 msgstr ""4123 4124 4244 #: inc/modules/buy-x-get-y/admin/options.php:98, inc/modules/frequently-bought-together/admin/options.php:99, inc/modules/storewide-sale/admin/options.php:99, inc/modules/volume-discounts/admin/options.php:156 4125 4245 msgid "Select the product brands that will show the offer." … … 4130 4250 msgstr "" 4131 4251 4132 #: inc/modules/buy-x-get-y/admin/options.php:125, inc/modules/free-gifts/admin/options.php:107, inc/modules/frequently-bought-together/admin/options.php:126, inc/modules/product-labels/admin/options.php:323, inc/modules/spending-goal/admin/options.php:122, inc/modules/storewide-sale/admin/options.php:123, inc/modules/volume-discounts/admin/options.php:180, inc/modules/wishlist/admin/options.php:1394133 msgid "Exclude Products"4134 msgstr ""4135 4136 4252 #: inc/modules/buy-x-get-y/admin/options.php:127, inc/modules/complementary-products/admin/options.php:125, inc/modules/frequently-bought-together/admin/options.php:128, inc/modules/storewide-sale/admin/options.php:125, inc/modules/volume-discounts/admin/options.php:182 4137 4253 msgid "Exclude products from this campaign." … … 4162 4278 msgstr "" 4163 4279 4164 #: inc/modules/buy-x-get-y/admin/options.php:234, inc/modules/complementary-products/admin/options.php:232, inc/modules/free-gifts/admin/options.php:236, inc/modules/frequently-bought-together/admin/options.php:235, inc/modules/product-labels/admin/options.php:453, inc/modules/reasons-to-buy/admin/options.php:2364165 msgid "Exclude Brands"4166 msgstr ""4167 4168 4280 #: inc/modules/buy-x-get-y/admin/options.php:251, inc/modules/complementary-products/admin/options.php:249, inc/modules/free-gifts/admin/options.php:254, inc/modules/frequently-bought-together/admin/options.php:252, inc/modules/pre-orders/admin/options.php:262, inc/modules/product-labels/admin/options.php:471, inc/modules/reasons-to-buy/admin/options.php:253, inc/modules/storewide-sale/admin/options.php:249, inc/modules/volume-discounts/admin/options.php:306 4169 4281 msgid "Excluded Brands List" … … 4214 4326 msgstr "" 4215 4327 4216 #: inc/modules/buy-x-get-y/admin/options.php:347, inc/modules/pre-orders/admin/ options.php:2944328 #: inc/modules/buy-x-get-y/admin/options.php:347, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:140, inc/modules/pre-orders/admin/options.php:294 4217 4329 msgid "Discount Type" 4218 4330 msgstr "" … … 4242 4354 msgstr "" 4243 4355 4244 #: inc/modules/buy-x-get-y/admin/options.php:399, inc/modules/complementary-products/admin/options.php:358, inc/modules/free-gifts/admin/options.php:305, inc/modules/free-shipping-progress-bar/admin/options.php:84, inc/modules/frequently-bought-together/admin/options.php:417, inc/modules/pre-orders/admin/ options.php:362, inc/modules/spending-goal/admin/options.php:159, inc/modules/storewide-sale/admin/options.php:321, inc/modules/volume-discounts/admin/options.php:3934356 #: inc/modules/buy-x-get-y/admin/options.php:399, inc/modules/complementary-products/admin/options.php:358, inc/modules/free-gifts/admin/options.php:305, inc/modules/free-shipping-progress-bar/admin/options.php:84, inc/modules/frequently-bought-together/admin/options.php:417, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:174, inc/modules/pre-orders/admin/options.php:362, inc/modules/spending-goal/admin/options.php:159, inc/modules/storewide-sale/admin/options.php:321, inc/modules/volume-discounts/admin/options.php:393 4245 4357 msgid "User Condition" 4246 4358 msgstr "" 4247 4359 4248 #: inc/modules/buy-x-get-y/admin/options.php:401, inc/modules/complementary-products/admin/options.php:360, inc/modules/free-gifts/admin/options.php:307, inc/modules/free-shipping-progress-bar/admin/options.php:86, inc/modules/frequently-bought-together/admin/options.php:419, inc/modules/pre-orders/admin/ options.php:364, inc/modules/spending-goal/admin/options.php:161, inc/modules/storewide-sale/admin/options.php:323, inc/modules/volume-discounts/admin/options.php:3954360 #: inc/modules/buy-x-get-y/admin/options.php:401, inc/modules/complementary-products/admin/options.php:360, inc/modules/free-gifts/admin/options.php:307, inc/modules/free-shipping-progress-bar/admin/options.php:86, inc/modules/frequently-bought-together/admin/options.php:419, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:177, inc/modules/pre-orders/admin/options.php:364, inc/modules/spending-goal/admin/options.php:161, inc/modules/storewide-sale/admin/options.php:323, inc/modules/volume-discounts/admin/options.php:395 4249 4361 msgid "All Users" 4250 4362 msgstr "" … … 4274 4386 msgstr "" 4275 4387 4276 #: inc/modules/buy-x-get-y/admin/options.php:435, inc/modules/free-gifts/admin/options.php:341, inc/modules/free-shipping-progress-bar/admin/options.php:136, inc/modules/pre-orders/admin/ options.php:398, inc/modules/storewide-sale/admin/options.php:357, inc/modules/volume-discounts/admin/options.php:4294388 #: inc/modules/buy-x-get-y/admin/options.php:435, inc/modules/free-gifts/admin/options.php:341, inc/modules/free-shipping-progress-bar/admin/options.php:136, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:226, inc/modules/pre-orders/admin/options.php:398, inc/modules/storewide-sale/admin/options.php:357, inc/modules/volume-discounts/admin/options.php:429 4277 4389 msgid "Select the users that will not show the offer." 4278 4390 msgstr "" … … 4282 4394 msgstr "" 4283 4395 4284 #: inc/modules/buy-x-get-y/admin/options.php:453, inc/modules/complementary-products/admin/options.php:411, inc/modules/free-gifts/admin/options.php:359, inc/modules/free-shipping-progress-bar/admin/options.php:154, inc/modules/frequently-bought-together/admin/options.php:471, inc/modules/pre-orders/admin/ options.php:416, inc/modules/spending-goal/admin/options.php:238, inc/modules/storewide-sale/admin/options.php:375, inc/modules/volume-discounts/admin/options.php:4474396 #: inc/modules/buy-x-get-y/admin/options.php:453, inc/modules/complementary-products/admin/options.php:411, inc/modules/free-gifts/admin/options.php:359, inc/modules/free-shipping-progress-bar/admin/options.php:154, inc/modules/frequently-bought-together/admin/options.php:471, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:240, inc/modules/pre-orders/admin/options.php:416, inc/modules/spending-goal/admin/options.php:238, inc/modules/storewide-sale/admin/options.php:375, inc/modules/volume-discounts/admin/options.php:447 4285 4397 msgid "This will exclude the offer for users with these roles." 4286 4398 msgstr "" … … 4290 4402 msgstr "" 4291 4403 4292 #: inc/modules/buy-x-get-y/admin/options.php:479, inc/modules/complementary-products/admin/options.php:437, inc/modules/free-gifts/admin/options.php:385, inc/modules/free-shipping-progress-bar/admin/options.php:180, inc/modules/frequently-bought-together/admin/options.php:497, inc/modules/pre-orders/admin/ options.php:442, inc/modules/spending-goal/admin/options.php:213, inc/modules/storewide-sale/admin/options.php:401, inc/modules/volume-discounts/admin/options.php:4734404 #: inc/modules/buy-x-get-y/admin/options.php:479, inc/modules/complementary-products/admin/options.php:437, inc/modules/free-gifts/admin/options.php:385, inc/modules/free-shipping-progress-bar/admin/options.php:180, inc/modules/frequently-bought-together/admin/options.php:497, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:256, inc/modules/pre-orders/admin/options.php:442, inc/modules/spending-goal/admin/options.php:213, inc/modules/storewide-sale/admin/options.php:401, inc/modules/volume-discounts/admin/options.php:473 4293 4405 msgid "This will exclude the offer for the selected customers." 4294 4406 msgstr "" … … 4508 4620 msgstr "" 4509 4621 4510 #: inc/modules/cart-count-favicon/admin/options.php:47, inc/modules/login-popup/admin/options.php:200, inc/modules/product-labels/admin/options.php:205, inc/modules/product-swatches/admin/options.php:108, inc/modules/product-swatches/admin/options.php:167, inc/modules/product-swatches/admin/options.php:425, inc/modules/product-swatches/admin/options.php:530, inc/modules/quick-social-links/admin/options.php:67, inc/modules/recent-sales-notifications/admin/options.php:645, inc/modules/scroll-to-top-button/admin/options.php:256, inc/modules/side-cart/admin/options.php:572, inc/modules/size-chart/admin/options.php:120, inc/modules/sticky-add-to-cart/admin/options.php: 172, inc/modules/volume-discounts/admin/options.php:6314622 #: inc/modules/cart-count-favicon/admin/options.php:47, inc/modules/login-popup/admin/options.php:200, inc/modules/product-labels/admin/options.php:205, inc/modules/product-swatches/admin/options.php:108, inc/modules/product-swatches/admin/options.php:167, inc/modules/product-swatches/admin/options.php:425, inc/modules/product-swatches/admin/options.php:530, inc/modules/quick-social-links/admin/options.php:67, inc/modules/recent-sales-notifications/admin/options.php:645, inc/modules/scroll-to-top-button/admin/options.php:256, inc/modules/side-cart/admin/options.php:572, inc/modules/size-chart/admin/options.php:120, inc/modules/sticky-add-to-cart/admin/options.php:273, inc/modules/volume-discounts/admin/options.php:631 4511 4623 msgid "Background color" 4512 4624 msgstr "" … … 4721 4833 msgstr "" 4722 4834 4723 #: inc/modules/clear-cart/admin/options.php:195, inc/modules/cookie-banner/admin/options.php:82, inc/modules/scroll-to-top-button/admin/options.php:147, inc/modules/spending-goal/admin/options.php:305, inc/modules/sticky-add-to-cart/admin/options.php: 157, inc/modules/stock-scarcity/admin/options.php:1274835 #: inc/modules/clear-cart/admin/options.php:195, inc/modules/cookie-banner/admin/options.php:82, inc/modules/scroll-to-top-button/admin/options.php:147, inc/modules/spending-goal/admin/options.php:305, inc/modules/sticky-add-to-cart/admin/options.php:258, inc/modules/stock-scarcity/admin/options.php:127 4724 4836 msgid "Style" 4725 4837 msgstr "" … … 4741 4853 msgstr "" 4742 4854 4743 #: inc/modules/clear-cart/admin/options.php:255 4855 #: inc/modules/clear-cart/admin/options.php:255, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:416 4744 4856 msgid "Button Background Color" 4745 4857 msgstr "" … … 4749 4861 msgstr "" 4750 4862 4751 #: inc/modules/clear-cart/admin/options.php:271 4863 #: inc/modules/clear-cart/admin/options.php:271, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:332 4752 4864 msgid "Button Text Color" 4753 4865 msgstr "" … … 4765 4877 msgstr "" 4766 4878 4767 #: inc/modules/clear-cart/admin/options.php:327, inc/modules/quick-social-links/admin/options.php:430, inc/modules/quick-view/admin/options.php:4 56, inc/modules/real-time-search/admin/options.php:1234879 #: inc/modules/clear-cart/admin/options.php:327, inc/modules/quick-social-links/admin/options.php:430, inc/modules/quick-view/admin/options.php:461, inc/modules/real-time-search/admin/options.php:123 4768 4880 msgid "If you are using a page builder or a theme that supports shortcodes, then you can output the module using the shortcode above. This might be useful if, for example, you find that you want to control the position of the module output more precisely than with the module settings." 4769 4881 msgstr "" … … 4849 4961 msgstr "" 4850 4962 4851 #: inc/modules/complementary-products/admin/options.php:474, inc/modules/quick-view/admin/options.php:4 094963 #: inc/modules/complementary-products/admin/options.php:474, inc/modules/quick-view/admin/options.php:414 4852 4964 msgid "Before Add to Cart" 4853 4965 msgstr "" … … 5047 5159 msgstr "" 5048 5160 5049 #: inc/modules/countdown-timer/admin/options.php:49, inc/modules/pre-orders/admin/ options.php:335, inc/modules/pre-orders/admin/options.php:355, inc/modules/storewide-sale/admin/options.php:4545161 #: inc/modules/countdown-timer/admin/options.php:49, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:84, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:107, inc/modules/pre-orders/admin/options.php:335, inc/modules/pre-orders/admin/options.php:355, inc/modules/storewide-sale/admin/options.php:454 5050 5162 msgid "WordPress Settings" 5051 5163 msgstr "" … … 5211 5323 msgstr "" 5212 5324 5213 #: inc/modules/free-gifts/admin/options.php:148, inc/modules/product-labels/admin/options.php:365, inc/modules/spending-goal/admin/options.php:139, inc/modules/wishlist/admin/options.php:1565214 msgid "Exclude Categories"5215 msgstr ""5216 5217 5325 #: inc/modules/free-gifts/admin/options.php:149 5218 5326 msgid "Exclude specific categories from this campaign." … … 5221 5329 #: inc/modules/free-gifts/admin/options.php:171 5222 5330 msgid "Select the product categories that the spending goal will not apply to." 5223 msgstr ""5224 5225 #: inc/modules/free-gifts/admin/options.php:192, inc/modules/product-labels/admin/options.php:4095226 msgid "Exclude Tags"5227 5331 msgstr "" 5228 5332 … … 6090 6194 msgstr "" 6091 6195 6196 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:48 6197 msgid "Pre-Order Mode" 6198 msgstr "" 6199 6200 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:49 6201 msgid "Choose how pre-orders should be handled for this product." 6202 msgstr "" 6203 6204 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:51 6205 msgid "Global Settings (Default)" 6206 msgstr "" 6207 6208 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:52 6209 msgid "Product Specific Settings" 6210 msgstr "" 6211 6212 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:53 6213 msgid "Disable Pre-Orders" 6214 msgstr "" 6215 6216 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:61 6217 msgid "Pre-Order Starts At" 6218 msgstr "" 6219 6220 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:62, inc/modules/pre-orders/admin/options.php:343 6221 msgid "If you want your pre-order settings to take effect immediately, leave the pre-order start empty." 6222 msgstr "" 6223 6224 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:63, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:86, inc/modules/pre-orders/admin/class-pre-orders-metabox.php:109 6225 msgid "Select date and time" 6226 msgstr "" 6227 6228 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:79 6229 msgid "Pre-Order Ends At" 6230 msgstr "" 6231 6232 #. translators: %1$s: Time zone, %2$s WordPress setting link 6233 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:82, inc/modules/pre-orders/admin/options.php:352, inc/modules/storewide-sale/admin/options.php:451 6234 msgid "Leave it empty if you don’t want to have an end date. The times set above are in the %1$s timezone, according to your settings from %2$s." 6235 msgstr "" 6236 6237 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:102 6238 msgid "Expected Shipping Date" 6239 msgstr "" 6240 6241 #. translators: %1$s: Time zone, %2$s WordPress setting link 6242 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:105, inc/modules/pre-orders/admin/options.php:332 6243 msgid "The times set above are in the %1$s timezone, according to your settings from %2$s." 6244 msgstr "" 6245 6246 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:126 6247 msgid "Offer Discount" 6248 msgstr "" 6249 6250 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:127 6251 msgid "Enable to offer a discount for pre-ordering this product." 6252 msgstr "" 6253 6254 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:143 6255 msgid "Fixed Amount" 6256 msgstr "" 6257 6258 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:158 6259 msgid "Discount Amount" 6260 msgstr "" 6261 6262 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:159 6263 msgid "Enter the discount amount (percentage or fixed)." 6264 msgstr "" 6265 6266 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:175 6267 msgid "Who can pre-order this product?" 6268 msgstr "" 6269 6270 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:178 6271 msgid "Specific Roles" 6272 msgstr "" 6273 6274 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:179 6275 msgid "Specific Users" 6276 msgstr "" 6277 6278 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:193 6279 msgid "Allowed Roles" 6280 msgstr "" 6281 6282 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:194, inc/modules/pre-orders/admin/options.php:375 6283 msgid "This will limit the rule to users with these roles." 6284 msgstr "" 6285 6286 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:209 6287 msgid "Allowed Users" 6288 msgstr "" 6289 6290 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:210, inc/modules/pre-orders/admin/options.php:387 6291 msgid "This will limit the rule to the selected customers." 6292 msgstr "" 6293 6294 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:225 6295 msgid "Enable Exclusions" 6296 msgstr "" 6297 6298 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:239 6299 msgid "Excluded Roles" 6300 msgstr "" 6301 6302 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:255 6303 msgid "Excluded Users" 6304 msgstr "" 6305 6306 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:272 6307 msgid "Button Text" 6308 msgstr "" 6309 6310 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:273 6311 msgid "Custom text for the pre-order button." 6312 msgstr "" 6313 6314 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:274, inc/modules/pre-orders/classes/class-pre-orders-rules.php:276 6315 msgid "Pre-Order Now" 6316 msgstr "" 6317 6318 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:286 6319 msgid "Cart Label Text" 6320 msgstr "" 6321 6322 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:287 6323 msgid "Text to display in the cart for pre-order items." 6324 msgstr "" 6325 6326 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:288, inc/modules/pre-orders/admin/options.php:467 6327 msgid "Pre-Order" 6328 msgstr "" 6329 6330 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:300 6331 msgid "Additional Information Text" 6332 msgstr "" 6333 6334 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:301 6335 msgid "Additional text to display on the product page, use <strong>{date}</strong> to display the shipping date." 6336 msgstr "" 6337 6338 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:302, inc/modules/pre-orders/admin/options.php:474 6339 msgid "Ships on {date}" 6340 msgstr "" 6341 6342 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:315 6343 msgid "Choose where to display the pre-order information." 6344 msgstr "" 6345 6346 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:317, inc/modules/pre-orders/admin/options.php:482 6347 msgid "Before Button" 6348 msgstr "" 6349 6350 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:318, inc/modules/pre-orders/admin/options.php:483 6351 msgid "After Button" 6352 msgstr "" 6353 6354 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:345 6355 msgid "Button Text Color (Hover)" 6356 msgstr "" 6357 6358 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:358 6359 msgid "Button Border Color" 6360 msgstr "" 6361 6362 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:371 6363 msgid "Button Border Color (Hover)" 6364 msgstr "" 6365 6366 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:384, inc/modules/pre-orders/admin/options.php:524 6367 msgid "Button Border Width (px)" 6368 msgstr "" 6369 6370 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:400, inc/modules/pre-orders/admin/options.php:534 6371 msgid "Button Border Radius (px)" 6372 msgstr "" 6373 6374 #: inc/modules/pre-orders/admin/class-pre-orders-metabox.php:429 6375 msgid "Button Background Color (Hover)" 6376 msgstr "" 6377 6092 6378 #: inc/modules/pre-orders/admin/options.php:22 6093 6379 msgid "Pre-order Rule" … … 6170 6456 msgstr "" 6171 6457 6172 #. translators: %1$s: Time zone, %2$s WordPress setting link6173 #: inc/modules/pre-orders/admin/options.php:3326174 msgid "The times set above are in the %1$s timezone, according to your settings from %2$s."6175 msgstr ""6176 6177 6458 #: inc/modules/pre-orders/admin/options.php:341 6178 6459 msgid "Pre-order starts at" 6179 6460 msgstr "" 6180 6461 6181 #: inc/modules/pre-orders/admin/options.php:3436182 msgid "If you want your pre-order settings to take effect immediately, leave the pre-order start empty."6183 msgstr ""6184 6185 6462 #: inc/modules/pre-orders/admin/options.php:348 6186 6463 msgid "Pre-order ends at" 6187 6464 msgstr "" 6188 6465 6189 #. translators: %1$s: Time zone, %2$s WordPress setting link6190 #: inc/modules/pre-orders/admin/options.php:352, inc/modules/storewide-sale/admin/options.php:4516191 msgid "Leave it empty if you don’t want to have an end date. The times set above are in the %1$s timezone, according to your settings from %2$s."6192 msgstr ""6193 6194 #: inc/modules/pre-orders/admin/options.php:3756195 msgid "This will limit the rule to users with these roles."6196 msgstr ""6197 6198 #: inc/modules/pre-orders/admin/options.php:3876199 msgid "This will limit the rule to the selected customers."6200 msgstr ""6201 6202 #: inc/modules/pre-orders/admin/options.php:4676203 msgid "Pre-Order"6204 msgstr ""6205 6206 6466 #: inc/modules/pre-orders/admin/options.php:473 6207 6467 msgid "Additional information" 6208 6468 msgstr "" 6209 6469 6210 #: inc/modules/pre-orders/admin/options.php:4746211 msgid "Ships on {date}"6212 msgstr ""6213 6214 #: inc/modules/pre-orders/admin/options.php:4826215 msgid "Before Button"6216 msgstr ""6217 6218 #: inc/modules/pre-orders/admin/options.php:4836219 msgid "After Button"6220 msgstr ""6221 6222 6470 #: inc/modules/pre-orders/admin/options.php:490 6223 6471 msgid "Label text on cart" 6224 6472 msgstr "" 6225 6473 6226 #: inc/modules/pre-orders/admin/options.php:5 466474 #: inc/modules/pre-orders/admin/options.php:566 6227 6475 msgid "Pre-order Modes" 6228 6476 msgstr "" 6229 6477 6230 #: inc/modules/pre-orders/admin/options.php:5 486478 #: inc/modules/pre-orders/admin/options.php:568 6231 6479 msgid "Allow only pre-orders" 6232 6480 msgstr "" 6233 6481 6234 #: inc/modules/pre-orders/admin/options.php:5 496482 #: inc/modules/pre-orders/admin/options.php:569 6235 6483 msgid "Treat the whole order as pre-order" 6236 6484 msgstr "" 6237 6485 6238 #: inc/modules/pre-orders/admin/options.php:5 586486 #: inc/modules/pre-orders/admin/options.php:578 6239 6487 msgid "Use this mode if you want to only allow your customers to either choose pre-order products or available ones." 6240 6488 msgstr "" 6241 6489 6242 #: inc/modules/pre-orders/admin/options.php:5 726490 #: inc/modules/pre-orders/admin/options.php:592 6243 6491 msgid "Use this mode if you want to treat the whole order as a pre-order if at least one product is a pre-order." 6244 6492 msgstr "" 6245 6493 6246 #: inc/modules/pre-orders/admin/options.php: 5866494 #: inc/modules/pre-orders/admin/options.php:606 6247 6495 msgid "Use this mode if you want to generate separate orders for each pre-order product." 6248 6496 msgstr "" 6249 6497 6250 #: inc/modules/pre-orders/admin/options.php:6 006498 #: inc/modules/pre-orders/admin/options.php:620 6251 6499 msgid "Use this mode if you want to generate two separate orders, one for pre-orders and one for in-stock products." 6252 6500 msgstr "" … … 7030 7278 msgstr "" 7031 7279 7032 #: inc/modules/quick-view/admin/options.php:320, templates/modules/added-to-cart-popup/admin/layout-1.php:76, templates/modules/added-to-cart-popup/admin/layout-2.php:62, templates/modules/added-to-cart-popup/admin/layout-3.php:75 7280 #: inc/modules/quick-view/admin/options.php:309 7281 msgid "Ajax add to cart" 7282 msgstr "" 7283 7284 #: inc/modules/quick-view/admin/options.php:325, templates/modules/added-to-cart-popup/admin/layout-1.php:76, templates/modules/added-to-cart-popup/admin/layout-2.php:62, templates/modules/added-to-cart-popup/admin/layout-3.php:75 7033 7285 msgid "Buy X Get Y" 7034 7286 msgstr "" 7035 7287 7036 #: inc/modules/quick-view/admin/options.php:3 38, inc/modules/quick-view/admin/options.php:361, inc/modules/quick-view/admin/options.php:3847288 #: inc/modules/quick-view/admin/options.php:343, inc/modules/quick-view/admin/options.php:366, inc/modules/quick-view/admin/options.php:389 7037 7289 msgid "You can display suggested products by enabling certain modules (Bulk Discounts, Buy X Get Y or Frequently Bought Together) from Merchant." 7038 7290 msgstr "" 7039 7291 7040 #: inc/modules/quick-view/admin/options.php:3 397292 #: inc/modules/quick-view/admin/options.php:344 7041 7293 msgid "View Bulk Discounts" 7042 7294 msgstr "" 7043 7295 7044 #: inc/modules/quick-view/admin/options.php:4 077296 #: inc/modules/quick-view/admin/options.php:412 7045 7297 msgid "Suggested products placement" 7046 7298 msgstr "" 7047 7299 7048 #: inc/modules/quick-view/admin/options.php:41 07300 #: inc/modules/quick-view/admin/options.php:415 7049 7301 msgid "After Add to Cart" 7050 7302 msgstr "" 7051 7303 7052 #: inc/modules/quick-view/admin/options.php:4 277304 #: inc/modules/quick-view/admin/options.php:432 7053 7305 msgid "Sale price color" 7054 7306 msgstr "" 7055 7307 7056 #: inc/modules/quick-view/admin/options.php:43 47308 #: inc/modules/quick-view/admin/options.php:439 7057 7309 msgid "Regular price color" 7058 7310 msgstr "" … … 8246 8498 msgstr "" 8247 8499 8248 #: inc/modules/sticky-add-to-cart/admin/options.php:180 8500 #: inc/modules/sticky-add-to-cart/admin/options.php:165 8501 msgid "Sticky Add to Cart will appear on all products except ones selected below." 8502 msgstr "" 8503 8504 #: inc/modules/sticky-add-to-cart/admin/options.php:173 8505 msgid "Excluded products" 8506 msgstr "" 8507 8508 #: inc/modules/sticky-add-to-cart/admin/options.php:174 8509 msgid "Select specific products to exclude from sticky add to cart." 8510 msgstr "" 8511 8512 #: inc/modules/sticky-add-to-cart/admin/options.php:193 8513 msgid "Excluded categories" 8514 msgstr "" 8515 8516 #: inc/modules/sticky-add-to-cart/admin/options.php:194 8517 msgid "Select categories to exclude from sticky add to cart." 8518 msgstr "" 8519 8520 #: inc/modules/sticky-add-to-cart/admin/options.php:214 8521 msgid "Excluded tags" 8522 msgstr "" 8523 8524 #: inc/modules/sticky-add-to-cart/admin/options.php:215 8525 msgid "Select tags to exclude from sticky add to cart." 8526 msgstr "" 8527 8528 #: inc/modules/sticky-add-to-cart/admin/options.php:235 8529 msgid "Excluded brands" 8530 msgstr "" 8531 8532 #: inc/modules/sticky-add-to-cart/admin/options.php:236 8533 msgid "Select brands to exclude from sticky add to cart." 8534 msgstr "" 8535 8536 #: inc/modules/sticky-add-to-cart/admin/options.php:281 8249 8537 msgid "Content color" 8250 8538 msgstr "" -
merchant/trunk/merchant.php
r3434669 r3458319 4 4 * Plugin URI: https://athemes.com/merchant 5 5 * Description: All-in-one WooCommerce plugin for pre-orders, product labels, buy now, quick view, discount rules and more. 6 * Version: 2.2. 26 * Version: 2.2.3 7 7 * Author: aThemes 8 8 * Author URI: https://athemes.com … … 11 11 * Text Domain: merchant 12 12 * Domain Path: /languages 13 * Requires PHP: 7.3 13 14 * 14 15 * WC requires at least: 6.0 15 * WC tested up to: 10. 3.016 * WC tested up to: 10.5.0 16 17 * 17 18 * @package Merchant … … 25 26 26 27 // Merchant constants. 27 define( 'MERCHANT_VERSION', '2.2. 2' );28 define( 'MERCHANT_VERSION', '2.2.3' ); 28 29 define( 'MERCHANT_DB_VERSION', '1.1.0' ); // Update only when the database structure changes. In inc/classes/class-merchant-db-tables.php 29 30 define( 'MERCHANT_FILE', __FILE__ ); -
merchant/trunk/readme.txt
r3434669 r3458319 1 1 === Pre-Orders, Product Labels, Buy Now, Quick View, Discount Rules and More for WooCommerce – Merchant === 2 2 Tags: pre-orders, buy now button, product labels, quick view, clear cart 3 Requires at least: 5.54 Tested up to: 6. 83 Requires at least: 6.4 4 Tested up to: 6.9 5 5 Requires PHP: 7.3 6 Stable tag: 2.2. 26 Stable tag: 2.2.3 7 7 Contributors: aThemes 8 8 License: GPLv3 or later … … 219 219 220 220 == Changelog == 221 = 2.2.3 = 222 * Added - Pre-Orders: Added per-product overrides via metaboxes and improved metabox UI/UX for better consistency with global campaign settings 223 * Added - Buy Now: Added exclusion rules to hide the Buy Now button for specific products, categories, tags, or brands 224 * Added - Quick View: Added AJAX add-to-cart support, allowing products to be added to the cart without page reloads 225 221 226 = 2.2.2 = 222 227 * Fixed - Product Labels: Fixed an issue where the 5th label shape was rendering incorrectly on the frontend -
merchant/trunk/templates/modules/buy-x-get-y/single-product.php
r3421339 r3458319 205 205 echo wp_kses( $buy_product->get_price_html(), merchant_kses_allowed_tags( array( 'bdi' ) ) ); 206 206 } else { 207 if ( $offer['discount_type'] === 'percentage' ) { 208 $buy_product_reduced_price = $product_price - ( $product_price * $offer['discount'] / 100 ); 209 } else { 210 $buy_product_reduced_price = $product_price - ( $offer['discount'] / $offer['quantity'] ); 211 } 212 echo wp_kses( wc_format_sale_price( $product_price, $buy_product_reduced_price ), merchant_kses_allowed_tags( array( 'bdi' ) ) ); 213 } 207 // Calculate reduced price 208 $product_price_float = (float) $product_price; 209 210 if ( $offer['discount_type'] === 'percentage' ) { 211 $reduced_price = $product_price_float * ( 1 - (float) $offer['discount'] / 100 ); 212 } else { 213 $reduced_price = $product_price_float - ( (float) $offer['discount'] / (float) $offer['quantity'] ); 214 } 215 216 // Round and ensure valid price (positive and less than regular) 217 $reduced_price = round( max( 0, $reduced_price ), wc_get_price_decimals() ); 218 if ( $reduced_price >= $product_price_float ) { 219 $reduced_price = max( 0, $product_price_float - 0.01 ); 220 } 221 222 // Store original prices 223 $original_regular = $buy_product->get_regular_price( 'edit' ); 224 $original_sale = $buy_product->get_sale_price( 'edit' ); 225 226 // Set temporary prices for dual-currency compatibility 227 $buy_product->set_regular_price( wc_format_decimal( $product_price_float, false, true ) ); 228 $buy_product->set_sale_price( wc_format_decimal( $reduced_price, false, true ) ); 229 $buy_product->set_price( wc_format_decimal( $reduced_price, false, true ) ); 230 231 $price_html = $buy_product->get_price_html(); 232 233 // Restore original prices 234 $buy_product->set_regular_price( $original_regular ); 235 $buy_product->set_sale_price( $original_sale !== '' ? $original_sale : '' ); 236 $buy_product->set_price( '' ); 237 238 echo wp_kses( $price_html, merchant_kses_allowed_tags( array( 'bdi' ) ) ); 239 } 214 240 } else { 215 241 echo '<span class="error">' . esc_html__( 'Out of stock', 'merchant' ) . '</span>'; -
merchant/trunk/vendor/composer/installed.php
r3434669 r3458319 2 2 'root' => array( 3 3 'name' => 'athemes/merchant', 4 'pretty_version' => 'v2.2. 2',5 'version' => '2.2. 2.0',6 'reference' => ' 368b1116bae4d4f4520855827afa8fc28ef51517',4 'pretty_version' => 'v2.2.3', 5 'version' => '2.2.3.0', 6 'reference' => '5cbe51d4529ad9865ec49d5645b66645c9afa829', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'athemes/merchant' => array( 14 'pretty_version' => 'v2.2. 2',15 'version' => '2.2. 2.0',16 'reference' => ' 368b1116bae4d4f4520855827afa8fc28ef51517',14 'pretty_version' => 'v2.2.3', 15 'version' => '2.2.3.0', 16 'reference' => '5cbe51d4529ad9865ec49d5645b66645c9afa829', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.