Changeset 3351312
- Timestamp:
- 08/27/2025 03:06:47 PM (6 months ago)
- Location:
- daily-slider
- Files:
-
- 33 added
- 8 edited
-
tags/1.7.0 (added)
-
tags/1.7.0/assets (added)
-
tags/1.7.0/assets/css (added)
-
tags/1.7.0/assets/css/common.css (added)
-
tags/1.7.0/assets/css/vendor (added)
-
tags/1.7.0/assets/css/widgets (added)
-
tags/1.7.0/assets/css/widgets/eldorado.css (added)
-
tags/1.7.0/assets/css/widgets/marqee.css (added)
-
tags/1.7.0/assets/css/widgets/marquee.css (added)
-
tags/1.7.0/assets/css/widgets/pixel.css (added)
-
tags/1.7.0/assets/css/widgets/review-carousel.css (added)
-
tags/1.7.0/assets/images (added)
-
tags/1.7.0/assets/images/item-1.svg (added)
-
tags/1.7.0/assets/images/item-2.svg (added)
-
tags/1.7.0/assets/images/item-3.svg (added)
-
tags/1.7.0/assets/js (added)
-
tags/1.7.0/assets/js/widgets (added)
-
tags/1.7.0/assets/js/widgets/eldorado.js (added)
-
tags/1.7.0/assets/js/widgets/marquee.js (added)
-
tags/1.7.0/assets/js/widgets/pixel.js (added)
-
tags/1.7.0/assets/js/widgets/review-carousel.js (added)
-
tags/1.7.0/daily-slider.php (added)
-
tags/1.7.0/readme.txt (added)
-
tags/1.7.0/widgets (added)
-
tags/1.7.0/widgets/eldorado (added)
-
tags/1.7.0/widgets/eldorado/eldorado.php (added)
-
tags/1.7.0/widgets/marquee (added)
-
tags/1.7.0/widgets/marquee/marquee.php (added)
-
tags/1.7.0/widgets/pixel (added)
-
tags/1.7.0/widgets/pixel/pixel.php (added)
-
tags/1.7.0/widgets/review-carousel (added)
-
tags/1.7.0/widgets/review-carousel/review-carousel.php (added)
-
trunk/assets/css/widgets/eldorado.css (modified) (4 diffs)
-
trunk/assets/css/widgets/marquee.css (added)
-
trunk/assets/js/widgets/eldorado.js (modified) (3 diffs)
-
trunk/assets/js/widgets/marquee.js (modified) (3 diffs)
-
trunk/assets/js/widgets/pixel.js (modified) (3 diffs)
-
trunk/assets/js/widgets/review-carousel.js (modified) (3 diffs)
-
trunk/daily-slider.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/widgets/pixel/pixel.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
daily-slider/trunk/assets/css/widgets/eldorado.css
r3345410 r3351312 3 3 --navigation-horizontal-spacing: -80px; 4 4 --pagination-vertical-spacing: 70px; 5 width: 100%; 6 max-width: 100%; 7 margin: 0 auto; 8 padding: 0; 5 9 .daily-eldorado-wrap { 6 10 position: relative; 11 width: 100%; 12 max-width: 100%; 13 margin: 0 auto; 14 overflow: hidden; 7 15 } 8 16 9 . daily-slide-item{17 .swiper-slide { 10 18 height: 300px; 11 19 &.swiper-slide-active, … … 85 93 } 86 94 } 95 87 96 .daily-nav-button { 88 97 position: absolute; … … 97 106 top: 50%; 98 107 transform: translateY(-50%); 99 &.daily-button-prev {100 left: 10px;101 }102 & .daily-button-next{103 right: 10px;108 width: auto; 109 height: auto; 110 margin-top: 0; 111 &::after { 112 display: none; 104 113 } 105 114 &::before { … … 129 138 transform: scale(1); 130 139 } 140 } 141 142 &.daily-button-prev { 143 left: 0; 144 } 145 146 &.daily-button-next { 147 right: 0; 131 148 } 132 149 } -
daily-slider/trunk/assets/js/widgets/eldorado.js
r3230738 r3351312 1 (function ($ , elementor) {1 (function ($) { 2 2 "use strict"; 3 3 … … 10 10 11 11 var $carouselContainer = $carousel.find(".swiper"), 12 $settings = $carousel.data("settings"); 12 $settings = $carousel.data("settings"), 13 $prevButton = $carousel.find('.daily-button-prev'), 14 $nextButton = $carousel.find('.daily-button-next'), 15 $pagination = $carousel.find('.daily-pagination'); 13 16 14 const Swiper = elementorFrontend.utils.swiper; 17 if (!$settings) { 18 console.error("Slider settings not found!"); 19 return; 20 } 21 22 // First try to use window.Swiper (direct), then fallback to Elementor's Swiper 23 var Swiper = window.Swiper; 24 25 if (!Swiper && typeof elementorFrontend !== 'undefined') { 26 if (elementorFrontend.utils && elementorFrontend.utils.swiper) { 27 Swiper = elementorFrontend.utils.swiper; 28 } 29 } 30 31 if (!Swiper) { 32 console.error("Swiper not found! Make sure Swiper is properly loaded."); 33 return; 34 } 35 36 // Update settings with navigation and pagination elements 37 if ($settings) { 38 if ($settings.navigation && $settings.navigation === true) { 39 $settings.navigation = { 40 nextEl: $nextButton[0], 41 prevEl: $prevButton[0], 42 }; 43 } 44 45 if ($settings.pagination && $settings.pagination === true) { 46 $settings.pagination = { 47 el: $pagination[0], 48 clickable: true, 49 }; 50 } 51 } 52 15 53 initSwiper(); 16 54 async function initSwiper() { 17 var swiper = await new Swiper($carouselContainer, $settings); 55 try { 56 var swiper = await new Swiper($carouselContainer[0], $settings); 18 57 19 if ($settings.pauseOnHover) { 20 $($carouselContainer).hover( 21 function () { 22 this.swiper.autoplay.stop(); 23 }, 24 function () { 25 this.swiper.autoplay.start(); 26 } 27 ); 58 if ($settings && $settings.pauseOnHover) { 59 $($carouselContainer).hover( 60 function () { 61 if (swiper && swiper.autoplay) swiper.autoplay.stop(); 62 }, 63 function () { 64 if (swiper && swiper.autoplay) swiper.autoplay.start(); 65 } 66 ); 67 } 68 } catch (error) { 69 console.error("Error initializing Swiper:", error); 28 70 } 29 71 } 30 72 }; 31 73 32 jQuery(window).on("elementor/frontend/init", function () { 74 // Initialize in Elementor editor 75 if (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) { 76 // Make sure hooks are available before trying to use them 77 if (elementorFrontend.hooks) { 78 elementorFrontend.hooks.addAction( 79 "frontend/element_ready/daily-slider-eldorado.default", 80 widgetDailySlider 81 ); 82 83 // Also initialize for widgets already in the DOM 84 $(document).ready(function() { 85 $(".elementor-widget-daily-slider-eldorado").each(function() { 86 widgetDailySlider($(this), $); 87 }); 88 }); 89 } else { 90 // If hooks aren't available yet, wait for them 91 $(window).on("elementor/frontend/init", function() { 92 elementorFrontend.hooks.addAction( 93 "frontend/element_ready/daily-slider-eldorado.default", 94 widgetDailySlider 95 ); 96 }); 97 } 98 } 99 100 // Initialize on frontend (both in Elementor and regular themes) 101 $(window).on("elementor/frontend/init", function () { 33 102 elementorFrontend.hooks.addAction( 34 103 "frontend/element_ready/daily-slider-eldorado.default", … … 36 105 ); 37 106 }); 38 })(jQuery, window.elementorFrontend); 107 108 // Fallback initialization for non-Elementor themes 109 $(document).ready(function() { 110 // Only run this if we're not in Elementor 111 if (typeof elementorFrontend === 'undefined' || !elementorFrontend.isEditMode()) { 112 $(".ds-eldorado").each(function() { 113 widgetDailySlider($(this).closest('.elementor-widget-daily-slider-eldorado'), $); 114 }); 115 } 116 }); 117 })(jQuery); -
daily-slider/trunk/assets/js/widgets/marquee.js
r3345410 r3351312 1 (function ($ , elementor) {1 (function ($) { 2 2 "use strict"; 3 3 … … 158 158 }; 159 159 160 // Register widget handler 161 jQuery(window).on("elementor/frontend/init", function () { 160 // Initialize in Elementor editor 161 if (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) { 162 // Make sure hooks are available before trying to use them 163 if (elementorFrontend.hooks) { 164 elementorFrontend.hooks.addAction( 165 "frontend/element_ready/daily-slider-marquee.default", 166 MarqueeHandler 167 ); 168 169 // Also initialize for widgets already in the DOM 170 $(document).ready(function() { 171 $(".elementor-widget-daily-slider-marquee").each(function() { 172 MarqueeHandler($(this), $); 173 }); 174 }); 175 } else { 176 // If hooks aren't available yet, wait for them 177 $(window).on("elementor/frontend/init", function() { 178 elementorFrontend.hooks.addAction( 179 "frontend/element_ready/daily-slider-marquee.default", 180 MarqueeHandler 181 ); 182 }); 183 } 184 } 185 186 // Initialize on frontend (both in Elementor and regular themes) 187 $(window).on("elementor/frontend/init", function () { 162 188 elementorFrontend.hooks.addAction( 163 189 "frontend/element_ready/daily-slider-marquee.default", … … 165 191 ); 166 192 }); 167 })(jQuery, window.elementorFrontend); 193 194 // Fallback initialization for non-Elementor themes 195 $(document).ready(function() { 196 // Only run this if we're not in Elementor 197 if (typeof elementorFrontend === 'undefined' || !elementorFrontend.isEditMode()) { 198 $(".daily-slider-marquee-slider").each(function() { 199 try { 200 new widgetDailySlider(this); 201 } catch (error) { 202 console.error('Marquee Slider Error:', error); 203 } 204 }); 205 } 206 }); 207 })(jQuery); -
daily-slider/trunk/assets/js/widgets/pixel.js
r3230738 r3351312 1 (function ($ , elementor) {1 (function ($) { 2 2 "use strict"; 3 3 … … 10 10 11 11 var $carouselContainer = $carousel.find(".swiper"), 12 $settings = $carousel.data("settings");12 $settings = $carousel.data("settings"); 13 13 14 const Swiper = elementorFrontend.utils.swiper; 14 if (!$settings) { 15 console.error("Slider settings not found!"); 16 return; 17 } 18 19 // First try to use window.Swiper (direct), then fallback to Elementor's Swiper 20 var Swiper = window.Swiper; 21 22 if (!Swiper && typeof elementorFrontend !== 'undefined') { 23 if (elementorFrontend.utils && elementorFrontend.utils.swiper) { 24 Swiper = elementorFrontend.utils.swiper; 25 } 26 } 27 28 if (!Swiper) { 29 console.error("Swiper not found! Make sure Swiper is properly loaded."); 30 return; 31 } 32 15 33 initSwiper(); 16 34 async function initSwiper() { 17 var swiper = await new Swiper($carouselContainer, $settings); 35 try { 36 var swiper = await new Swiper($carouselContainer[0], $settings); 18 37 19 if ($settings.pauseOnHover) { 20 $($carouselContainer).hover( 21 function () { 22 this.swiper.autoplay.stop(); 23 }, 24 function () { 25 this.swiper.autoplay.start(); 26 } 27 ); 38 if ($settings && $settings.pauseOnHover) { 39 $($carouselContainer).hover( 40 function () { 41 if (swiper && swiper.autoplay) swiper.autoplay.stop(); 42 }, 43 function () { 44 if (swiper && swiper.autoplay) swiper.autoplay.start(); 45 } 46 ); 47 } 48 } catch (error) { 49 console.error("Error initializing Swiper:", error); 28 50 } 29 51 } 30 52 }; 31 53 32 jQuery(window).on("elementor/frontend/init", function () { 54 // Initialize in Elementor editor 55 if (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) { 56 // Make sure hooks are available before trying to use them 57 if (elementorFrontend.hooks) { 58 elementorFrontend.hooks.addAction( 59 "frontend/element_ready/daily-slider-pixel.default", 60 widgetDailySlider 61 ); 62 63 // Also initialize for widgets already in the DOM 64 $(document).ready(function() { 65 $(".elementor-widget-daily-slider-pixel").each(function() { 66 widgetDailySlider($(this), $); 67 }); 68 }); 69 } else { 70 // If hooks aren't available yet, wait for them 71 $(window).on("elementor/frontend/init", function() { 72 elementorFrontend.hooks.addAction( 73 "frontend/element_ready/daily-slider-pixel.default", 74 widgetDailySlider 75 ); 76 }); 77 } 78 } 79 80 // Initialize on frontend (both in Elementor and regular themes) 81 $(window).on("elementor/frontend/init", function () { 33 82 elementorFrontend.hooks.addAction( 34 83 "frontend/element_ready/daily-slider-pixel.default", … … 36 85 ); 37 86 }); 38 })(jQuery, window.elementorFrontend); 87 88 // Fallback initialization for non-Elementor themes 89 $(document).ready(function() { 90 // Only run this if we're not in Elementor 91 if (typeof elementorFrontend === 'undefined' || !elementorFrontend.isEditMode()) { 92 $(".ds-pixel-slider").each(function() { 93 widgetDailySlider($(this).closest('.elementor-widget-daily-slider-pixel'), $); 94 }); 95 } 96 }); 97 98 })(jQuery); -
daily-slider/trunk/assets/js/widgets/review-carousel.js
r3230738 r3351312 1 (function ($ , elementor) {1 (function ($) { 2 2 "use strict"; 3 3 … … 10 10 11 11 var $carouselContainer = $carousel.find(".swiper"), 12 $settings = $carousel.data("settings");12 $settings = $carousel.data("settings"); 13 13 14 const Swiper = elementorFrontend.utils.swiper; 14 if (!$settings) { 15 console.error("Slider settings not found!"); 16 return; 17 } 18 19 // First try to use window.Swiper (direct), then fallback to Elementor's Swiper 20 var Swiper = window.Swiper; 21 22 if (!Swiper && typeof elementorFrontend !== 'undefined') { 23 if (elementorFrontend.utils && elementorFrontend.utils.swiper) { 24 Swiper = elementorFrontend.utils.swiper; 25 } 26 } 27 28 if (!Swiper) { 29 console.error("Swiper not found! Make sure Swiper is properly loaded."); 30 return; 31 } 32 15 33 initSwiper(); 16 34 async function initSwiper() { 17 var swiper = await new Swiper($carouselContainer, $settings); 35 try { 36 var swiper = await new Swiper($carouselContainer[0], $settings); 18 37 19 if ($settings.pauseOnHover) { 20 $($carouselContainer).hover( 21 function () { 22 this.swiper.autoplay.stop(); 23 }, 24 function () { 25 this.swiper.autoplay.start(); 26 } 27 ); 38 if ($settings && $settings.pauseOnHover) { 39 $($carouselContainer).hover( 40 function () { 41 if (swiper && swiper.autoplay) swiper.autoplay.stop(); 42 }, 43 function () { 44 if (swiper && swiper.autoplay) swiper.autoplay.start(); 45 } 46 ); 47 } 48 } catch (error) { 49 console.error("Error initializing Swiper:", error); 28 50 } 29 51 } 30 52 }; 31 53 32 jQuery(window).on("elementor/frontend/init", function () { 54 // Initialize in Elementor editor 55 if (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) { 56 // Make sure hooks are available before trying to use them 57 if (elementorFrontend.hooks) { 58 elementorFrontend.hooks.addAction( 59 "frontend/element_ready/daily-slider-review-carousel.default", 60 widgetDailySlider 61 ); 62 63 // Also initialize for widgets already in the DOM 64 $(document).ready(function() { 65 $(".elementor-widget-daily-slider-review-carousel").each(function() { 66 widgetDailySlider($(this), $); 67 }); 68 }); 69 } else { 70 // If hooks aren't available yet, wait for them 71 $(window).on("elementor/frontend/init", function() { 72 elementorFrontend.hooks.addAction( 73 "frontend/element_ready/daily-slider-review-carousel.default", 74 widgetDailySlider 75 ); 76 }); 77 } 78 } 79 80 // Initialize on frontend (both in Elementor and regular themes) 81 $(window).on("elementor/frontend/init", function () { 33 82 elementorFrontend.hooks.addAction( 34 83 "frontend/element_ready/daily-slider-review-carousel.default", … … 36 85 ); 37 86 }); 38 })(jQuery, window.elementorFrontend); 87 88 // Fallback initialization for non-Elementor themes 89 $(document).ready(function() { 90 // Only run this if we're not in Elementor 91 if (typeof elementorFrontend === 'undefined' || !elementorFrontend.isEditMode()) { 92 $(".ds-review-carousel").each(function() { 93 widgetDailySlider($(this).closest('.elementor-widget-daily-slider-review-carousel'), $); 94 }); 95 } 96 }); 97 })(jQuery); -
daily-slider/trunk/daily-slider.php
r3345410 r3351312 3 3 * Plugin Name: Daily Slider 4 4 * Description: Enhance Elementor with customizable hero sliders, review carousels, and portfolio showcases, featuring responsive design, animations, and hover effects. 5 * Version: 1. 65 * Version: 1.7.0 6 6 * Author: wpcoder75 7 7 * Author URI: https://github.com/asikwp75 … … 19 19 20 20 class DailySliderPlugin { 21 const VERSION = '1. 6';21 const VERSION = '1.7.0'; 22 22 const MINIMUM_ELEMENTOR_VERSION = '3.26.0'; 23 23 const MINIMUM_PHP_VERSION = '7.4'; … … 56 56 add_action( 'elementor/frontend/after_enqueue_styles', array( $this, 'enqueue_styles' ) ); 57 57 add_action( 'elementor/frontend/after_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); 58 59 // Add scripts for Elementor editor 60 add_action( 'elementor/editor/after_enqueue_scripts', array( $this, 'enqueue_editor_scripts' ) ); 58 61 } 59 62 60 63 public function enqueue_styles() { 64 // Use Elementor's Swiper CSS 65 61 66 wp_enqueue_style( 'DailySlider-eldorado-styles', plugins_url( 'assets/css/widgets/eldorado.css', __FILE__ ), array(), '1.0.0', false ); 62 67 wp_enqueue_style( 'DailySlider-pixel-styles', plugins_url( 'assets/css/widgets/pixel.css', __FILE__ ), array(), '1.0.0', false ); 63 68 wp_enqueue_style( 'DailySlider-review-carousel-styles', plugins_url( 'assets/css/widgets/review-carousel.css', __FILE__ ), array(), '1.0.0', false ); 64 wp_enqueue_style( 'DailySlider-marquee-styles', plugins_url( 'assets/css/widgets/marq ee.css', __FILE__ ), array(), '1.0.0', false );69 wp_enqueue_style( 'DailySlider-marquee-styles', plugins_url( 'assets/css/widgets/marquee.css', __FILE__ ), array(), '1.0.0', false ); 65 70 wp_enqueue_style( 'DailySlider-common-styles', plugins_url( 'assets/css/common.css', __FILE__ ), array(), '1.0.0', false ); 66 71 } 67 72 68 73 public function enqueue_scripts() { 69 wp_enqueue_script( 'DailySlider-eldorado-scripts', plugins_url( 'assets/js/widgets/eldorado.js', __FILE__ ), array( 'jquery' ), '1.0.0', true ); 70 wp_enqueue_script( 'DailySlider-pixel-scripts', plugins_url( 'assets/js/widgets/pixel.js', __FILE__ ), array( 'jquery' ), '1.0.0', true ); 71 wp_enqueue_script( 'DailySlider-review-carousel-scripts', plugins_url( 'assets/js/widgets/review-carousel.js', __FILE__ ), array( 'jquery' ), '1.0.0', true ); 72 wp_enqueue_script( 'DailySlider-marquee-scripts', plugins_url( 'assets/js/widgets/marquee.js', __FILE__ ), array( 'jquery' ), '1.0.0', true ); 74 // Use Elementor's Swiper JS 75 76 wp_enqueue_script( 'DailySlider-eldorado-scripts', plugins_url( 'assets/js/widgets/eldorado.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 77 wp_enqueue_script( 'DailySlider-pixel-scripts', plugins_url( 'assets/js/widgets/pixel.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 78 wp_enqueue_script( 'DailySlider-review-carousel-scripts', plugins_url( 'assets/js/widgets/review-carousel.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 79 wp_enqueue_script( 'DailySlider-marquee-scripts', plugins_url( 'assets/js/widgets/marquee.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 80 } 81 82 /** 83 * Enqueue scripts for Elementor editor 84 */ 85 public function enqueue_editor_scripts() { 86 // Use Elementor's Swiper in the editor 87 88 // Enqueue widget scripts for editor 89 wp_enqueue_script( 'DailySlider-eldorado-scripts', plugins_url( 'assets/js/widgets/eldorado.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 90 wp_enqueue_script( 'DailySlider-pixel-scripts', plugins_url( 'assets/js/widgets/pixel.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 91 wp_enqueue_script( 'DailySlider-review-carousel-scripts', plugins_url( 'assets/js/widgets/review-carousel.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 92 wp_enqueue_script( 'DailySlider-marquee-scripts', plugins_url( 'assets/js/widgets/marquee.js', __FILE__ ), array( 'jquery', 'elementor-frontend' ), '1.0.0', true ); 93 94 // Enqueue widget styles for editor 95 wp_enqueue_style( 'DailySlider-eldorado-styles', plugins_url( 'assets/css/widgets/eldorado.css', __FILE__ ), array(), '1.0.0', false ); 96 wp_enqueue_style( 'DailySlider-pixel-styles', plugins_url( 'assets/css/widgets/pixel.css', __FILE__ ), array(), '1.0.0', false ); 97 wp_enqueue_style( 'DailySlider-review-carousel-styles', plugins_url( 'assets/css/widgets/review-carousel.css', __FILE__ ), array(), '1.0.0', false ); 98 wp_enqueue_style( 'DailySlider-marquee-styles', plugins_url( 'assets/css/widgets/marquee.css', __FILE__ ), array(), '1.0.0', false ); 99 wp_enqueue_style( 'DailySlider-common-styles', plugins_url( 'assets/css/common.css', __FILE__ ), array(), '1.0.0', false ); 73 100 } 74 101 -
daily-slider/trunk/readme.txt
r3345410 r3351312 1 1 === Daily Slider === 2 2 Contributors: wpcoder75 3 Tags: elementor, slider, carousel, marquee, hero-slider , testimonial, portfolio, animation, responsive, widgets, addon3 Tags: elementor, slider, carousel, marquee, hero-slider 4 4 Requires at least: 5.0 5 5 Tested up to: 6.8 6 Stable Tag: 1. 66 Stable Tag: 1.7.0 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 66 66 67 67 == Changelog == 68 = 1.7.0 [27th August 2025] = 68 69 69 = 1.6 [31th January 2025] = 70 - Fixed marquee slider animation glitch on mobile devices 71 - Fixed responsive layout issues in Review Carousel widget 72 - Fixed compatibility issues with latest WordPress version 73 74 75 = 1.7.0 [31th January 2025] = 70 76 71 77 - Added **Marquee Slider Widget** with smooth scrolling animations, customizable speed, direction, and pause on hover functionality. -
daily-slider/trunk/widgets/pixel/pixel.php
r3230738 r3351312 1283 1283 1284 1284 $id = 'ds-' . $this->get_id(); 1285 1285 1286 // Prepare Swiper settings array 1287 $swiper_settings = [ 1288 'effect' => esc_attr($settings['swiper_effect'] ?? 'slide'), 1289 'loop' => !empty($settings['swiper_loop']) && $settings['swiper_loop'] === 'yes', 1290 'speed' => absint($settings['swiper_speed'] ?? 800), 1291 'parallax' => true, 1292 'pauseOnHover' => !empty($settings['swiper_pause_on_hover']) && $settings['swiper_pause_on_hover'] === 'yes', 1293 ]; 1294 1295 // Add autoplay settings if enabled 1296 if (!empty($settings['swiper_autoplay']) && $settings['swiper_autoplay'] === 'yes') { 1297 $swiper_settings['autoplay'] = [ 1298 'delay' => absint($settings['swiper_autoplay_delay'] ?? 5000), 1299 'disableOnInteraction' => false, 1300 ]; 1301 } 1302 1303 // Add cube effect settings if applicable 1304 if ($settings['swiper_effect'] === 'cube') { 1305 $swiper_settings['cubeEffect'] = [ 1306 'shadow' => !empty($settings['swiper_cube_shadow']) && $settings['swiper_cube_shadow'] === 'yes', 1307 'slideShadows' => !empty($settings['swiper_slide_shadows']) && $settings['swiper_slide_shadows'] === 'yes', 1308 'shadowOffset' => absint($settings['swiper_shadow_offset'] ?? 20), 1309 'shadowScale' => floatval($settings['swiper_shadow_scale'] ?? 0.94), 1310 ]; 1311 } 1312 1313 // Add navigation settings 1314 $swiper_settings['navigation'] = [ 1315 'nextEl' => "#" . $id . " .daily-button-next", 1316 'prevEl' => "#" . $id . " .daily-button-prev", 1317 ]; 1318 1319 // Add pagination settings 1320 $swiper_settings['pagination'] = [ 1321 'el' => "#" . $id . " .swiper-pagination", 1322 'type' => 'bullets', 1323 'clickable' => true, 1324 'dynamicBullets' => false, 1325 ]; 1326 1286 1327 $this->add_render_attribute( 1287 [1288 'carousel' => [1328 [ 1329 'carousel' => [ 1289 1330 'class' => 'ds-pixel-slider', 1290 1331 'id' => $id, 1291 'data-settings' => [ 1292 wp_json_encode( array_filter( [ 1293 'effect' => esc_attr($settings['swiper_effect'] ?? 'slide'), 1294 'loop' => !empty($settings['swiper_loop']) && $settings['swiper_loop'] === 'yes', 1295 'autoplay' => !empty($settings['swiper_autoplay']) && $settings['swiper_autoplay'] === 'yes' ? [ 1296 'delay' => absint($settings['swiper_autoplay_delay'] ?? 5000), 1297 ] : false, 1298 'speed' => absint($settings['swiper_speed'] ?? 800), 1299 'parallax' => true, 1300 'cubeEffect' => [ 1301 'shadow' => !empty($settings['swiper_cube_shadow']) && $settings['swiper_cube_shadow'] === 'yes', 1302 'slideShadows' => !empty($settings['swiper_slide_shadows']) && $settings['swiper_slide_shadows'] === 'yes', 1303 'shadowOffset' => absint($settings['swiper_shadow_offset'] ?? 20), 1304 'shadowScale' => floatval($settings['swiper_shadow_scale'] ?? 0.94), 1305 ], 1306 "navigation" => [ 1307 "nextEl" => "#" . $id . " .daily-button-next", 1308 "prevEl" => "#" . $id . " .daily-button-prev", 1309 ], 1310 "pagination" => [ 1311 "el" => "#" . $id . " .swiper-pagination", 1312 "type" => 'bullets', 1313 "clickable" => "true", 1314 'dynamicBullets' => false, 1315 ], 1316 1317 ] ) ) 1318 ] 1319 ] 1320 ] 1321 ); 1332 'data-settings' => wp_json_encode($swiper_settings) 1333 ] 1334 ] 1335 ); 1322 1336 1323 1337 ?>
Note: See TracChangeset
for help on using the changeset viewer.